tag:blogger.com,1999:blog-16097205310174601652024-03-21T14:19:48.246-07:00Fundamentos de Sistemas InteligentesAnonymoushttp://www.blogger.com/profile/11192196364860552365noreply@blogger.comBlogger11125tag:blogger.com,1999:blog-1609720531017460165.post-35058479398855026942013-07-05T20:55:00.001-07:002013-07-05T22:14:49.666-07:00Inteligencia de Negocios<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><br />
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:RelyOnVML/>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:HyphenationZone>21</w:HyphenationZone>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
</w:Compatibility>
</w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" LatentStyleCount="156">
</w:LatentStyles>
</xml><![endif]--><!--[if !mso]><img src="//img2.blogblog.com/img/video_object.png" style="background-color: #b2b2b2; " class="BLOGGER-object-element tr_noresize tr_placeholder" id="ieooui" data-original-id="ieooui" />
<style>
st1\:*{behavior:url(#ieooui) }
</style>
<![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Tabla normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]-->
<br />
<h1>
<a href="http://www.blogger.com/null" name="_Toc360826178"><span lang="ES-CL" style="font-family: "Times New Roman";">Introducción</span></a><span lang="ES-CL" style="font-family: "Times New Roman";"></span></h1>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">A partir de los
años 90’s la Inteligencia
de negocio o Bussines Intelligence, han ido evolucionando constantemente y en
muchas direcciones, producto del crecimiento exponencial de la información y
las nuevas tecnologías que han permitido que el BI<span style="mso-spacerun: yes;"> </span>se desarrolle de manera íntegra.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">La tecnología de BI
ha encontrado lugar en dos niveles primaros dentro de las organizaciones uno es
entre los altos ejecutivos, para quienes es de vital importancia obtener
información estratégica y también entre los administradores de la línea de
negocios quienes son los responsables del análisis táctico.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Desde los años 90’s
las tecnologías de Bussines Inteligence han evolucionado dramáticamente y
muchas empresas han empezado a invertir en estas nuevas tecnologías pero la
pregunta es ¿Por qué las empresas realizan estas inversiones? ¿Cuál es la importancia
de estas tecnologías? ¿Qué es la inteligencia de negocio (BI)? Estas son
algunas de las respuestas a las que responderá este documento.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div align="center">
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-yfti-tbllook: 1184;">
<tbody>
<tr style="height: 153.2pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0; mso-yfti-lastrow: yes;">
<td style="border: solid windowtext 1.0pt; height: 153.2pt; mso-border-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 231.9pt;" valign="top" width="309"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-no-proof: yes;">
</span><span lang="ES-CL" style="font-family: "Times New Roman";"></span></div>
</td>
</tr>
</tbody></table>
</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<span lang="ES-CL" style="font-family: Calibri; font-size: 11.0pt; line-height: 115%; mso-ansi-language: ES-CL; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US;"><br clear="all" style="mso-special-character: line-break; page-break-before: always;" />
</span>
<br />
<div class="MsoNormal">
<br /></div>
<h1>
<a href="http://www.blogger.com/null" name="_Toc360826179"><span lang="ES-CL" style="font-family: "Times New Roman";">Historia
del Bussines Inteligence</span></a><span lang="ES-CL" style="font-family: "Times New Roman";"></span></h1>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Es importante saber
que la inteligencia de negocios tiene sus principios en el siglo XIX, uno de
los primeros hitos que dio paso al desarrollo de la Inteligencia de
Negocios fue la aparición<span style="mso-spacerun: yes;"> </span>del concepto
de bases de datos (CODD)<span style="mso-spacerun: yes;"> </span>en 1969. Después
de la creación del concepto de las bases de datos en 1970 se crearon las primeras
bases de datos y también aparecieron las primeras aplicaciones empresariales
(SAP, JD Edwards, Sibel, PeopleSoft). Estas aplicaciones permitieron realizar
lo que se conoce como “Data Entry” en los sistemas, aumentando la información
disponible, sin embargo, no fueron capaces de ofrecer acceso fácil y rápido a
la información por lo cual no era lo suficientemente eficiente a la hora de
generar reportes o tomar decisiones. A mediados de 1980 se creó un nuevo
concepto llamado “Datawarehouse”<a href="http://www.blogger.com/blogger.g?blogID=1609720531017460165#_edn1" name="_ednref1" style="mso-endnote-id: edn1;" title=""><span class="MsoEndnoteReference"><span style="mso-special-character: footnote;"><span class="MsoEndnoteReference"><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-ansi-language: ES-CL; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US;">[i]</span></span></span></span></a>
(Ralph Kimball, Bill Inmon), y aparecieron los primeros sistemas de reporting.
A pesar de todo seguía siendo complicado y funcionalmente pobre. Existían
relativamente potentes sistemas de bases de datos pero no existían aplicaciones
que facilitaran su explotación. </span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">En el año 1989
aparece el primer concepto de Inteligencia de negocio por Howrd Dresner, y en
el año 1990 aparece Bussines Intelligence 1.0. Proliferación de múltiples
aplicaciones de BI. Estos proveedores resultaban caros pero facilitaron el
acceso a la información, y en cierto modo agravaron los problemas que
pretendían resolver.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">En el año 2000 apareció
Bussines Intelligence 2.0. Consolidación de las aplicaciones de Bi en unas
pocas plataformas como Oracle, SAP, IBM,, Microsoft. A partir de la información
estructurada se empieza a considerar otro tipo de información y documentación
no estructurada.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">En los últimos años
y con los grandes avances en las tecnologías de la información las plataformas
de BI se han convertido en herramientas fundamentales para la gran mayoría de
las empresas a nivel mundial tanto para las pequeñas y medianas empresas como
también para las grandes empresas y compañías como lo podemos observar en la
figura 1.0.</span></div>
<div align="center" class="MsoNormal" style="text-align: center;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-no-proof: yes;">
</span><span lang="ES-CL" style="font-family: "Times New Roman";"></span></div>
<h1>
<a href="http://www.blogger.com/null" name="_Toc360826180"><span lang="ES-CL" style="font-family: "Times New Roman";">Definición
de Bussines Intelligence</span></a><span lang="ES-CL" style="font-family: "Times New Roman";"></span></h1>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Las aplicaciones de
Inteligencia de Negocios o Bussines Intelligence (BI) son herramientas de
soporte de decisiones que permite a las empresas el análisis, la manipulación
de información crítica y el acceso interactivo a la información en tiempo real.
El fin de estas aplicaciones es proporcionar a los usuarios un mayor
entendimiento de la información que les permita identificar las oportunidades y
los problemas de os negocios. Con estas herramientas y con la información que
proveen los usuarios son capaces de acceder y apalancar una vasta cantidad de
información y analizar sus relaciones para entender las tendencias que apoyan
las decisiones de las empresas y negocios. Estas herramientas previenen una
potencial perdida de conocimientos dentro de una empresa que resulta de una
acumulación masiva de la información que no es fácil de leer o de usar.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">La Inteligencia</span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;"> de
negocios es una arquitectura y una colección de herramientas que buscan mejorar
a las organizaciones, proporcionando información relevante para las distintas áreas
que componen la empresa, proporcionando vistas y aspectos de negocios para cada
uno de los empleados ya sea a nivel táctico, estratégico u operacional para que
puedan tomar decisiones de la manera más eficiente para potenciar las
capacidades de la empresa con la mayor cantidad de información disponible.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">La base y objetivo
de los sistemas de Inteligencia de negocios es la entrega oportuna de
información, además esta información debe ser correcta y relevante para el
sujeto que quiere usarla, es decir no solo la información debe ser correcta si
no también la persona a quien se le entrega.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Un sistema de BI
esta compuesto por una arquitectura y una colección de aplicaciones
operacionales y de soporte de decisiones con bases de datos relacionales que
proporcionan a los usuarios de la organización un fácil y rápido acceso a los
datos de la organización.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Como se ha
mencionado anteriormente las principales características de un sistema de
Inteligencia de negocios son:</span></div>
<div class="ListParagraphCxSpFirst" style="mso-list: l2 level1 lfo1; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">1)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Accesibilidad de la información: los datos
son la fuente principal de este concepto. Lo primero que deben garantizar este
tipo de herramientas y técnicas será l acceso de los usuarios a los datos
independencia de la procedencia de estos.</span></div>
<div class="ListParagraphCxSpMiddle" style="text-align: justify;">
<br /></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l2 level1 lfo1; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">2)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Apoyo en la toma de decisiones: Se busca ir
más allá en la presentación de la información, de manera que los usuarios
tengan acceso a herramientas de análisis que les permitan seleccionar y
manipular solo aquellos datos que les interese.</span></div>
<div class="ListParagraphCxSpMiddle">
<br /></div>
<div class="ListParagraphCxSpLast" style="mso-list: l2 level1 lfo1; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">3)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Orientación al usuario final: Se busca
independencia entre los conocimientos técnicos de los usuarios y sus
capacidades para utilizar estas herramientas.</span></div>
<span lang="ES-CL" style="font-family: Calibri; font-size: 11.0pt; line-height: 115%; mso-ansi-language: ES-CL; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US;"><br clear="all" style="mso-special-character: line-break; page-break-before: always;" />
</span>
<br />
<div class="MsoNormal">
<br /></div>
<h1>
<a href="http://www.blogger.com/null" name="_Toc360826181"><span lang="ES-CL" style="font-family: "Times New Roman";">Niveles
de Realización de BI (Herramientas de Explotación)</span></a><span lang="ES-CL" style="font-family: "Times New Roman";"></span></h1>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Según el nivel de
complejidad se pueden clasificar las soluciones de Bussines Intelligence en:</span></div>
<div class="ListParagraphCxSpFirst" style="mso-list: l0 level1 lfo2; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">1)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Consultas de Informes Simples (Query
Reports): son herramientas que nos permiten realizar consultas o informes para
obtener información sobre los datos. Entre estos se encuentran el entorno
transaccional a nivel de bases de datos, entorno de Datawarehouse.</span></div>
<div class="ListParagraphCxSpMiddle" style="text-align: justify;">
<br /></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo2; text-align: justify; text-indent: -18.0pt;">
<span lang="EN-US" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">2)<span style="font: 7.0pt "Times New Roman";"> </span></span></span><span lang="EN-US" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-ansi-language: EN-US;">Cubos OLAP (On-Line Analytic processing): exploración,
tablas dinámicas, etc…</span></div>
<div class="ListParagraphCxSpMiddle">
<br /></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo2; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">3)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">EIS: Solución que permite visualizar de una
forma rápida y fácil el estado de una determinada situación empresarial,<span style="mso-spacerun: yes;"> </span>presente o pasada, y que permite detector anomalías
u oportunidades.</span></div>
<div class="ListParagraphCxSpMiddle">
<br /></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo2; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">4)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">DSS: Aplicación informática que basándose
en modelos matemáticos y mediante análisis de sensibilidad permite ayudar a la
toma de decisiones.</span></div>
<div class="ListParagraphCxSpMiddle" style="text-align: justify;">
<br /></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo2; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">5)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Data Minding o Minería de datos: Pueden
considerarse sistemas expertos que nos permiten interrogar a los datos para
obtener información.</span></div>
<div class="ListParagraphCxSpMiddle" style="text-align: justify;">
<br /></div>
<div class="ListParagraphCxSpLast" style="mso-list: l0 level1 lfo2; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">6)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">KMS: Nuevas tecnologías para la gestión del
conocimiento y su integración en una única plataforma.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">En definitiva una
solución de BI completa, que utiliza estos elementos mencionados anteriormente
nos permite observar que es lo que está ocurriendo, comprender el por qué
ocurre, predecir porqué ocurre, colaborar, es decir, que debe hacer el equipo y
decir que camino es el que se debe seguir.</span></div>
<span lang="ES-CL" style="font-family: Calibri; font-size: 11.0pt; line-height: 115%; mso-ansi-language: ES-CL; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US;"><br clear="all" style="mso-special-character: line-break; page-break-before: always;" />
</span>
<br />
<div class="MsoNormal">
<br /></div>
<h1>
<a href="http://www.blogger.com/null" name="_Toc360826182"><span lang="ES-CL" style="font-family: "Times New Roman";">Ventajas
y desventajas de BI</span></a><span lang="ES-CL" style="font-family: "Times New Roman";"></span></h1>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Las principales
ventajas que proporciona la integración del BI en las empresas y organizaciones
son las siguientes:</span></div>
<div class="ListParagraphCxSpFirst" style="mso-list: l7 level1 lfo3; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">1)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Información concisa y relevante en tiempo
real.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l7 level1 lfo3; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">2)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Ayuda a la toma de decisiones </span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l7 level1 lfo3; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">3)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Ventajas competitivas frente al mercado.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l7 level1 lfo3; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">4)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Generación de Informes tácticos, técnicos y
operacionales.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l7 level1 lfo3; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">5)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Facilita las gestiones administrativas de
las empresas.</span></div>
<div class="ListParagraphCxSpLast" style="mso-list: l7 level1 lfo3; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">6)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Muestra el estado real de la empresa en
todo momento.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Retos y Desventajas
de BI</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Las principales
desventajas que tiene la inteligencia de negocios son:</span></div>
<div class="ListParagraphCxSpFirst" style="mso-list: l9 level1 lfo4; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">1)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Requiere de una gran inversión, dado que la
construcción correcta de estos sistemas no es una tarea sencilla y se consumes
muchos recursos, de los tres niveles principales de las organizaciones,<span style="mso-spacerun: yes;"> </span>estos recursos son: Económicos, Humanos y
materiales (equipos de última generación).</span></div>
<div class="ListParagraphCxSpMiddle" style="text-align: justify;">
<br /></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l9 level1 lfo4; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">2)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">No solo es capacitar los recursos humanos
para que usen de forma adecuada las herramientas proporcionadas, sino que
también se ven afectados los recursos económicos para obtener infraestructura
acorde con las herramientas esto implica tecnología de última generación y por
ende muy costosa, adema se debe tener claro que los recursos tecnológicos en
ocasiones no permiten un adecuado uso o bien los resultados no son los
esperados ya que habrán de ser sometidos al máximo rendimiento de sus
funciones.</span></div>
<div class="ListParagraphCxSpMiddle">
<br /></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l9 level1 lfo4; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">3)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Ya que las tecnologías están inmersas en un
también que está evolucionando y cambiando constantemente en proporciones
aceleradas producto de las nuevas tendencias, nuevos proveedores y su amplio
mercado existe un alto riesgo a la hora de adquirir los recursos tecnológicos
necesarios ya que lo más caro no siempre es lo más conveniente no lo mejor.</span></div>
<div class="ListParagraphCxSpMiddle" style="text-align: justify;">
<br /></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l9 level1 lfo4; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">4)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;"><span style="mso-spacerun: yes;"> </span>La
implementación implica desde la adquisición de herramientas de consultas y
análisis hasta la capacitación de o los usuarios y operarios encargados de la
utilización del sistema, lo cual implica que las empres no quieren correr el
riesgo que los operarios del sistema migren a otras organizaciones con los
conocimientos adquiridos y que el conocimiento gestado pierda calidad y
privacidad.</span></div>
<div class="ListParagraphCxSpMiddle" style="margin-left: 0cm; mso-add-space: auto; text-align: justify;">
<br /></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l9 level1 lfo4; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">5)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">A la hora de la implementación existe una
fuerte resistencia al cambio por parte de los operarios y usuarios del sistema,
esto debido a las constantes dudas que surgen como por ejemplo ¿Por qué cambiar
si este sistema funciona de forma adecuada y cómoda?</span></div>
<div class="ListParagraphCxSpMiddle" style="text-align: justify;">
<br /></div>
<div class="ListParagraphCxSpLast" style="mso-list: l9 level1 lfo4; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">6)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">No existe una gestión de cuando debemos
cambiar nuestro sistema de comunicación e información, por lo cual los cambios
aparentemente sencillos y rápidos sueles ser tediosos para clientes y usuarios.</span></div>
<span lang="ES-CL" style="font-family: Calibri; font-size: 11.0pt; line-height: 115%; mso-ansi-language: ES-CL; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US;"><br clear="all" style="mso-special-character: line-break; page-break-before: always;" />
</span>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<h1>
<a href="http://www.blogger.com/null" name="_Toc360826183"><span lang="ES-CL" style="font-family: "Times New Roman";">Análisis
de Mercado de BI</span></a><span lang="ES-CL" style="font-family: "Times New Roman";"></span></h1>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">El exceso de
información no es poder, sin embargo el conocimiento si, con mucha frecuencia
el tratamiento y análisis de la información y los datos generados por las
propias empresas suelen convertirse en verdaderos problemas y por lo tanto la
toma de decisiones se vuelve desesperadamente lento.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Las tecnologías de
BI como lo mencionamos anteriormente sirven para mejorar la toma de decisiones
de forma rápida y eficiente para que finalmente se mejore la consecución de
objetivos de la organización. Los objetivos claves de la Inteligencia de
Negocios son incrementar la eficiencia organizacional y efectiva de las
empresas proporcionando grandes ventajas competitivas frente a al mercado y sus
competidores convirtiéndose en una herramienta fundamental para cualquier
empresa u organización. Algunas de las Tecnologías de Inteligencia de Negocios
apuntan a crear un flujo de datos dentro de la organización más rápido y
accesible. Por otro lado novedosas tecnologías de BI toman un enfoque más
agresivo redefiniendo los procesos existentes con otros nuevos, mucho más
estilizados que eliminan gran cantidad de procesos o crean nuevas capacidades.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">En una reciente encuesta
realizada por Gartner, BI fue catalogado en el número dos en la lista de
prioridades tecnológicas de los CIO para el 2005, después de ubicarse en el
lugar número dos en el año 2004.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Debido a este nuevo
énfasis en BI, el mercado de herramientas de Software de BI<span style="mso-spacerun: yes;"> </span>alrededor del mundo creció en un 7.7% en el
2004, basado en estimaciones preliminares del mercado compuesto.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">El crecimiento de
2004 fue conocido por el alto desempeño de vendedores específicos incluyendo
Cognos y Microsoft. El ranking no cambo respecto al año 2003 tal y como se
esperaba. Los tres mayores vendedores de herramientas de BI en el mercado
global, según datos Gartner son los que se exponen en la tabla 1.0</span></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-yfti-tbllook: 1184;">
<tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;">
<td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 224.45pt;" valign="top" width="299"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="ES-CL" style="font-family: "Times New Roman";">Proveedor </span></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 224.45pt;" valign="top" width="299"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="ES-CL" style="font-family: "Times New Roman";">Posición en el
Mercado Compartido</span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 1;">
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 224.45pt;" valign="top" width="299"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="ES-CL" style="font-family: "Times New Roman";">Bussines
Objects</span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 224.45pt;" valign="top" width="299"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="ES-CL" style="font-family: "Times New Roman";">1</span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 224.45pt;" valign="top" width="299"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="ES-CL" style="font-family: "Times New Roman";">SAP Institute</span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 224.45pt;" valign="top" width="299"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="ES-CL" style="font-family: "Times New Roman";">2</span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 3; mso-yfti-lastrow: yes;">
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 224.45pt;" valign="top" width="299"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="ES-CL" style="font-family: "Times New Roman";">Cognos</span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 224.45pt;" valign="top" width="299"><div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="ES-CL" style="font-family: "Times New Roman";">3</span></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">En los últimos años
el mercado de BI ha tenido un descenso en las ventas a nivel mundial.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">El año 2012 el
mercado de BI ascendió a 13.100 millones de dólares los que representan un
crecimiento del 6.8% con respecto a los 12.300 millones de dólares del 2011.
Sin embargo, el ritmo del crecimiento<span style="mso-spacerun: yes;">
</span>desacelero considerablemente con respecto al 17% que experimento en el
año 2011.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="background: white; font-family: Arial; font-size: 12.0pt; line-height: 115%;">“Aunque
es una caída impresionante, está en línea con nuestros pronósticos publicados
durante el 2012”,
escribieron los analistas Dan Sommer y Bhavish Sood en el informe. Asimismo,
“las condiciones macroeconómicas globales no pueden ignorarse”, agrega el
estudio. “Éstas generaron un mayor escrutinio de los presupuestos tanto de lo
nuevo como del mantenimiento en todo el espacio de TI, y BI no fue la
excepción”.<a href="http://www.blogger.com/blogger.g?blogID=1609720531017460165#_edn2" name="_ednref2" style="mso-endnote-id: edn2;" title=""><span class="MsoEndnoteReference"><span style="mso-special-character: footnote;"><span class="MsoEndnoteReference"><span lang="ES-CL" style="background: white; font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-ansi-language: ES-CL; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US;">[ii]</span></span></span></span></a></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">El rendimiento para
el mercado de BI fue especialmente difícil en Europa y América Latina el año
pasado, aunque no en Medio Oriente, África y los mercados emergentes de
Asia-Pacífico, “que aún<span style="mso-spacerun: yes;"> </span>se encuentran en
fase de subida”, señala el reporte.<br />
</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Mientras tanto, “la
cada vez mayor confusión alrededor de los términos de moda y sobre dónde se
encuentran los beneficios tangibles, contribuyeron muy probablemente con la
desaceleración de los ciclos de ventas en BI mientras que los administradores
de los presupuestos están intentando identificar las herramientas y el valor
para el negocio”, de acuerdo a Gartner.<br />
</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Más aún, el gasto
en las plataformas de infraestructura BI más importantes “se mostró plano con
un crecimiento de un solo dígito” el año pasado, mientras que el mayor gasto se
realizó fuera de TI a nivel departamental, ya que las unidades de negocio
buscaban aplicaciones analíticas y herramientas de descubrimiento de datos para
sus necesidades particulares.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;"><br />
En términos de cuota de mercado, SAP se mantuvo en el primer lugar en la
encuesta de Gartner con alrededor de 2.900 millones de dólares en ingresos por
BI, aunque el crecimiento anual fue de solo 0,6%. Oracle se mantiene segunda
con 1.950 millones de dólares, seguida por IBM con 1.620 millones de dólares.</span></div>
<h1>
<span lang="ES-CL" style="font-family: "Times New Roman";"> </span></h1>
<h1>
<a href="http://www.blogger.com/null" name="_Toc360826184"><span lang="ES-CL" style="font-family: "Times New Roman";">Tipos
de productos y ejemplos de BI</span></a><span lang="ES-CL" style="font-family: "Times New Roman";"></span></h1>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Las herramientas de
software de BI son usadas para acceder a los datos de los negocios y
proporcionar reportes, análisis, visualizaciones y alertas a los usuarios. La
gran mayoría de las herramientas de BI son usadas por usuarios finales para
acceder, analizar y reportar contra los datos que más frecuentemente residen en
data warehouse, data marts y almacenes de datos operacionales. Los
desarrolladores de aplicaciones usan plataformas de BI para desarrollar y
desplegar aplicaciones (las cuales no son consideradas herramientas de BI).
Ejemplos de una aplicación de BI son las aplicaciones de consolidación
financiera y presupuestos.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Actualmente el
mercado de herramientas de BI se encuentra constituido de dos subsegmentos:
suites de BI empresarial (EBIS, por sus siglas en inglés) y plataformas de BI.
La mayoría de las herramientas de BI, como las desarrolladas por los vendedores
mencionados en la tabla 1, son BI empresarial y plataformas de BI. Gartner
Dataquest (2005) realizó un pronóstico a cinco años, basado en una estimación
preliminar de tamaño del mercados y una revisión de los inhibidores e
impulsores, llegando a la conclusión de que el total de mercado de herramientas
de BI proyecta un crecimiento de $ 2.5 billones en 2004 a $ 2.9 billones en
2009, con una tasa de crecimiento anual de 7.4%.</span></div>
<h1>
<a href="http://www.blogger.com/null" name="_Toc360826185"><span lang="ES-CL" style="font-family: "Times New Roman";">Conceptos
y soluciones integrales (herramientas) BI</span></a><span lang="ES-CL" style="font-family: "Times New Roman";"> </span></h1>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Dentro las los
conceptos y herramientas principales de la inteligencia de negocios tenemos
principalmente:</span></div>
<div class="ListParagraphCxSpFirst" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Sistemas Fuentes: Son los sistemas
transaccionales que han sido diseñados fundamentalmente para el soporte de las
operaciones del negocio como: Compras, Ventas, Almacenes, Contabilidad, etc.
Estos sistemas deben cumplir un requisito fundamental: ya deben de estar
consolidados en cuanto al registro de información de las operaciones. No sería
limitante si le carece de reportes para toma de decisiones, ya que es ahí el vació
que cubrirá la
Inteligencia de Negocios adicionando módulos de gestión para
las decisiones operacionales.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Bases de Datos Operacionales OLTP: Los
sistemas transaccionales son los encargados de registrar o grabar las
operaciones dentro de las bases de datos operacionales (On Line Transactional
Process: OLTP). Estos datos permiten generar los informes para la toma de
decisiones a nivel operacional. Estas bases de datos fundamentalmente lo que
persiguen son el registro de las transacciones y la consistencia de los datos.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Requerimientos Estratégicos (Plan
Estratégico): Es altamente recomendable tener definido el Plan Estratégico de la Organización. En
caso extremo no se obtenga, a partir de las entrevistas se pueden buscar:
objetivos, estrategias, indicadores de estrategias que permitan orientar el
producto a diseñar. Son bastante útiles además del plan y las entrevistas los
reportes de gestión que los tomadores de decisiones poseen para medir su
gestión.</span></div>
<div class="ListParagraphCxSpMiddle" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;"><br />
Estos requerimientos estratégicos deberán contrastarse con la Base de Datos Operacional, ya
que muchos de ellos se obtendrán de esta fuente. En caso no puedan ser
obtenidos se recomienda re-estructurar la Base de datos y las aplicaciones, a fin de
satisfacer estos requerimientos estratégicos.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">ETL (Extraer, Transformar y Cargar-Poblar):
es el componente que permite dos cosas fundamentales:</span></div>
<div class="ListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l4 level2 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: "Courier New"; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: "Courier New";"><span style="mso-list: Ignore;">o<span style="font: 7.0pt "Times New Roman";"> </span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Integrar
datos cuando se tengan distintas fuentes (diferentes manejadores de bases de
datos)</span></div>
<div class="ListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l4 level2 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: "Courier New"; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: "Courier New";"><span style="mso-list: Ignore;">o<span style="font: 7.0pt "Times New Roman";"> </span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Llevar
información de las bases de datos operacionales a las bases de datos
dimensionales.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Data WareHouse (DWH): Es el gran almacén de
datos que está estructurado para analizar la información, a diferente nivel de
detalle, de todos los procesos de negocios que tiene la organización. Es la Base de Datos llamada
estratégica o multidimensional. Una vez diseñadas mediante el ETL es poblada o
llenada a partir de las Bases de Datos operacionales. El diseño va orientado a
encontrar medidas (Por ejemplo: montos vendidos, montos cobrados, horas hombre
utilizadas, etc.) y dimensiones (Clientes, Productos, Tiempo, Organización,
Servicios, etc.).</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Data Marts: Constituyen una parte de un
DWH. Si un DWH está formado por todos los procesos de la organización, un Data
Mart constituye un determinado proceso. Por ejemplo podríamos tener un Data
Mart para Finanzas, otro para Logística. Pueden ser preparados a partir de un
DWH o ser elaborados independientemente.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Tecnologías OLAP (On Line Analytical
process): Es la tecnología que permite aprovechar como está estructurada la
información de un DataMart o un Data WareHouse. Fundamentalmente es una
tecnología que permitirá analizar información dinámicamente a los niveles
táctico y estratégico basados en Cubos que contienen las medidas y las
Dimensiones.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Minería de datos: Constituyen algoritmos
avanzados (estadísticas, inteligencia artificial) que intenta descubrir cosas
ocultas en los datos capturados a lo largo de las operaciones del negocio. Es
el llamado el descubrimiento del conocimiento y va direccionado al nivel
estratégico directamente.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Aplicaciones para soporte de decisiones:
Van diseñadas para cubrir las decisiones tácticas y estratégicas. En el mercado
existen una serie de herramientas que permiten construir estas aplicaciones,
que se montan sobre una solución OLAP o Bases de Datos transaccionales.</span></div>
<div class="ListParagraphCxSpLast" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Sistemas de Ejecución para Ejecutivos: Son
sistemas diseñados para la alta dirección y que están basados en alertas o
semáforos que indican el estado de un determinado indicador de negocio. Este
indicador se le llama KPI (Key Performance Indicator). Estos estados están
reflejados en símbolos como un semáforo (rojo, verde, ámbar) entre otros.
Generalmente son obtenidos a partir de un Balance ScoredCard).</span></div>
<span lang="ES-CL" style="font-family: Calibri; font-size: 11.0pt; line-height: 115%; mso-ansi-language: ES-CL; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US;"><br clear="all" style="mso-special-character: line-break; page-break-before: always;" />
</span>
<br />
<div class="MsoNormal">
<br /></div>
<h1>
<a href="http://www.blogger.com/null" name="_Toc360826186"><span lang="ES-CL" style="font-family: "Times New Roman";">Bases
de Datos Operacionales OLTP</span></a><span lang="ES-CL" style="font-family: "Times New Roman";"></span></h1>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Las bases de datos
operacionales son bases de datos orientadas al procesamiento de transacciones.
Una transacción genera un proceso atómico (Debe ser validado con un commit, o
invalidado con un rollback), puede incorporar operaciones de inserción,
modificación y borrado de datos. El proceso transaccional es típico de las
bases de datos operacionales.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Una base de datos
operacional debe contener:</span></div>
<div class="ListParagraphCxSpFirst" style="mso-list: l6 level1 lfo7; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">1)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">El acceso a los datos, esta optimizado para
tareas frecuentes de lectura y escritura. Por ejemplo la enorme cantidad de
transacciones que deben soportar las bases de datos de bancos o hipotecados
diariamente.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l6 level1 lfo7; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">2)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Los datos se estructuran según el nivel
aplicativo como los programas de gestión, ERP o CRM implantados, sistemas de
información departamental, Etc.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l6 level1 lfo7; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">3)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Los formatos de los datos no son
necesariamente uniformes en los diferentes departamentos (es común la falta de
compatibilidad y la existencia de islas de datos).</span></div>
<div class="ListParagraphCxSpLast" style="mso-list: l6 level1 lfo7; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">4)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">El historial de datos suele limitarse a los
datos actuales o recientes.</span></div>
<div class="MsoNormal">
<br /></div>
<h1>
<a href="http://www.blogger.com/null" name="_Toc360826187"><span lang="ES-CL">ETL Extraer, Transformar y
Cargar-Poblar</span></a></h1>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Es el proceso que le
permite a las organizaciones mover datos desde múltiples fuentes,
reformatearlos, limpiarlos y cargarlos en otras bases de datos.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">La primera parte
del ETL es la extracción de datos de los sistemas de origen, comúnmente los
datos vienen de ficheros de textos u archivos de diferentes formatos, también
pueden proceder de bases de datos con distintas estructuras y organizaciones.
La mayoría de los proyectos de almacenamiento de datos fusiona datos
provenientes de diferentes sistemas de origen.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Una parte
intrínseca del proceso de extracción es el análisis de los datos extraídos, de
lo que resulta un chequeo que verifica si los datos cumplen la pauta o
estructura que se espera. De no ser así los datos se rechazan.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">El proceso de
transformación es el encargado de definir los parámetros y reglas <span style="mso-spacerun: yes;"> </span>requeridos por el negocio para que los datos
puedan ser cargados </span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">El proceso de carga
de información es el proceso por el cual los datos obtenidos en el proceso de
transformación son cargados en los sistemas de destino. Dependiendo de los
requerimientos de la organización, este proceso puede abarcar amplia variedad
de acciones diferentes. En algunas bases de datos se sobrescribe información
antigua con nuevos datos. Los Data Warehouse mantienen un registro de manera de
que se pueda hacer una auditoria de los mismos y disponer de un rastro de toda
la historia de un valor a lo largo del tiempo.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Existen dos formas
básicas de desarrollar el proceso de carga estas son:</span></div>
<div class="ListParagraphCxSpFirst" style="mso-list: l8 level1 lfo8; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">1)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Acumulación Simple: la acumulación simple
es la mas sencilla y común. Consiste en realizar un resumen de todas las
transacciones comprendidas en el periodo de tiempo seleccionado y transportar
el resultado como una única transacción hacia el Data Warehouse, almacenando un
valor calculado que consiste típicamente en una sumatoria o un promedio de la
magnitud considerada. </span></div>
<div class="ListParagraphCxSpLast" style="mso-list: l8 level1 lfo8; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">2)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Rolling: El proceso de Rolling por su
parte, se aplica en los casos en que se opta por mantener varios niveles de
granularidad. Para ello se almacena información resumida a distintos niveles,
correspondientes a distintas agrupaciones de la unidad de tiempo o diferentes
niveles jerárquicos en alguna o varias de las dimensiones de la magnitud
almacenada (por ejemplo totales diarios, totales semanales, totales mensuales,
etc.).</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">La fase de carga
interactúa directamente con la base de datos de destino. AL realizar esta
operación se aplicaran todas las restricciones y triggers (disparos) que se
hayan definido en esta. Estas restricciones y trigger si están bien definidos
contribuyen a que se garantice la calidad de los datos en el proceso ETL y
deben ser tenidos en cuenta.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<h1>
<a href="http://www.blogger.com/null" name="_Toc360826188"><span lang="ES-CL">Data Warehouse DWH</span></a></h1>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Un almacén de datos
es una colección de datos orientados a un determinado ámbito (empresarial,
organizacional, etc.), integrado, no volátil y variable en el tiempo, que ayuda
a la toma de decisiones en la entidad en la que se utiliza.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Los principales
objetivos fundamentales de Data Warehouse son:</span></div>
<div class="ListParagraphCxSpFirst" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Hacer que la información de la organización
sea accesible: Los contenidos de Data Warehouse son entendibles, navegables y
el acceso a ellos son caracterizados por el rápido desempeño. Estos
requerimientos no tienen fronteras y tampoco limites fijos. Cuando se habla de
entendibles quiere decir que la información sea correcta y coherente. Cuando se
habla de navegables significa el reconocer el destino en la pantalla y llegar
donde queremos con un solo clic. El rápido desempeño, significa, que los
tiempos de espera deben tener una tendencia a cero. Todo lo demás es un
compromiso y por consiguiente algo que queremos mejorar.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Hacer que la información de la organización
de la organización sea consistente: La información de una parte de la organización
puede hacerse coincidir con la información de la otra parte de la organización.
Si dos medios de la organización tienen el mismo nombre, entonces deben
significar la misma cosa. Y a la inversa, si dos medidas no significan la misma
cosa, entonces son etiquetados diferentes. Información consistente significa
información de alta calidad. Significa que toda la información es contabilizada
y completa. </span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Es información adaptable y elástica: El
data Warehouse está diseñado para cambios continuos. Cuando se le hacen nuevas
preguntas al Data Warehouse, los datos existentes y las tecnologías, no cambian
ni se corrompen. El diseño de Data Marts separados que hacen al Data Warehouse,
deben ser distribuidos e incrementados.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Es un seguro baluarte que protege los
valores de la información: El Data Warehouse no solamente controla el acceso
efectivo a los datos, si no que da a los dueños de la información gran
visibilidad en el uso y abuso de los datos, aun después de haber dejado el Data
Warehouse. </span></div>
<div class="ListParagraphCxSpLast" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Es la función de la toma de decisiones: el
Data Warehouse tiene los datos correctos para soportar la toma de decisiones.
Solo hay una salida verdadera del Data Warehouse: las decisiones que son hechas
después de que el Data Warehouse haya presentado las evidencias. La etiqueta
original que preside en el Data Warehouse sigue siendo la mejor descripción de
lo que queremos construir, un sistema de soporte a las decisiones.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Los principales elementos
de un Data Warehouse son:</span></div>
<div class="ListParagraphCxSpFirst" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Sistemas fuentes: sistemas operacionales de
registros donde sus funciones son capturar las transacciones del negocio. A los
sistemas fuentes también se les conoce como Legacy System.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Área de tráfico de Datos: es un área de
almacenamiento y grupo de procesos, que limpian transforman, combinan, remueven
los datos duplicados, guardan, archivan y presentas los datos fuentes para ser
usados en la Data
Warehouse.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Servidor de presentación: la maquina física
objetiva en donde los datos del Data Warehouse son organizados y almacenados
para ser usados por los usuarios finales, reportes y otras aplicaciones.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">OLAP: Actividad general de búsqueda para
presentación de texto y número de Data Warehouse, también un estilo dimensional
especifico de búsqueda y presentación de información<span style="mso-spacerun: yes;"> </span>y que es ejemplificada por vendedores de
OLAP.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">ROLAP: un grupo de interfaces de usuarios y
aplicaciones que le dan a la base de datos relacional un estilo dimensional.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">MOLAP: un grupo de interfaces de usuario,
aplicaciones y propietarios de tecnologías de bases de datos que tienen un
fuerte estilo dimensional.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Aplicaciones para usuarios finales: una
colección de herramientas que haces las Querys, analizan y representan la
información objetivo para el soporte de decisiones del negocio.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Herramientas de acceso a datos por usuarios
finales: Un cliente de Data Warehouse.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Ad Hoc Query Tool: un tipo especifico de
herramientas de acceso a datos por usuarios finales que invita al usuario a
formar sus propias query, manipulando directamente las tablas relacionales y
sus uniones.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Moldeamiento de aplicaciones: Un
sofisticado tipo de cliente de Data Warehouse con capacidades analíticas que
transforma o dirige las salidas de Data Warehouse.</span></div>
<div class="ListParagraphCxSpLast" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Meta Data: Toda la información en el ámbito
de Data Warehouse que son así mismo los datos actuales.</span></div>
<div class="MsoNormal">
<br /></div>
<h1>
<a href="http://www.blogger.com/null" name="_Toc360826189"><span lang="ES-CL">Data Marts</span></a></h1>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Es una versión
especial de un Data Warehouse. Son subconjuntos de datos con el propósito de
ayudar a un área especifica dentro del negocio pueda tomar mejores decisiones.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">El Data Mart a
diferencia del Data Warehouse está diseñado para cubrir necesidades de un grupo
de trabajo o de un determinado departamento dentro de la organización, en
cambio, el ámbito de un Data Warehouse es el organismo en su conjunto. Se
caracteriza por disponer de un estructura optima de los datos para analizar la
información al detalle desde rodas las perspectivas que afectan a los procesos
de dicho departamento.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Supone una buena
opción para pequeñas y medianas empresas que no puedan afrontar el costo de
poner en marcha un Data Warehouse. La escalabilidad de los Data Marts hacia el
Data Warehouse puede ser una solución si el número de Marts aumenta
considerablemente.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Existen dos tipos
de Data Marts:</span></div>
<div class="ListParagraphCxSpFirst" style="mso-list: l3 level1 lfo9; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">1)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Data Marts Dependientes: Los datos que se
utilizan para poblar el Data Marts provienen del Data Warehouse.<span style="mso-spacerun: yes;"> </span>Esta estrategia es particularmente apropiada
cuando el data Warehouse crece muy rápidamente y los distintos departamentos
requieren solo una péquela porción de los daros contenidos en él.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l3 level1 lfo9; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">2)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Data Marts Independientes: Los datos que se
utilizan para poblar el Data Marts provienen de los sistemas operacionales y/o
fuentes existentes.</span></div>
<div class="ListParagraphCxSpMiddle" style="text-align: justify;">
<br /></div>
<div class="ListParagraphCxSpMiddle" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Existen sin embargo
las siguientes problemáticas: </span></div>
<div class="ListParagraphCxSpMiddle" style="text-align: justify;">
<br /></div>
<div class="ListParagraphCxSpMiddle" style="margin-left: 88.5pt; mso-add-space: auto; mso-list: l12 level1 lfo10; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Calibri;"><span style="mso-list: Ignore;">-<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">El hecho de tener varios Data Marts, sin
ningún tipo de integración, que puede hacer que las tareas de administración y
mantenimiento se conviertan en un lastre.</span></div>
<div class="ListParagraphCxSpLast" style="margin-left: 88.5pt; mso-add-space: auto; mso-list: l12 level1 lfo10; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Calibri;"><span style="mso-list: Ignore;">-<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Se puede dar el caso de que algunas Data Marts
necesiten los mismos datos para dar respuesta a determinadas preguntas, por lo
que tenemos redundancia de datos, ya que cada Data Marts se alimenta con sus
procesos de extracción y trasformación propios.</span></div>
<div class="MsoNormal">
<br /></div>
<h1>
<a href="http://www.blogger.com/null" name="_Toc360826190"><span lang="EN-US" style="mso-ansi-language: EN-US;">Tecnologías
OLAP (On-Line Analytical Processing)</span></a><span lang="EN-US" style="mso-ansi-language: EN-US;"></span></h1>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Es un concepto
utilizado en la inteligencia de negocios y su objetivo principal es agilizar
las consultas de grandes volúmenes de datos. Para ello utiliza estructuras
multidimensionales (o Cubo OLAP) quienes contienen datos resumidos de grandes
bases de datos o Sistemas Transaccionales (OLTP). Se usa en informes de
negocios de ventas, marketing, informes de dirección, minería de datos y áreas
similares.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">OLAP no es más que
acceder a la información utilizando un lenguaje natural.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Existen varias
tecnologías OLAP pero básicamente todas asen las mismas acciones sobre la
información estas son: </span></div>
<div class="ListParagraphCxSpFirst" style="mso-list: l5 level1 lfo11; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">1)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Segmentar: Es como cuando pides las ventas
por productos o por trimestres.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l5 level1 lfo11; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">2)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Filtrar: Cuando pides el informe de ventas
de una sucursal el 2012.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l5 level1 lfo11; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">3)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Profundizar (Drill Down): Cuando pides el
desglose del trimestre 2 y te interesa el desglose de abril, mayo y junio.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l5 level1 lfo11; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">4)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Sintetizar (Drill Up): Desase el glose
anterior y vuelve al desglose por trimestre.</span></div>
<div class="ListParagraphCxSpLast" style="mso-list: l5 level1 lfo11; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">5)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Rotar (Drill Anywhere): Cuando en lugar de
pasar de un desglose por trimestre a uno mensual, te interesa un desglose por
familia de productos, o por nacionalidad, es decir, por una característica de
una jerarquía distinta a la que lo estás viendo actualmente.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Lo relevante del
análisis OLAP es que te permite navegar fisilmente por la información, solicitándola
con el detalle preciso y con filtros adecuados, que puedes hacerlo de manera
dinámica, fácil, ad hoc, sobre la marcha, sin necesitar asistencia, rápido y
sin la necesidad de usar un lenguaje de negocios.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Existen 3 herramientas
de OLAP estas son:</span></div>
<div class="ListParagraph" style="mso-list: l1 level1 lfo12; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">1)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">ROLAP: Implementación OLAP que almacena los
datos en un motor relacional. Típicamente, los datos son detallados, evitando
las agregaciones y las tablas se encuentran desnormalizadas. Los esquemas más comunes
sobre los que se trabaja son estrella o copo de nieve, aunque es posible
trabajar sobre cualquier base de datos relacional. La arquitectura está
compuesta por un servidor de banco de datos relacional y motor<span style="mso-spacerun: yes;"> </span>OLAP se encuentra en un servidor dedicado. La
principal ventaja de esta arquitectura es que te permite el análisis de una
enorme cantidad de datos.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="ListParagraphCxSpFirst" style="mso-list: l1 level1 lfo12; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">2)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">MOLAP: Esta implementación OLAP almacena
los datos en una base de datos multidimensional. Para optimizar los tiempos de
respuesta, el resumen de la información es usualmente calculada por adelantado.
Estos valores pre calculados o agregaciones son la base de las ganancias de
desempeño de este sistema. Algunos sistemas utilizan técnicas de comprensión de
datos para disminuir el espacio almacenado en el disco debido los valores recalculados.</span></div>
<div class="ListParagraphCxSpMiddle" style="text-align: justify;">
<br /></div>
<div class="ListParagraphCxSpLast" style="mso-list: l1 level1 lfo12; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">3)<span style="font: 7.0pt "Times New Roman";"> </span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">HOLAP:
Almacena algunos datos en un motor relacional y otros en un base de datos
multifuncional.</span></div>
<h1>
<a href="http://www.blogger.com/null" name="_Toc360826191"><span lang="ES-CL" style="font-family: "Times New Roman";">Minería
de Datos.</span></a><span lang="ES-CL" style="font-family: "Times New Roman";"></span></h1>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">La minería de datos
es tal vez uno de los puntos más importantes de la inteligencia de negocios de
después del Data WareHouse y la base de datos. La minería de datos es un
proceso por el cual podemos obtener información de una colección de datos. La
minería de datos utiliza un conjunto de análisis matemáticos y estadísticos
para deducir los patrones y tendencias que existen en los datos. Normalmente no
se puede detectar mediante la exploración tradicional de los datos porque son
demasiado complejas o simplemente porque hay demasiados datos.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Estos patrones y
tendencias se pueden recopilar y definir como un modelo de minería de datos.
Los modelos de datos se pueden aplicar en escenarios como los siguientes:</span></div>
<div class="ListParagraphCxSpFirst" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Pronostico: Calculo de las ventas y
predicción de las cargas de servidor o tiempo de inactividad del servidor.</span></div>
<div class="ListParagraphCxSpLast" style="mso-list: l4 level1 lfo5; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Symbol; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Riesgo y probabilidad: Elección de los mejores
clientes para la distribución de correo directo, determinación del punto de
equilibrio probable para escenarios de riesgo, y asignación de probabilidades a
diagnostico.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Un proceso de
minería de datos consta de los siguientes pasos generales:</span></div>
<div class="ListParagraphCxSpFirst" style="mso-list: l11 level1 lfo6; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">1)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Selección del conjunto de datos, tanto al
que se refiere a las variables objetivas que son aquellas que se quieren
predecir, calcular o inferir, como también a las variables independientes que
son las que sirven para hacer el cálculo o proceso, como posiblemente al
muestreo de los registros disponibles.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l11 level1 lfo6; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">2)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Análisis de las propiedades de los datos,
en especial los histogramas, diagramas de dispersión, presencia de valores
atípicos y ausencia de datos (valores nulos).</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l11 level1 lfo6; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">3)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Transformación del conjunto de datos de
entrada, se realiza de diversas formas en función del análisis previo, con el
objetivo de prepararlos para aplicar la técnica minería de datos que mejor se
adapte a los datos, a este paso también se le conoce como preprocesamiento de
los datos.</span></div>
<div class="ListParagraphCxSpMiddle" style="text-align: justify;">
<br /></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l11 level1 lfo6; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">4)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Seleccionar y aplicar la técnica de minería
de datos, se construye el modelo predictivo, de clasificación o segmentación.</span></div>
<div class="ListParagraphCxSpMiddle" style="mso-list: l11 level1 lfo6; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">5)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Atracción de conocimiento, mediante una
técnica de minería de datos, se obtiene un modelo de conocimiento, que
representa patrones de comportamiento observado en los valores de las variables
del problema o relaciones de asociación entre dichas variables. También pueden
usarse varias técnicas a la vez para genere distintos modelos, aunque
generalmente cada técnica obliga a un preprocesamiento diferente de datos.</span></div>
<div class="ListParagraphCxSpLast" style="mso-list: l11 level1 lfo6; text-align: justify; text-indent: -18.0pt;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">6)<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Interpretación y evaluación de datos, una
vez obtenido el modelo, se debe proceder a su validación comprobando que las
conclusiones que arroja son validas y suficientemente satisfactorias. En el
caso de haber obtenido varios modelos mediante el uso de distintas técnicas, se
deben comparar los modelos en busca de aquel que se ajuste mejor al problema.
Sin ninguno de los modelos alcanza los resultados esperados, debe alterarse
alguno de los pasos anteriores para generar nuevos modelos.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Si el modelo no supera
la evaluación y si el experto lo considera oportuno el proceso podría repetirse
desde el principio.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Una vez validado el
modelo, si los resultados son aceptables, el modelo ya está listo para su
explotación. <span style="mso-spacerun: yes;"> </span>Los modelos obtenidos por
las técnicas de minería de datos se aplican incorporándolos en los sistemas e
análisis de la información de las organizaciones, e incluso, en los sistemas
transaccionales. </span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">El siguiente
diagrama describe las relaciones existentes entre cada paso del proceso.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div align="center" class="MsoNormal" style="text-align: center;">
<span lang="EN-US" style="font-family: "Times New Roman"; mso-ansi-language: EN-US; mso-no-proof: yes;">
</span><span lang="ES-CL" style="font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Un ejemplo habitual
de negocios que utilizan<span style="mso-spacerun: yes;"> </span>minería de
datos son los supermercados y las empresas de retail quienes estudian el
comportamiento de sus clientes para ofrecer nuevos productos u ofertas,
mediante el análisis de la información historia de los clientes y aplicando
técnicas de minería de datos son capaces de descubrir patrones de
comportamientos en los clientes, de esta manera a la hora de ofrecer un
producto en vez de enviarle sus ofertas a todos sus clientes, solo se enfocan
en aquellos que predicen que tendrán una respuesta positiva frente al ofrecimiento.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">En los
supermercados es muy común encontrar en los sectores de bebestibles cosas como
maní, papas fritas, suflés, etc. Esto debido que se han descubierto patrones
que indican que los clientes luego de comprar algún bebestible también compra
maní o papas fritas, esta información se obtiene de las transacciones
realizadas (análisis de boletas y facturas). </span></div>
<span lang="ES-CL" style="font-family: "Times New Roman"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: ES-CL; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US;"><br clear="all" style="mso-special-character: line-break; page-break-before: always;" />
</span>
<br />
<div class="MsoNormal">
<br /></div>
<h1>
<a href="http://www.blogger.com/null" name="_Toc360826192"><span lang="ES-CL">Conclusión</span></a></h1>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">En la actualidad las herramientas de Inteligencia de
negocios se han convertido en piezas fundamentales para las organizaciones a la
hora de tomar decisiones y formular estrategias en el mercado. </span></div>
<div class="MsoNormal">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Con el paso del tiempo y los avances de<span style="mso-spacerun: yes;"> </span>las tecnologías de la información las
herramientas de inteligencia de negocios han ido cambiando y mejorando
constantemente, sin embargo aun hay procesos que deben seguir mejorando y
evolucionando para que puedan entregar mejores informes para la toma de
decisiones. Uno de los grandes desafíos de la inteligencia de negocios son sus
altos costos y la disminución de tiempos.</span></div>
<div class="MsoNormal">
<span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">Con las capacidades analíticas de la inteligencia de
negocios una empresa puede marcar la brecha entre el éxito y el fracaso frente
a las tendencias del mercado ya que si bien la información y los datos no son
el poder, el conocimiento si lo es, con la inteligencia de negocios se pueden
explotar los datos históricos para obtener conocimientos y lograr predecir las
nuevas tendencias de los mercados.</span></div>
<div class="MsoNormal">
<br /></div>
<div style="mso-element: endnote-list;">
<br clear="all" />
<hr align="left" size="1" width="33%" />
<div id="edn1" style="mso-element: endnote;">
<div class="MsoEndnoteText">
<a href="http://www.blogger.com/blogger.g?blogID=1609720531017460165#_ednref1" name="_edn1" style="mso-endnote-id: edn1;" title=""><span class="MsoEndnoteReference"><span lang="ES-CL" style="font-size: 8.0pt;"><span style="mso-special-character: footnote;"><span class="MsoEndnoteReference"><span lang="ES-CL" style="font-family: Calibri; font-size: 8.0pt; line-height: 115%; mso-ansi-language: ES-CL; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US;">[i]</span></span></span></span></span></a><span lang="ES-CL" style="font-size: 8.0pt;"> Datawarehouse es un repositorio de datos de
muy fácil acceso, que es alimentado por numerosas fuentes, transformadas en
grupos de información sobre temas específicos de negocios, para permitir nuevas
consultas, análisis, reportes y decisiones.</span></div>
</div>
<div id="edn2" style="mso-element: endnote;">
<div class="MsoEndnoteText">
<a href="http://www.blogger.com/blogger.g?blogID=1609720531017460165#_ednref2" name="_edn2" style="mso-endnote-id: edn2;" title=""><span class="MsoEndnoteReference"><span lang="ES-CL"><span style="mso-special-character: footnote;"><span class="MsoEndnoteReference"><span lang="ES-CL" style="font-family: Calibri; font-size: 10.0pt; line-height: 115%; mso-ansi-language: ES-CL; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US;">[ii]</span></span></span></span></span></a><span lang="ES-CL"> <a href="http://www.computerworld.es/business-intelligence/el-crecimiento-del-mercado-de-business-intelligence-se-freno-en-2012">http://www.computerworld.es/business-intelligence/el-crecimiento-del-mercado-de-business-intelligence-se-freno-en-2012</a></span></div>
<div class="MsoEndnoteText">
<br /></div>
<div class="MsoEndnoteText">
<br /></div>
<div class="MsoEndnoteText">
<br /></div>
<div class="MsoEndnoteText">
<br /></div>
<div class="MsoEndnoteText">
<br /></div>
<div class="MsoEndnoteText">
<br /></div>
<div class="MsoEndnoteText">
<br /></div>
<div class="MsoEndnoteText">
<br /></div>
<div class="MsoEndnoteText">
<br /></div>
<div class="MsoEndnoteText">
<br /></div>
<div class="MsoEndnoteText">
<br /></div>
<div class="MsoEndnoteText">
<br /></div>
<div class="MsoEndnoteText">
<br /></div>
<div class="MsoEndnoteText">
<br /></div>
<div class="MsoEndnoteText">
<br /></div>
<div class="MsoEndnoteText">
<br /></div>
<div class="MsoEndnoteText">
<br /></div>
<div class="MsoEndnoteText">
<br /></div>
<div class="MsoEndnoteText">
<br /></div>
<h1>
<span lang="ES-CL">Referencias</span></h1>
<h3>
<span lang="ES-CL" style="font-size: 12.0pt; font-weight: normal; line-height: 115%; mso-bidi-font-weight: bold;"> </span></h3>
<ul style="margin-top: 0cm;" type="square">
<li class="MsoNormal" style="mso-list: l10 level1 lfo13; tab-stops: list 36.0pt;"><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%;">“Introducción
al Business Intelligence “, AUTOR:<span class="info">Jordi Conesa Caralt
(coord.), Josep Curto Díaz , </span>número de páginas:<span class="info">238.</span></span><span style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-ansi-language: ES;"></span></li>
<li class="MsoNormal" style="mso-list: l10 level1 lfo13; tab-stops: list 36.0pt;"><span lang="EN-GB" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-ansi-language: EN-GB; mso-bidi-font-family: "Times New Roman";">“History
of Business Intelligence” , Microsoft Business Intelligence,<span style="mso-spacerun: yes;"> </span><a href="http://www.youtube.com/watch?v=_1y5jBESLPE">http://www.youtube.com/watch?v=_1y5jBESLPE</a></span></li>
<li class="MsoNormal" style="mso-list: l10 level1 lfo13; tab-stops: list 36.0pt;"><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: "Times New Roman";"><a href="http://es.scribd.com/doc/963002/Inteligencia-de-negocios" target="_parent"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">http://es.scribd.com/doc/963002/Inteligencia-</span></a><a href="http://es.scribd.com/doc/963002/Inteligencia-de-negocios" target="_parent"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">de-negocios</span></a></span><span lang="EN-GB" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-ansi-language: EN-GB; mso-bidi-font-family: "Times New Roman";"></span></li>
<li class="MsoNormal" style="mso-list: l10 level1 lfo13; tab-stops: list 36.0pt;"><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: "Times New Roman";"><a href="http://www.sinnexus.com/business_intelligence/" target="_parent"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">http://www.sinnexus.com/business_intelligence/</span></a></span><span lang="EN-GB" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-ansi-language: EN-GB; mso-bidi-font-family: "Times New Roman";"></span></li>
<li class="MsoNormal" style="mso-list: l10 level1 lfo13; tab-stops: list 36.0pt;"><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: "Times New Roman";"><a href="http://www.buenastareas.com/ensayos/Concepto-De-Dato-e-Informaci%C3%B3n/961662.html" target="_parent"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">http://www.buenastareas.com/ensayos/Concepto-De-Dato-e-</span></a><a href="http://www.buenastareas.com/ensayos/Concepto-De-Dato-e-Informaci%C3%B3n/961662.html" target="_parent"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">Informaci%C3%B3n/961662.html</span></a></span><span lang="EN-GB" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-ansi-language: EN-GB; mso-bidi-font-family: "Times New Roman";"></span></li>
<li class="MsoNormal" style="mso-list: l10 level1 lfo13; tab-stops: list 36.0pt;"><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: "Times New Roman";"><a href="http://www.baquia.com/posts/2011-11-07-la-inteligencia-de-negocios-y-la-direccion-general" target="_parent"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">http://www.baquia.com/posts/2011-11-07-la-inteligencia-de-</span></a><a href="http://www.baquia.com/posts/2011-11-07-la-inteligencia-de-negocios-y-la-direccion-general" target="_parent"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">negocios-y-la-direccion-general</span></a></span><span lang="EN-GB" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-ansi-language: EN-GB; mso-bidi-font-family: "Times New Roman";"></span></li>
<li class="MsoNormal" style="mso-list: l10 level1 lfo13; tab-stops: list 36.0pt;"><span lang="EN-GB" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-ansi-language: EN-GB; mso-bidi-font-family: "Times New Roman";">http://www.google.cl/url?sa=t&rct=j&q=&esrc=s&source=web&cd=8&ved=0CGcQFjAH&url=http%3A%2F%2Fcibertec.googlecode.com%2Ffiles%2FInteligencia%2520de%2520Negocios%2520Teor%25C3%25ADa.pdf&ei=cabRUeOGNOb7igLmw4C4Dg&usg=AFQjCNH5keZ5V3dhOjJhXcupcpuM2Ir9Dg&sig2=3FH0u0amPR3J5uFRxLG51Q&bvm=bv.48572450,d.cGE&cad=rja</span></li>
<li class="MsoNormal" style="mso-list: l10 level1 lfo13; tab-stops: list 36.0pt;"><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: "Times New Roman";"><a href="http://www.slideshare.net/hugoces/inteligencia-de-negocios-business-intelligence" target="_parent"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">http://www.slideshare.net/hugoces/inteligencia-de-negocios-</span></a><a href="http://www.slideshare.net/hugoces/inteligencia-de-negocios-business-intelligence" target="_parent"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">business-intelligence</span></a></span><span lang="EN-GB" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-ansi-language: EN-GB; mso-bidi-font-family: "Times New Roman";"></span></li>
<li class="MsoNormal" style="mso-list: l10 level1 lfo13; tab-stops: list 36.0pt;"><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: "Times New Roman";"><a href="http://www.sonda.com/business-intelligence/" target="_parent"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">http://www.sonda.com/business-intelligence/#</span></a></span><span lang="EN-GB" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-ansi-language: EN-GB; mso-bidi-font-family: "Times New Roman";"></span></li>
<li class="MsoNormal" style="mso-list: l10 level1 lfo13; tab-stops: list 36.0pt;"><span lang="ES-CL"><a href="http://www.computerworld.es/business-intelligence/el-crecimiento-del-mercado-de-business-intelligence-se-freno-en-2012"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">http://www.computerworld.es/business-intelligence/el-crecimiento-del-mercado-de-business-intelligence-se-freno-en-2012</span></a></span><span lang="EN-GB" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-ansi-language: EN-GB; mso-bidi-font-family: "Times New Roman";"></span></li>
<li class="MsoNormal" style="mso-list: l10 level1 lfo13; tab-stops: list 36.0pt;"><span lang="ES-CL" style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: "Times New Roman";">“Almacén de datos” : <a href="https://es.wikipedia.org/wiki/Almac%C3%A9n_de_datos">https://es.wikipedia.org/wiki/Almac%C3%A9n_de_datos</a></span><span style="font-family: Arial; font-size: 12.0pt; line-height: 115%; mso-ansi-language: ES; mso-bidi-font-family: "Times New Roman";"></span></li>
</ul>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="mso-ansi-language: ES;">Enlace a documento Word: http://es.slideshare.net/CarlosBetoHin/bi-final-23961985</span><br />
<span style="mso-ansi-language: ES;"> </span></div>
<div class="MsoNormal">
<span style="mso-ansi-language: ES;">Enlace a presentación: http://es.slideshare.net/CarlosBetoHin/1385-final</span></div>
<h1>
<span lang="ES-CL"><br /></span></h1>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoEndnoteText">
<br /></div>
</div>
</div>
Carlos Elmeshttp://www.blogger.com/profile/15134952313851412549noreply@blogger.com0tag:blogger.com,1999:blog-1609720531017460165.post-15025697145746504982013-06-01T08:37:00.001-07:002013-06-01T08:40:09.236-07:00<div style="text-align: center;">
Temario Proyecto Final</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: left;">
Tema: Inteligencia de Negocios<br />
<br />
Temario:<br />
<br />
<br />
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
1)<span style="font-size: 7pt;"> </span><!--[endif]-->Introducción a la Inteligencia de negocios.</div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
2)<span style="font-size: 7pt;"> </span>Definición de la inteligencia de negocios </div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
3)<span style="font-size: 7pt;"> </span>Análisis de Mercado de la Inteligencia de
negocios.</div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
4)<span style="font-size: 7pt;">
</span><!--[endif]-->Ejemplos de Inteligencia de Negocios</div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
5)<span style="font-size: 7pt;">
</span><!--[endif]-->Herramientas de la inteligencia de negocios.</div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
6)<span style="font-size: 7pt;">
</span><!--[endif]-->Los componentes de la inteligencia de negocios.</div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
7)<span style="font-size: 7pt;"> </span>Análisis Minería de Datos.</div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
8) Practica de Minería de Datos</div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
9)<span style="font-size: 7pt;"> </span>Conclusión.</div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<br /></div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
Grupo: 2</div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<br /></div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
Integrantes: Jonathan Campos</div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
Esteban Gonzalez</div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
Carlos Elmes</div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<br /></div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<br /></div>
</div>
Anonymoushttp://www.blogger.com/profile/11192196364860552365noreply@blogger.com0tag:blogger.com,1999:blog-1609720531017460165.post-16843076268675871552013-05-25T09:17:00.001-07:002013-05-25T09:17:28.497-07:00Generar sucesores y mostrar<br />
<br />
<br />
/*<br />
* To change this template, choose Tools | Templates<br />
* and open the template in the editor.<br />
*/<br />
package tarea2;<br />
<br />
/**<br />
*<br />
* @author jonathan<br />
*/<br />
public class Tarea2 {<br />
static int tabla2[][]=new int[3][3];<br />
/**<br />
* @param args the command line arguments<br />
*/<br />
public static void main(String[] args) {<br />
<br />
int tablero[][]=new int[3][3];<br />
int tablero1[][]=new int[3][3];<br />
int tablero2[][]=new int[3][3];<br />
int antes=0, despues=0, antesj=0, despuesj=0;<br />
tablero[0][0]=1;<br />
tablero[0][1]=2;<br />
tablero[0][2]=5;<br />
tablero[1][0]=6;<br />
tablero[1][1]=8;<br />
tablero[1][2]=7;<br />
tablero[2][0]=3;<br />
tablero[2][1]=4;<br />
tablero[2][2]=0;<br />
<br />
tablero1[0][0]=1;<br />
tablero1[0][1]=2;<br />
tablero1[0][2]=5;<br />
tablero1[1][0]=6;<br />
tablero1[1][1]=8;<br />
tablero1[1][2]=7;<br />
tablero1[2][0]=3;<br />
tablero1[2][1]=4;<br />
tablero1[2][2]=0;<br />
<br />
tablero2[0][0]=1;<br />
tablero2[0][1]=2;<br />
tablero2[0][2]=5;<br />
tablero2[1][0]=6;<br />
tablero2[1][1]=8;<br />
tablero2[1][2]=7;<br />
tablero2[2][0]=3;<br />
tablero2[2][1]=4;<br />
tablero2[2][2]=0;<br />
<br />
<br />
int i=0, j=0,v1=0,v2=0;<br />
for (i=0;i<3;i++)<br />
{<br />
for(j=0;j<3;j++)<br />
{<br />
if (tablero[i][j]==0)<br />
{<br />
v1=i;<br />
v2=j;<br />
}<br />
//System.out.println(tablero[i][j]);<br />
}<br />
}<br />
int auxiliar1, auxiliar2, auxiliar3, auxiliar4;<br />
auxiliar1=tablero[v1][v2];<br />
auxiliar2=tablero[v1-1][v2];<br />
auxiliar3=tablero[v1][v2-1];<br />
tablero1[v1][v2]=auxiliar2;<br />
tablero1[v1-1][v2]=auxiliar1;<br />
tablero2[v1][v2]=auxiliar1;<br />
tablero2[v1][v2-1]=auxiliar3;<br />
<br />
for (i=0;i<3;i++)<br />
{<br />
for (j=0;j<3;j++)<br />
{System.out.println("TablaOriginal="+tablero[i][j]+" Tablero 1 ="+tablero1[i][j]+" Tablero="+tablero2[i][j]);}<br />
}<br />
<br />
<br />
<br />
<br />
}<br />
<br />
<br />
}<br />
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/11192196364860552365noreply@blogger.com0tag:blogger.com,1999:blog-1609720531017460165.post-23855845104014299442013-05-11T01:43:00.002-07:002013-05-11T01:45:18.263-07:00Proyecto - Trabajo Práctico de Búsqueda en el espacio de estados<br />
<br />
<b>Introducción</b><br />
<br />
La búsqueda en el espacio de estados es un proceso ocupado en Inteligencia Artificial en el cual se consideran sucesivos estados de una instancia para encontrar un estado final con las características que se elijan.<br />
Es necesario definir un problema el cual será modelado por un conjunto de estados que lo contengan, cada estado estará conectado si existe una operación que transforme el primer estado en el segundo.<br />
Una representación de estados es un modelo matemático de un sistema (problema) descrito mediante un conjunto de entradas, salidas y variables de estado relacionadas.<br />
El siguiente informe busca definir los conceptos básicos referentes a la búsqueda en el espacio de estados, para esto se mostrará el comportamiento de estos mediante la solución al problema del 8 puzzle.<br />
Parte I - Representación de problemas en el espacio de estados.<br />
La representación de problemas en Inteligencia Artificial consiste en buscar un estado concreto (el mejor) entre un conjunto de estados llamada espacio de estados.<br />
Para diseñar esta representación es necesario seguir los siguientes pasos:<br />
Crear una descripción formal y manejable del propio problema.<br />
- Espacio de estados<br />
- Estado inicial<br />
- Estado final<br />
- Reglas para pasar de un estado a otro.<br />
Estos pasos permiten definir formalmente el problema, convirtiendo una situación dada en una situación deseada, al mismo tiempo permite definir el proceso de resolución de un problema con una combinación de técnicas conocidas (encontrar una ruta desde el estado inicial, hasta el estado esperado).<br />
<br />
<br />
A continuación se muestra el modelo típico de espacios de estados:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuVsuJ2T0xnJO3XxgaAzWMGXRP9zUHNW4WmJVozqBHgaKU7brPVAJBJXnq2hRZ6EmqCIkgFJLeB0HC3FpaXuxhKpAhF54i0k0C2J3upyTKqvq2xOhempKOIzdKzJEPHWeE2gM_CJdtjLE/s1600/esquema.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="173" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuVsuJ2T0xnJO3XxgaAzWMGXRP9zUHNW4WmJVozqBHgaKU7brPVAJBJXnq2hRZ6EmqCIkgFJLeB0HC3FpaXuxhKpAhF54i0k0C2J3upyTKqvq2xOhempKOIzdKzJEPHWeE2gM_CJdtjLE/s400/esquema.png" width="400" /></a></div>
<br />
<br />
<b>Parte I Representación de 8 puzzle en el espacio de estados</b><br />
<br />
Espacio de estados: cantidad de de puzles que se pueden generar en un juego.<br />
Estado inicial: Un puzle de 9 casillas en el cual ocho están llenas de algún elemento y la novena casilla se encuentra vacía, sin importar el orden de los elementos.<br />
Estado final: Un puzle con los elementos ordenados de menor a mayor y la última casilla vacía.<br />
Reglas: Los movimientos de cada elemento serán de manera horizontal o vertical, dependiendo de la ubicación de la casilla vacía y estarán limitados por los bordes del puzle.<br />
Operadores de cambio de estado:<br />
- Arriba.<br />
- Abajo.<br />
- Derecha.<br />
- Izquierda<br />
.<br />
<br />
A continuación se muestra un ejemplo básico de representación de 8 puzle en el espacio de estados.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5qmLm6EmyC0taIW_jG14KxnIsN0yuvAGNDwQJWvvfosRAWHlknQQG8fEenQy6J_ombol23mY0nGs8WSmkVbCznGj6dCqUvQJcMPIjeEP_IQSa_kwukme9T7b6mGLwuk0rDaDr4j3unUU/s1600/espacioestados.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="255" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5qmLm6EmyC0taIW_jG14KxnIsN0yuvAGNDwQJWvvfosRAWHlknQQG8fEenQy6J_ombol23mY0nGs8WSmkVbCznGj6dCqUvQJcMPIjeEP_IQSa_kwukme9T7b6mGLwuk0rDaDr4j3unUU/s320/espacioestados.png" width="320" /></a></div>
<br />
<br />
<b>Parte II - Implementación de los Algoritmos de búsqueda en el espacio de estados.</b><br />
<br />
Búsqueda en profundidad<br />
Es un algoritmo que permite recorrer todos los nodos de un árbol de manera ordenada, pero no uniforme. Su funcionamiento consiste en ir expandiendo cada uno de los nodos localizados, de forma recurrente en un camino concreto, cuando ya no quedan nodos en dicho camino, regresa, de esta forma repite el proceso para cada uno de los hermanos del nodo ya procesado.<br />
<br />
<br />
A continuación Pseudocódigo para el algoritmo en profundidad:<br />
<br />
<i>DFS(grafo G)</i><br />
<i> PARA CADA vertice u ∈ V[G] HACER</i><br />
<i> estado[u] ← NO_VISITADO</i><br />
<i> padre[u] ← NULO</i><br />
<i> tiempo ← 0</i><br />
<i> PARA CADA vertice u ∈ V[G] HACER</i><br />
<i> SI estado[u] = NO_VISITADO ENTONCES</i><br />
<i> DFS_Visitar(u)</i><br />
<i> DFS_Visitar(nodo u)</i><br />
<i> estado[u] ← VISITADO</i><br />
<i> tiempo ← tiempo + 1</i><br />
<i> d[u] ← tiempo</i><br />
<i> PARA CADA v ∈ Vecinos[u] HACER</i><br />
<i> SI estado[v] = NO_VISITADO ENTONCES</i><br />
<i> padre[v] ← u</i><br />
<i> DFS_Visitar(v)</i><br />
<i> estado[u] ← TERMINADO</i><br />
<i> tiempo ← tiempo + 1</i><br />
<i> f[u] ← tiempo</i><br />
<br />
<br />
<br />
Búsqueda en profundidad<br />
Es un algoritmo que permite recorrer o buscar elementos en un árbol intuitivamente, expande y examina todos los nodos de un árbol sistemáticamente para buscar una solución, este algoritmo no ocupa ninguna estrategia heurística.<br />
<br />
<i>BFS(grafo G, nodo_fuente s)</i><br />
<i> {</i><br />
<i> // recorremos todos los vértices del grafo inicializándolos a NO_VISITADO,</i><br />
<i> // distancia INFINITA y padre de cada nodo NULL</i><br />
<i> for u ∈ V[G] do</i><br />
<i> {</i><br />
<i> estado[u] = NO_VISITADO;</i><br />
<i> distancia[u] = INFINITO; /* distancia infinita si el nodo no es alcanzable */</i><br />
<i> padre[u] = NULL;</i><br />
<i> }</i><br />
<i> estado[s] = VISITADO;</i><br />
<i> distancia[s] = 0;</i><br />
<i> Encolar(Q, s);</i><br />
<i> while !vacia(Q) do</i><br />
<i> {</i><br />
<i> // extraemos el nodo u de la cola Q y exploramos todos sus nodos adyacentes</i><br />
<i> u = extraer(Q);</i><br />
<i> for v ∈ adyacencia[u] do</i><br />
<i> {</i><br />
<i> if estado[v] == NO_VISITADO then</i><br />
<i> {</i><br />
<i> estado[v] = VISITADO;</i><br />
<i> distancia[v] = distancia[u] + 1;</i><br />
<i> padre[v] = u;</i><br />
<i> Encolar(Q, v);</i><br />
<i> }</i><br />
<i> }</i><br />
<i> }</i><br />
<i> }</i><br />
<br />
<br />
A continuación el código fuente de nuestro programa:<br />
<br />
<br />
<i>/*</i><br />
<i> *</i><br />
<i> *</i><br />
<i> */</i><br />
<i>package project01;</i><br />
<i><br /></i>
<i>/**</i><br />
<i> *</i><br />
<i> * @author Grupo: Jonathan Campos, Carlos Elmes, Esteban Gonzalez, Carlos Melo</i><br />
<i> */</i><br />
<i><br /></i>
<i>class Calculos</i><br />
<i>{</i><br />
<i> private int[] counter; // Arreglo para recorrer cada contador de profundidad</i><br />
<i> private int[] timer; //Tiempo</i><br />
<i> private int[] cost; //Costo</i><br />
<i> private int max; // Maxima profundidad</i><br />
<i> private int min = 0; // Minima profundidad</i><br />
<i> private int num = 10; // # para conseguir cada solución</i><br />
<i> private int size = 75; // Tamaño base para randomizar</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public Calculos(int max)</i><br />
<i> {</i><br />
<i> this.max = max;</i><br />
<i> counter = new int[max];</i><br />
<i> timer = new int[max];</i><br />
<i> cost = new int[max];</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public Calculos(int min, int max)</i><br />
<i> {</i><br />
<i> this.max = max;</i><br />
<i> this.min = min;</i><br />
<i> counter = new int[max];</i><br />
<i> timer = new int[max];</i><br />
<i> cost = new int[max];</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> // Corre suficientes puzles para cumplir con los requisitos</i><br />
<i> public void run()</i><br />
<i> {</i><br />
<i> int i;</i><br />
<i> do</i><br />
<i> {</i><br />
<i> Resuelve p = new Resuelve(size);</i><br />
<i> Tiempo t = new Tiempo();</i><br />
<i> t.start();</i><br />
<i> p.solve();</i><br />
<i> long time = t.end();</i><br />
<i> Puzle solution = p.getPuzzleSolution();</i><br />
<i><br /></i>
<i> if (solution.getDepth() <= max && (solution.getDepth()-min) > 0)</i><br />
<i> {</i><br />
<i> if (counter[(solution.getDepth()-1)-min] < num)</i><br />
<i> {</i><br />
<i> counter[(solution.getDepth()-1)-min]++;</i><br />
<i> timer[(solution.getDepth()-1)-min] += time;</i><br />
<i> cost[(solution.getDepth()-1)-min] += p.getCost();</i><br />
<i> }</i><br />
<i> }</i><br />
<i> } while (!checkCounter());</i><br />
<i> System.out.println("Profundidad\tCosto\tTiempo de Ejecucion");</i><br />
<i> for (i=0; i<(max-min); i++)</i><br />
<i> System.out.println((i+1)+min+"\t"+(cost[i]/num)+"\t"+timer[i]/num);</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> //Retorna verdadero si la data esta completa</i><br />
<i> public boolean checkCounter()</i><br />
<i> {</i><br />
<i> int count = 0;</i><br />
<i> for (int i=0; i<(max-min); i++)</i><br />
<i> {</i><br />
<i> count += counter[i];</i><br />
<i> }</i><br />
<i> return (count == ((max-min)*num));</i><br />
<i> }</i><br />
<i>} // Fin Clase Calculos</i><br />
<i><br /></i>
<i><br /></i>
<i><br /></i>
<i>/*</i><br />
<i> *</i><br />
<i> * </i><br />
<i> */</i><br />
<i>package project01;</i><br />
<br />
<i>/**</i><br />
<i> *</i><br />
<i> * @author jonathan</i><br />
<i> */</i><br />
<i>class Ejecutar</i><br />
<i>{</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public static void main(String[] args)</i><br />
<i> {</i><br />
<i> Resuelve puzzle = new Resuelve(100);// inicia clase y establece numero maximo de jugadas (profundidad)</i><br />
<i> puzzle.solve();</i><br />
<i> puzzle.print();</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i>} // fin clase Ejecutar</i><br />
<br />
<br />
<i>/*</i><br />
<i> * To change this template, choose Tools | Templates</i><br />
<i> * and open the template in the editor.</i><br />
<i> */</i><br />
<i>package project01;</i><br />
<br />
<i>/**</i><br />
<i> *</i><br />
<i> * @author jonathan</i><br />
<i> */</i><br />
<i>import java.util.Vector;</i><br />
<i>import java.util.Arrays;</i><br />
<i>import java.util.Random;</i><br />
<i>import java.lang.Math;</i><br />
<i>import java.util.Date;</i><br />
<i>///////////////////////////////////////////////////////////////////////////////////////////////////////////////</i><br />
<i>class Puzle</i><br />
<i>{</i><br />
<i> private int[] pieces = new int[9];</i><br />
<i> private boolean manhattan = true; //Type of heuristic function</i><br />
<i> private int depth; //Number of moves made so far</i><br />
<i> private int parentID=-1; //Parent ID for node tracking</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public Puzle(int move) {generate(move);}</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public Puzle(int[] squares, boolean isManhattan)</i><br />
<i> {</i><br />
<i> for (int i=0; i<9; i++)</i><br />
<i> {</i><br />
<i> pieces[i] = squares[i];</i><br />
<i> setHeuristic(isManhattan);</i><br />
<i> }</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public Puzle(int[] squares, boolean isManhattan, int depth)</i><br />
<i> {</i><br />
<i> this.depth = depth;</i><br />
<i> for (int i=0; i<9; i++)</i><br />
<i> {</i><br />
<i> pieces[i] = squares[i];</i><br />
<i> setHeuristic(isManhattan);</i><br />
<i> }</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public Puzle(int[] squares, boolean isManhattan, int depth, int parentID)</i><br />
<i> {</i><br />
<i> this.depth = depth;</i><br />
<i> this.parentID = parentID;</i><br />
<i> for (int i=0; i<9; i++)</i><br />
<i> {</i><br />
<i> pieces[i] = squares[i];</i><br />
<i> setHeuristic(isManhattan);</i><br />
<i> }</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public Puzle(Puzle puzzle)</i><br />
<i> {</i><br />
<i> pieces = puzzle.copyArray();</i><br />
<i> manhattan = puzzle.isManhattan();</i><br />
<i> depth = puzzle.getDepth();</i><br />
<i> parentID = puzzle.getParentID();</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> // Generates a fresh set of squares by moving the blank x number of times</i><br />
<i> public void generate(int move)</i><br />
<i> {</i><br />
<i> // create a correct puzzle</i><br />
<i> for (int i=0; i<9; i++)</i><br />
<i> pieces[i] = i;</i><br />
<i> // randomly move the puzzle (25 times for this project)</i><br />
<i> for (int j=0; j<move; j++)</i><br />
<i> {</i><br />
<i> // pick a random action</i><br />
<i> Random rand = new Random();</i><br />
<i> int choice = rand.nextInt(4)+1;</i><br />
<i> switch (choice)</i><br />
<i> {</i><br />
<i> case 1:</i><br />
<i> pieces = up(pieces);</i><br />
<i> break;</i><br />
<i> case 2:</i><br />
<i> pieces = down(pieces);</i><br />
<i> break;</i><br />
<i> case 3:</i><br />
<i> pieces = left(pieces);</i><br />
<i> break;</i><br />
<i> case 4:</i><br />
<i> pieces = right(pieces);</i><br />
<i> break;</i><br />
<i> }</i><br />
<i> }</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> private int[] up(int[] puzzleArray)</i><br />
<i> {</i><br />
<i> int i;</i><br />
<i> int[] temp = new int[puzzleArray.length];</i><br />
<i> int holder;</i><br />
<i> for (i=0; i<puzzleArray.length; i++)</i><br />
<i> temp[i] = puzzleArray[i];</i><br />
<i> int square= 0;</i><br />
<i> for (i=0; i<temp.length; i++)</i><br />
<i> {</i><br />
<i> if (temp[i] == 0)</i><br />
<i> square = i;</i><br />
<i> }</i><br />
<i> // invalid option check</i><br />
<i> if (square < 3)</i><br />
<i> return temp;</i><br />
<i> holder = temp[square];</i><br />
<i> temp[square] = temp[square-3];</i><br />
<i> temp[square-3] = holder;</i><br />
<i> return temp;</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> private int[] down(int[] puzzleArray)</i><br />
<i> {</i><br />
<i> int holder;</i><br />
<i> int[] temp = new int[puzzleArray.length];</i><br />
<i> for (int i=0; i<puzzleArray.length; i++)</i><br />
<i> temp[i] = puzzleArray[i];</i><br />
<i> int square= 0;</i><br />
<i> for (int i=0; i<temp.length; i++)</i><br />
<i> {</i><br />
<i> if (temp[i] ==0 )</i><br />
<i> square = i;</i><br />
<i> }</i><br />
<i> // invalid option check</i><br />
<i> if (square > 5)</i><br />
<i> return temp;</i><br />
<i> holder = temp[square];</i><br />
<i> temp[square] = temp[square+3];</i><br />
<i> temp[square+3] = holder;</i><br />
<i> return temp;</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> private int[] left(int[] puzzleArray)</i><br />
<i> {</i><br />
<i> int holder;</i><br />
<i> int[] temp = new int[puzzleArray.length];</i><br />
<i> for (int i=0; i<puzzleArray.length; i++)</i><br />
<i> temp[i] = puzzleArray[i];</i><br />
<i> int square= 0;</i><br />
<i> for (int i=0; i<temp.length; i++)</i><br />
<i> {</i><br />
<i> if (temp[i] ==0 )</i><br />
<i> square = i;</i><br />
<i> }</i><br />
<i> // invalid option check</i><br />
<i> if (square%3 == 0)</i><br />
<i> return temp;</i><br />
<i> holder = temp[square];</i><br />
<i> temp[square] = temp[square-1];</i><br />
<i> temp[square-1] = holder;</i><br />
<i> return temp;</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> private int[] right(int[] puzzleArray)</i><br />
<i> {</i><br />
<i> int holder;</i><br />
<i> int[] temp = new int[puzzleArray.length];</i><br />
<i> for (int i=0; i<puzzleArray.length; i++)</i><br />
<i> temp[i] = puzzleArray[i];</i><br />
<i> int square= 0;</i><br />
<i> for (int i=0; i<temp.length; i++)</i><br />
<i> {</i><br />
<i> if (temp[i] ==0 )</i><br />
<i> square = i;</i><br />
<i> }</i><br />
<i> // invalid option check</i><br />
<i> if (square%3 == 2)</i><br />
<i> return temp;</i><br />
<i> holder = temp[square];</i><br />
<i> temp[square] = temp[square+1];</i><br />
<i> temp[square+1] = holder;</i><br />
<i> return temp;</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public String toString()</i><br />
<i> {</i><br />
<i> String out = new String(" +---+---+---+\n");</i><br />
<i> for (int i=1; i<=9; i++) {</i><br />
<i> if ((i%3) == 1)</i><br />
<i> out += " | ";</i><br />
<i> if (pieces[i-1] == 0)</i><br />
<i> out += " | ";</i><br />
<i> else</i><br />
<i> out += pieces[i-1]+" | ";</i><br />
<i> if ((i%3) == 0)</i><br />
<i> out += "\n +---+---+---+\n";</i><br />
<i> }</i><br />
<i> return out;</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public boolean equals(Puzle p)</i><br />
<i> {</i><br />
<i> return (p.toString().equals(toString()));</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public boolean isManhattan() {return manhattan;}</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public int getDepth() {return depth;}</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public int getParentID() {return parentID;}</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public void setDepth(int depth) {this.depth = depth;}</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> // Set Heuristic type</i><br />
<i> public void setHeuristic(boolean isManhattan)</i><br />
<i> {</i><br />
<i> manhattan = isManhattan;</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> // Get Heuristic based on type</i><br />
<i> public int getH()</i><br />
<i> {</i><br />
<i> if (manhattan)</i><br />
<i> return getmanhattanH();</i><br />
<i> else</i><br />
<i> return getOtherH();</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> // Set Non-manhattan Heuristic</i><br />
<i> private int getOtherH()</i><br />
<i> {</i><br />
<i> // count the number of squares in the wrong place</i><br />
<i> int wrong = 0;</i><br />
<i> for (int i=0; i<9; i++)</i><br />
<i> if (pieces[i] != i)</i><br />
<i> wrong++;</i><br />
<i> return wrong;</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> // Set manhattan Heuristic</i><br />
<i> private int getmanhattanH()</i><br />
<i> {</i><br />
<i> int h = 0;</i><br />
<i> int xs, xg, ys, yg;</i><br />
<i> for (int i=0; i<9; i++)</i><br />
<i> {</i><br />
<i> // breaks the game locations into a grid formation</i><br />
<i> // measures the distance using grid length.</i><br />
<i> xg = i%3;</i><br />
<i> yg = i/3;</i><br />
<i> xs = pieces[i]%3;</i><br />
<i> ys = pieces[i]/3;</i><br />
<i> h += Math.abs(xs-xg) + Math.abs(ys-yg);</i><br />
<i> }</i><br />
<i> return h;</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> // Add to the cost</i><br />
<i> public void addMove() { depth++;}</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public int[] copyArray()</i><br />
<i> {</i><br />
<i> int[] temp = new int[9];</i><br />
<i> for (int i=0; i<9; i++)</i><br />
<i> temp[i] = pieces[i];</i><br />
<i> return temp;</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public int[] up() { return up(pieces);}</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public int[] down() { return down(pieces);}</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public int[] left() { return left(pieces);}</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public int[] right() {return right(pieces);}</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i>} // end class Pazzle</i><br />
<br />
<br />
<br />
<br />
<i>/*</i><br />
<i> * </i><br />
<i> * </i><br />
<i> */</i><br />
<i>package project01;</i><br />
<br />
<i>import java.util.Vector;</i><br />
<br />
<i>class Resuelve</i><br />
<i>{</i><br />
<i> private int cost = 0;</i><br />
<i> private Vector usedList;</i><br />
<i> private Vector fringeList;</i><br />
<i> private Puzle p;</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public Resuelve(int depth)</i><br />
<i> {</i><br />
<i> usedList = new Vector();//guarda jugadas utilizadas</i><br />
<i> fringeList = new Vector();//contador de jugadas</i><br />
<i> p = new Puzle(depth);</i><br />
<i> fringeList.add(p);</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> </i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public void solve() {while (expandNodes(p)) {p=findBestNode();}}//busca el nodo mas apropiado durante la expancion</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public int getCost() {return (usedList.size() + fringeList.size());}//entrega jugadas</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> // Encuentra mejor nodo fde la lista</i><br />
<i> private Puzle findBestNode()</i><br />
<i> {</i><br />
<i> Puzle best;</i><br />
<i> Puzle test;</i><br />
<i> // Si el borde esta bacio toma el unico nodo</i><br />
<i> if (fringeList.size()==0)</i><br />
<i> best = (Puzle)usedList.elementAt(0);</i><br />
<i> // Si no encuentra el primer nodo lo prepara para su comparacion</i><br />
<i> else</i><br />
<i> best = (Puzle)fringeList.elementAt(0);</i><br />
<i> for (int i=1; i<fringeList.size();i++)</i><br />
<i> {</i><br />
<i> test = (Puzle)fringeList.get(i);</i><br />
<i> // Obtiene el valor heuristico para el nodo</i><br />
<i> int bestH = best.getDepth() + best.getH();</i><br />
<i> int testH = test.getDepth() + test.getH();</i><br />
<i> // Si es inferior cambia por el mejor</i><br />
<i> if (testH < bestH)</i><br />
<i> best = test;</i><br />
<i> }</i><br />
<i> return best;</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> private boolean expandNodes(Puzle p)</i><br />
<i> {</i><br />
<i> int[] test;</i><br />
<i> Puzle temp;</i><br />
<i> // toma nodo fuera de la franja</i><br />
<i> fringeList.remove(p);</i><br />
<i> // agregarlo a la lista utilizada por GRAPH-SEARCH</i><br />
<i> int parentID = usedList.size();</i><br />
<i> usedList.add(p);</i><br />
<i> // agregarlo a la lista utilizada por GRAPH-SEARCH</i><br />
<i> if (p.getH() == 0)</i><br />
<i> return false;</i><br />
<i> // otra prueba de todas las direcciones</i><br />
<i> test = p.up();</i><br />
<i> temp = new Puzle(test, p.isManhattan(), p.getDepth(), parentID);</i><br />
<i> addToFringe(temp);</i><br />
<i> test = p.down();</i><br />
<i> temp = new Puzle(test, p.isManhattan(), p.getDepth(), parentID);</i><br />
<i> addToFringe(temp);</i><br />
<i> test = p.left();</i><br />
<i> temp = new Puzle(test, p.isManhattan(), p.getDepth(), parentID);</i><br />
<i> addToFringe(temp);</i><br />
<i> test = p.right();</i><br />
<i> temp = new Puzle(test, p.isManhattan(), p.getDepth(), parentID);</i><br />
<i> addToFringe(temp);</i><br />
<i> return true;</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> private void addToFringe(Puzle p)</i><br />
<i> {</i><br />
<i> // no repite nodos</i><br />
<i> if (!nodeRepeated(p))</i><br />
<i> {</i><br />
<i> p.addMove();</i><br />
<i> fringeList.add(p);</i><br />
<i> }</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> private boolean nodeRepeated (Puzle node)</i><br />
<i> {</i><br />
<i> for (int i=0; i<usedList.size(); i++)</i><br />
<i> {</i><br />
<i> if (node.equals((Puzle)usedList.get(i)))</i><br />
<i> return true;</i><br />
<i> }</i><br />
<i> return false;</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public void print()</i><br />
<i> {</i><br />
<i> Vector list = new Vector();</i><br />
<i> // Obtiiene la solucion</i><br />
<i> Puzle node = getPuzzleSolution();</i><br />
<i> // Agrega el nodo a la lista de soluciones</i><br />
<i> list.add(node);</i><br />
<i> // Busca el nodo padre</i><br />
<i> int parentID = node.getParentID();</i><br />
<i> while (parentID != -1)</i><br />
<i> {</i><br />
<i> node = (Puzle)usedList.elementAt(parentID);</i><br />
<i> list.add(node);</i><br />
<i> parentID = node.getParentID();</i><br />
<i> }</i><br />
<br />
<i> for (int i = 1; i <= list.size(); i++)</i><br />
<i> {</i><br />
<i> if (i ==1)</i><br />
<i> {</i><br />
<i> System.out.println("Original:");</i><br />
<i> System.out.println((Puzle)list.elementAt(list.size()-i));</i><br />
<i> }</i><br />
<i> else</i><br />
<i> {</i><br />
<i> System.out.println("paso " + ( i -1)+ ":");</i><br />
<i> System.out.println((Puzle)list.elementAt(list.size()-i));</i><br />
<i> }</i><br />
<i> }</i><br />
<i> System.out.println("\nSolucionado con "+getPuzzleSolution().getDepth()+" paso(s).");</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public Puzle getPuzzleSolution()</i><br />
<i> {</i><br />
<i> return (Puzle)usedList.lastElement();</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i>} // Fin de la clase Resuelve</i><br />
<br />
<br />
<br />
<br />
<br />
<br />
<i>/*</i><br />
<i> * </i><br />
<i> * </i><br />
<i> */</i><br />
<i>package project01;</i><br />
<br />
<i>import java.util.Date;</i><br />
<br />
<i>/**</i><br />
<i> *</i><br />
<i> * @author jonathan</i><br />
<i> */</i><br />
<i>class Tiempo</i><br />
<i>{</i><br />
<i> Date now;</i><br />
<i> long start;</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> public Tiempo() {}</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i> // Tiempo Inicial</i><br />
<i> public void start()</i><br />
<i> {</i><br />
<i> now = new Date();</i><br />
<i> start = now.getTime();</i><br />
<i> }</i><br />
<i>//---------------------------------------------------------------------------------</i><br />
<i>// Tiempo Final</i><br />
<i> public long end()</i><br />
<i> {</i><br />
<i> now = new Date();</i><br />
<i> long end = now.getTime();</i><br />
<i> return ((end-start));</i><br />
<i> }</i><br />
<i>} // Fin Clase Tiempo</i><br />
<br />
<br />
<br />
<b>Parte III Experimentación con los algoritmos implementados</b><br />
<br />
El programa genera el estado inicial aleatorio con random, por lo tanto, para realizar las pruebas se tuvo que comentar esta parte del código y generar los estados iniciales solicitados para evaluar cada uno de los casos.<br />
La solución del puzle dependerá del estado final que se elija, el estado final que se escogió es el siguiente:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFKYtaafScPfWltL1het0xqzkGjgI5wYzScZRYpxwdDvfPx93WalrPVswbrZi2RZkAH8humDervc3owHEMZb1N4rc3uZfo2URxIzy79u5kjixpvEKT-ZQw1zYICM0F4nS3qYT0bP5lf1w/s1600/estadofinal.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="181" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFKYtaafScPfWltL1het0xqzkGjgI5wYzScZRYpxwdDvfPx93WalrPVswbrZi2RZkAH8humDervc3owHEMZb1N4rc3uZfo2URxIzy79u5kjixpvEKT-ZQw1zYICM0F4nS3qYT0bP5lf1w/s200/estadofinal.png" width="200" /></a></div>
<br />
<br />
Los estados iniciales usados para realizar las pruebas son los siguientes:<br />
# E1 E2 E3 E4<br />
# <br />
# +---+---+---+ +---+---+---+ +---+---+---+ +---+---+---+ <br />
# | 2 | 8 | 3 | | 4 | 8 | 1 | | 2 | 1 | 6 | | 5 | 2 | 3 |<br />
# +---+---+---+ +---+---+---+ +---+---+---+ +---+---+---+<br />
# | 1 | 6 | 4 | | 3 | H | 2 | | 4 | H | 8 | | H | 4 | 8 |<br />
# +---+---+---+ +---+---+---+ +---+---+---+ +---+---+---+<br />
# | 7 | H | 5 | | 7 | 6 | 5 | | 7 | 5 | 3 | | 7 | 6 | 1 |<br />
# +---+---+---+ +---+---+---+ +---+---+---+ +---+---+---+<br />
<br />
En ninguno de estos casos se encontró resultado, esto debido a un error conocido como error de paridad, el cual ocurre cuando se produce una violación del orden de la posición de acuerdo a su valor consecutivo, en otras palabras cuando un número mayor se encuentra justamente detrás de un número menor.Carlos Melo Paredeshttp://www.blogger.com/profile/15502133719477038434noreply@blogger.com0tag:blogger.com,1999:blog-1609720531017460165.post-9752719308534383722013-04-20T05:27:00.001-07:002013-04-20T05:28:33.002-07:00Tarea 3 - Algoritmo básico de búsqueda en Java (Carlos Melo)<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">Se define un árbol binario como un conjunto finito de elementos (nodos) que bien esta vacío o esta formado por una raíz con dos arboles binarios disjuntos, es decir, dos descendientes directos llamados subarbol izquierdo y subarbol derecho.</span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">Los árboles binarios (también llamados de grado 2 )tienen una especial importancia.</span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">Las aplicaciones de los arboles binarios son muy variadas ya que se les puede utilizar para representar una estructura en la cual es posible tomar decisiones con dos opciones en distintos puntos.</span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><b>Arbol binario de búsqueda</b></span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">Los árboles binarios se utilizan frecuentemente para representar conjuntos de datos cuyos elementos se identifican por una clave única. Si el árbol está organizado de tal manera que la clave de cada nodo es mayor que todas las claves su subarbol izquierdo, y menor que todas las claves del subarbol derecho se dice que este árbol es un árbol binario de búsqueda.</span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">/************************************ </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">// clase NodoArbolBinario </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">//************************************ </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">public class NodoArbolBinario { </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">private int info = 0; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">private NodoArbolBinario derecho = null; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">private NodoArbolBinario izquierdo = null; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">public NodoArbolBinario ( int x ) { </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">this.info = x; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">this.derecho = null; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">this.izquierdo = null; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">} </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">public NodoArbolBinario getDerecho(){ </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">return this.derecho; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">} </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">public void setDerecho(NodoArbolBinario derecho){ </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">this.derecho = derecho; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">} </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">public int getInfo(){ </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">return this.info; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">} </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">public void setInfo(int info){ </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">this.info = info; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">} </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">public NodoArbolBinario getIzquierdo(){ </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">return this.izquierdo; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">} </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">public void setIzquierdo(NodoArbolBinario izquierdo){ </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">this.izquierdo = izquierdo; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">} </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">} </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">//************************************ </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">// clase ArbolBinario </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">//************************************ </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">public class ArbolBinario { </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">private NodoArbolBinario raiz = null; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">private NodoArbolBinario padre = null; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">private boolean centinela = false, sw = false; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">public ArbolBinario () { </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">} </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">public NodoArbolBinario adicionar( int x ) { </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">NodoArbolBinario p = new NodoArbolBinario ( x ), r = null; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">if ( this.raiz == null ) { </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">this.raiz = p; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">} </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">else { </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">NodoArbolBinario q = raiz; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">while ( q != null ) { </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">r = q; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">if ( x >= q.getInfo() ) { </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">q = q.getDerecho(); </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">} </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">else { </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">q = q.getIzquierdo(); </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">} </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">} </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">} </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">if ( x >= r.getInfo() ) { </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">r.setDerecho( p ); </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">} </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">else { </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">r.setIzquierdo( p ); </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">} </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">return p; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">} </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">public ArbolBinario arbolSuma(ArbolBinario tree){ </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">ArbolBinario res = new ArbolBinario(); </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">arbolSuma(res,tree.raiz); </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">return res; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">} </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">private int arbolSuma(ArbolBinario res, NodoArbolBinario p){ </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">if ( p == null ){ </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">return 0; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">} </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">else { </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">int sum = p.getInfo(); </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">NodoArbolBinario aux = res.adicionar(sum); </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">sum += arbolSuma(res, p.getIzquierdo() ); </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">sum += arbolSuma(res, p.getDerecho() ); </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">aux.setInfo(sum); </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">return sum; </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">} </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">} </span></div>
<div>
<span style="font-family: Verdana, sans-serif; font-size: x-small;">} </span></div>
Carlos Melo Paredeshttp://www.blogger.com/profile/15502133719477038434noreply@blogger.com0tag:blogger.com,1999:blog-1609720531017460165.post-21034949881196319112013-04-19T21:35:00.001-07:002013-04-20T06:58:11.033-07:00Tarea - Algoritmo básico de búsqueda en Java<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
p\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
v\:textbox {display:none;}
</style>
<![endif]--><br />
<!--[if !ppt]--><!--[endif]-->
<br />
<div>
<div class="O" style="mso-line-spacing: "90 20 0"; mso-margin-left-alt: 216;">
<span style="font-size: 156%;"><span style="font-family: "Monotype Sorts"; font-size: 75%; left: -5.37%; mso-special-format: bullet; position: absolute; top: .3em;">l</span></span><span style="font-family: Arial,Helvetica,sans-serif;"><b><span style="font-size: small;"><span lang="ES-TRAD">Problema de la aspiradora: </span></span></b></span></div>
<div class="O">
</div>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">
</span></span><br />
<div class="O1">
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span style="left: -4.33%; position: absolute;">»</span><span lang="ES-TRAD">Se dispone de una aspiradora con acceso </span><span lang="ES-TRAD">a dos habitaciones y con la capacidad de </span><span lang="ES-TRAD">aspirar basura</span></span></span></div>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">
</span></span><br />
<ul>
<li><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span style="left: -5.18%; position: absolute;">»</span><span lang="ES-TRAD">8 posibles estados
</span></span></span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span style="left: -4.33%; position: absolute;">–</span><span lang="ES-TRAD">2 estados objetivo
</span></span></span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span style="left: -5.18%; position: absolute;">»</span><span lang="ES-TRAD">3 posibles acciones
</span></span></span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span style="left: -5.18%; position: absolute;">»</span><span lang="ES-TRAD">Mundo: 2 posibles posiciones
</span></span></span></li>
<li><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span style="left: -4.33%; position: absolute;">–</span><span lang="ES-TRAD">Sucio - limpio </span></span></span></li>
</ul>
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
p\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
v\:textbox {display:none;}
</style>
<![endif]--><span style="font-family: Arial,Helvetica,sans-serif;">
</span><br />
<div>
<span style="font-family: Arial,Helvetica,sans-serif;">
</span><br />
<div class="O3" style="mso-line-spacing: "90 20 0"; mso-margin-left-alt: 1008;">
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: 65%; left: -4.82%; position: absolute; top: 0.49em;">l</span><span lang="ES-TRAD">Estado inicial: multiestado
</span></span></div>
<span style="font-family: Arial,Helvetica,sans-serif;">
</span><br />
<div class="O3" style="mso-line-spacing: "90 20 0"; mso-margin-left-alt: 1008;">
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: 65%; left: -4.12%; position: absolute; top: 0.49em;">l</span><span lang="ES-TRAD">Cada operador obtiene un multiestado a partir </span><span lang="ES-TRAD">de otro multiestado.
</span></span></div>
</div>
<!--[if !ppt]--><!--[endif]--></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
</div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.blogger.com/blogger.g?blogID=1609720531017460165" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="" border="0" height="305" src="data:image/png;base64,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" style="cursor: move;" width="640" /></a></div>
<img alt="" height="120" src="data:image/png;base64,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" width="200" /> </div>
<div>
<img alt="" height="95" src="data:image/png;base64,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" width="200" /> </div>
<div>
</div>
<div>
Solución:</div>
<div>
</div>
<div>
package com.carlos.algoritmo;<br />
<br />
/**<br />
*<br />
* @author principal<br />
*/<br />
//Se define el nodo de un arbol, este tiene un valor y puede tener 1 nodo derecho y/o 1 nodo izquierdo<br />
public class Estado {<br />
private boolean suciedadHabitacionIzq; //se define true si esta sucio en la habitacion<br />
private boolean suciedadHabitacionDer;<br />
private int posAspiradora; // si es 0 habitacion izq. si es 1 esta en habitaciòn der.<br />
//public Estado() { //constructor<br />
//}<br />
<br />
public Estado() { //Se define un estado segun los valores<br />
this.suciedadHabitacionIzq = true;<br />
this.suciedadHabitacionDer = true;<br />
this.posAspiradora = 0;<br />
}<br />
<br />
public Estado(boolean suciedadHabitacionIzq, boolean suciedadHabitacionDer, int posAspiradora) { //Se define un estado segun los valores<br />
this.suciedadHabitacionIzq = suciedadHabitacionIzq;<br />
this.suciedadHabitacionDer = suciedadHabitacionDer;<br />
this.posAspiradora = posAspiradora;<br />
}<br />
<br />
public void setSuciedadHI(boolean sucio){ //Def. suciedad habitaciòn inquierda<br />
this.suciedadHabitacionIzq=sucio;<br />
}<br />
<br />
public void setSuciedadHD(boolean sucio){<br />
this.suciedadHabitacionDer=sucio;<br />
}<br />
<br />
public boolean getSuciedadHI() {<br />
return suciedadHabitacionIzq;<br />
}<br />
<br />
public boolean getSuciedadHD() {<br />
return suciedadHabitacionDer;<br />
}<br />
<br />
public void setPosAspiradora(int valor) {<br />
this.posAspiradora = valor;<br />
}<br />
<br />
public void succiona(){ //succiona la posicion actual<br />
if (this.posAspiradora==0)<br />
{ this.suciedadHabitacionIzq=false; //limpia habitacion izquierda<br />
<br />
System.out.println("Limpia habitaciòn izquierda"); <br />
}<br />
else <br />
{ this.suciedadHabitacionDer=false; //limpia hab. derecha<br />
System.out.println("Limpia habitaciòn derecha");<br />
}<br />
}<br />
<br />
public void insertar() //q es esl estado inicial<br />
{<br />
System.out.println("Comienza metodo insertar");<br />
while((this.suciedadHabitacionIzq==true)||(this.suciedadHabitacionDer==true)){ //Mientras no sea estado final<br />
if (this.posAspiradora==0) { //si esta en la habitacion 0-izquierda<br />
if (this.suciedadHabitacionIzq==true) { //si esta sucia la habitacion izquierda..<br />
this.succiona(); //limpia habitacion<br />
//mover hacia la derecha<br />
this.setPosAspiradora(1);<br />
System.out.println("Aspiradora se mueva a la habitaciòn de la derecha");<br />
//this.insertar();<br />
} <br />
} <br />
else {<br />
<br />
if (this.suciedadHabitacionDer==true) { //si esta sucia la habitacion derecha..<br />
this.succiona(); //limpia habitacion<br />
//mover hacia la izquierda<br />
//mover hacia la derecha<br />
this.setPosAspiradora(0);<br />
System.out.println("Aspiradora se mueva a la habitaciòn de la izquierda");<br />
//this.insertar();<br />
} <br />
}<br />
} //fin while<br />
<br />
System.out.println("Se ha llegado al estado final, las habitaciones estan limpias");<br />
}<br />
}</div>
<div>
</div>
<div>
/////FIN CLASE</div>
<div>
////</div>
<div>
package com.carlos.algoritmo;<br />
<br />
/**<br />
*<br />
* @author Carlos<br />
*/ <br />
public class Algoritmo {<br />
/**<br />
* @param args the command line arguments<br />
*/<br />
public static void main(String[] args) {<br />
// TODO code application logic here<br />
Estado estadoinicial= new Estado(); //crea un nuevo estado con las habitaciones sucias<br />
System.out.println("Creado el estado incial");<br />
estadoinicial.insertar();<br />
}<br />
}<br />
<br />
<b>SALIDA POR PANTALLA: </b><br />
<br />
<img alt="" src="data:image/png;base64,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" /></div>
Carlos Elmeshttp://www.blogger.com/profile/15134952313851412549noreply@blogger.com1tag:blogger.com,1999:blog-1609720531017460165.post-4570184172802683552013-04-19T20:53:00.000-07:002013-04-19T21:01:52.856-07:00<br />
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Times New Roman', serif; font-size: 13.5pt;">Tarea N°3 </span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES-CL;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial; margin-left: 47.25pt; text-indent: -18pt;">
<!--[if !supportLists]--><span style="color: #222222; font-family: Symbol; font-size: 10.0pt; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: ES-CL;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><!--[endif]--><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES-CL;">En forma <b>individual</b>,
investigar e implementar en Java un algoritmo de búsqueda. Se recomienda
que desarrolle un programa que permita crear un árbol binario,
recorrerlo en diferente orden, y haber búsqueda de un
elemento dentro del árbol. También puede usar otra
estructura de datos.<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial; margin-left: 47.25pt; text-indent: -18pt;">
<!--[if !supportLists]--><span style="color: #222222; font-family: Symbol; font-size: 10.0pt; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: ES-CL;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><!--[endif]--><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES-CL;">Publicar en su blog
y responder esta entrada, indicando su nombre y la url de su tarea en el blog
de su grupo. <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #f3f3f3;"><span style="font-family: Arial, sans-serif; font-size: 10pt;">Arbol Binario </span><span style="font-family: 'Times New Roman', serif; font-size: 13.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #f3f3f3;"><span style="font-family: Arial, sans-serif; font-size: 10pt;">Un árbol binario es una estructura de datos en la que los
nodos siempre tienen nodos hijos, tanto a su izquierda como su derecha, no
pueden tener mas de dos hijos cada nodo, si un nodo no
almacena ningún dato, es decir es null, se le llama nodo externo, en
otro caso a este nodo hijo se le llamara nodo interno, uno de los usos comunes
de un árbol binario es para búsquedas.</span><span style="font-family: 'Times New Roman', serif; font-size: 13.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #f3f3f3;"><span style="font-family: Arial, sans-serif; font-size: 10pt;">A continuacion se muestra un programa de árbol binario en
java, compuesto por tres clases una llamada nodo en la cual se aloja la
estructura de datos, otra llamada árbol la cual aloja
los métodos a utilizar y una llamada main que sera la clase principal
que aloje los métodos principales.</span><span style="font-family: 'Times New Roman', serif; font-size: 13.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #f3f3f3;"><span style="font-family: Arial, sans-serif; font-size: 10pt;">CLASE NODO </span><span style="font-family: 'Times New Roman', serif; font-size: 13.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;">class</span><span style="font-family: Consolas; font-size: 10.5pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;">nodo</span><span style="font-family: Consolas; font-size: 10.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;">{</span><span style="font-family: Consolas; font-size: 10.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> int</span><span style="font-family: Consolas; font-size: 10.5pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;">dato;</span><span style="font-family: Consolas; font-size: 10.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> nodo der;</span><span style="font-family: Consolas; font-size: 10.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> nodo izq;</span><span style="font-family: Consolas; font-size: 10.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> nodo(int</span><span style="font-family: Consolas; font-size: 10.5pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;">dat)</span><span style="font-family: Consolas; font-size: 10.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">{</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> this.dato=dat;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> this.der=null;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> this.izq=null;</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">}</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">CLASE ARBOL</span><span lang="EN-US" style="font-family: Consolas; font-size: 10.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">public</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">class</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">arbol</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">{</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> nodo
raiz=null;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> public</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">boolean</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">tieneraiz()</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> {</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> if(raiz==null)
return</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">false;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> else</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">return</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">true;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> public</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">arbol
alta(int</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">dat)</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;">{</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> if(!tieneraiz())</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> nodo
nuevo=new</span><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;">nodo(dat);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> raiz=nuevo;</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> }</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> else</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> boolean</span><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;">izq;</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">nodo actual=raiz;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> while(true)</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> {</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> if(actual.dato<dat)
izq=false;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> else</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">izq=true;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> if(!izq)</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;">{</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> if(actual.der==null)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> nodo
nuevo=new</span><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;">nodo(dat);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> actual.der=nuevo;</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">break;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> else</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">actual=actual.der;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> else</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> {</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> if(actual.izq==null)</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;">{</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> nodo
nuevo=new</span><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;">nodo(dat);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">actual.izq=nuevo;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> break;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> else</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">actual=actual.izq;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> }return</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">this;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> public</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">boolean</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">baja(int</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">dat)</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;">{</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> nodo
actual=raiz, anterior=raiz, temp;</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">while(true)</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> {</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> if(actual==null)
break;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> if(actual.dato==dat)
break;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> anterior=actual;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> if(actual.dato<dat)
actual=actual.der;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> else</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">actual=actual.der;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> if(actual==null)
return</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">false;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> else</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> {</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> if(actual==raiz)</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> {</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> temp=actual.izq;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> raiz=raiz.der;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> anterior=raiz;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> else</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> if</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">(anterior.der
== actual)</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> {</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> temp=actual.izq;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> anterior=actual.der;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> else</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> {</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> temp=actual.izq;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> anterior.der=actual.izq;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> actual=new</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">nodo();</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> while(actual.izq!=null)</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> actual=actual.izq;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> actual.izq=temp;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> return</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">true;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;">}</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> }</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> public</span><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;">void</span><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;">imprimirpreorden()</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> ayudantePreorden(raiz);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> }</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> public</span><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;">void</span><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;">ayudantePreorden(nodo
dat)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">{</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> if(dat==null)</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> return;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> System.out.printf("%d
",dat.dato);</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;">ayudantePreorden(dat.der);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> ayudantePreorden(dat.izq);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">}</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> public</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">void</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">impririnorden(nodo
dat)</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> {</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> if(dat!=null)</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> {</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> impririnorden(dat.izq);</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> System.out.println("
"+dat.dato);</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> impririnorden(dat.der);</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> }</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">}</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">CLASE MAIN</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">public</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">class</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">Main {</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> <o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> public</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">static</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">void</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">main(String[]
args) {</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> java.util.Scanner
leer=new</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">java.util.Scanner(System.in);</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;">arbol x=new</span><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;">arbol();</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> int</span><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;">z;</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> System.out.print("Ingrese
el numero de Datos a capturar: ");</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">z=leer.nextInt();</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> for(int</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">i=1;
i<=z;i++){</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> int</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;">m;</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> System.out.println("Ingrese
Dato "+i+": ");m=leer.nextInt();</span><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;">x.alta(m);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> }</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> System.out.println("Valores
Capturados en PreOrden:");</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> x.imprimirpreorden();</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> int</span><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;">q;</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> System.out.print("\nIngrese
dato a borrar: ");q=leer.nextInt();</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> x.baja(q);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> System.out.println("\nDespues
de borrar el dato "+q+" :");</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> x.imprimir();</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;"> }</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: 11.55pt; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="color: #f3f3f3;"><span style="font-family: 'Courier New'; font-size: 10pt;">}</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
Anonymoushttp://www.blogger.com/profile/11192196364860552365noreply@blogger.com0tag:blogger.com,1999:blog-1609720531017460165.post-84709656674863668122013-04-19T20:05:00.004-07:002013-04-19T20:09:57.748-07:00<br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 24px; line-height: 33px; text-align: center;"><b><u>Algoritmo de Búsqueda</u></b></span><br />
<br />
<br />
// Definición de la clase Nodo Árbol<br />
<br />
<br />
class NodoArbol {<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>//Miembros de acceso<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>NodoArbol nodoizquierdo;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>int datos;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>NodoArbol nododerecho;<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>//Iniciar dato y hacer de este nodo un nodo hoja<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public NodoArbol(int datosNodo)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>datos = datosNodo;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>nodoizquierdo = nododerecho = null; //el nodo no tiene hijos<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>// Buscar punto de inserción e insertar nodo nuevo<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public synchronized void insertar(int valorInsertar)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>//Insertar en subarbol izquierdo<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if (valorInsertar < datos){<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>//Inserta nuevo nodoarbol<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if (nodoizquierdo == null)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>nodoizquierdo = new NodoArbol(valorInsertar);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>else //continua recorriendo subarbol izquierdo<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>nodoizquierdo.insertar(valorInsertar);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>//Insertar nodo derecho<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>else if(valorInsertar > datos){<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>//Insertar nuevo nodoarbol<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if (nododerecho == null)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>nododerecho = new NodoArbol(valorInsertar);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>else //continua recorriendo subarbol derecho<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>nododerecho.insertar(valorInsertar);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<br />
//Fin del método insertar<br />
<br />
} //fin clase nodoarbol<br />
<br />
//---------- CLASE ÁRBOL------------------<br />
<br />
class Arbol{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>private NodoArbol raiz;<br />
<br />
//Construir un árbol vació<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public Arbol()<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>raiz = null;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>//Insertar un nuevo nodo en el árbol de búsqueda binaria<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public synchronized void insertarNodo(int valorInsertar)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if(raiz == null)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>raiz = new NodoArbol(valorInsertar); //crea nodo raíz<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>else<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>raiz.insertar(valorInsertar); // llama al método insertar<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>//--------------- EMPESAR EL RECORRIDO EN PRE ORDEN-----------------------<br />
<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public synchronized void recorridoPreorden()<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>ayudantePreorden(raiz);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>//Método recursivo para recorrido en pre orden<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>private void ayudantePreorden(NodoArbol nodo)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if (nodo == null)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>return;<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>System.out.print(nodo.datos + " "); // Mostrar datos del nodo<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>ayudantePreorden(nodo.nodoizquierdo); //Recorre subarbol izquierdo<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>ayudantePreorden(nodo.nododerecho); //Recorre subarbol derecho<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<br />
//--------------EMPEZAR RECORRIDO IN ORDEN-----------------------------------<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public synchronized void recorridoInorden()<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>ayudanteInorden(raiz);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<br />
// Método recursivo para recorrido inorden<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>private void ayudanteInorden(NodoArbol nodo)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if (nodo == null)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>return;<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>ayudanteInorden(nodo.nodoizquierdo);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>System.out.print(nodo.datos + " ");<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>ayudanteInorden(nodo.nododerecho);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>//-----------------------------EMPEZAR RECORRIDO POS ORDEN---------------------------------<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public synchronized void recorridoPosorden()<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>ayudantePosorden(raiz);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>//Método recursivo para recorrido posorden<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>private void ayudantePosorden(NodoArbol nodo)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if (nodo == null)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>return;<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>ayudantePosorden(nodo.nodoizquierdo);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>ayudantePosorden(nodo.nododerecho);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>System.out.print(nodo.datos + " ");<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<br />
}<br />
<br />
//Fin clase árbol<br />
<br />
//Programa para probar la clase árbol<br />
<br />
public class PruebaArbol {<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public static void main(String args[])<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Arbol arbol = new Arbol();<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>int valor;<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>System.out.println( "Insertando los siguientes valores: ");<br />
<br />
//Insertando 10 números aleatorios del 0 al 99 en el árbol<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>for (int i = 1; i<=10 ; i++)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>valor = (int) (Math.random() * 100);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>System.out.print(valor + " ");<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>arbol.insertarNodo(valor);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>System.out.println("\n\nRecorrido preorden");<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>arbol.recorridoPreorden();<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>System.out.println("\n\nRecorrido inorden");<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>arbol.recorridoInorden();<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>System.out.println("\n\nRecorrido posorden");<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>arbol.recorridoPosorden();<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
}Anonymoushttp://www.blogger.com/profile/10336449140172031233noreply@blogger.com0tag:blogger.com,1999:blog-1609720531017460165.post-68907253304779156382013-04-08T12:17:00.002-07:002013-04-12T18:49:47.518-07:00Tarea 2 – Test de Turing y la prueba de la Habitación China<br />
<span style="font-family: Arial, Helvetica, sans-serif;">El famoso test de Turing, es un <b>criterio para determinar si un computador es inteligente</b> a partir de la interacción con un humano. Por lo general, la interacción es lingüística y se establece a través de un chat. Un sujeto envía un mensaje y analiza el contenido de la respuesta que le llega de su interlocutor (examina el grado de relación con el tema de conversación, las expresiones que utiliza, si reconoce la ironía o el doble sentido, etc.). El test sugiere que si encontramos una máquina capaz de hacernos creer que es otra persona, debemos resignarnos y atribuirle tanta inteligencia como a nosotros. Este sencillo experimento que expuso Alan Turing hace más de sesenta años, sigue siendo fuente de intensos debates.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">A mediados del siglo pasado, Turing formó parte de uno de los movimientos científicos más estimulantes de la historia de la ciencia: la cibernética. Bajo la hipótesis de que no sólo el cuerpo, sino también la mente humana, podrían ser comprendidos mediante los mismos modelos que servían para construir máquinas.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWPOCYQjtJMXvUIaMTDczmbYFG_tez7knWO4RAtZ0QcVP6Af9e9xWl7BjVV1cChaecyBxP3I_HuVCDna_PeboHrgUQivGiQmqLypIAI9kj6SaRYn410FYnhEyrOsqeg_2QjskBUJnv2KA/s1600/01+Turing+Robot.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Arial, Helvetica, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWPOCYQjtJMXvUIaMTDczmbYFG_tez7knWO4RAtZ0QcVP6Af9e9xWl7BjVV1cChaecyBxP3I_HuVCDna_PeboHrgUQivGiQmqLypIAI9kj6SaRYn410FYnhEyrOsqeg_2QjskBUJnv2KA/s320/01+Turing+Robot.jpg" height="239" width="320" /></span></a></div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
<br />
Turing esbozó su test inspirándose en un juego que la aristocracia victoriana había inventado para entretenerse en su ociosidad. Se llamaba el “juego de imitación” y consistía en descubrir si en una conversación a ciegas, y mediante el intercambio de mensajes manuscritos, un sujeto podía deducir si su interlocutor era una mujer o un hombre. Cambiando a uno de los jugadores por una computadora, Turing encontró la idea germinal de su experimento mental.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">El test de Turing dejó de ser sólo una excusa para la reflexión especulativa de filósofos y científicos, y adquirió un carácter mediático, cuando el millonario y filántropo americano Hugh Loebner decidió retribuir con 100.000$ a aquel que creara el primer programa informático capaz de superar el test. La primera edición se celebró en 1991, en el “Museo de los Ordenadores” de Boston, y la última, en 2012, en “Bletchey Park” - lugar simbólico en el que Turing hizo sus aportaciones más relevantes en criptoanálisis-. Edición tras edición, nadie ha logrado diseñar un programa que engañe a jueces humanos.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
<br />
Existen algunas objeciones planteadas al documento de Turing, antes de determinar <b>¿qué objeciones todavía tienen peso?</b> es necesario revisar en que se basan y cuál es el contra argumento de Turing.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
<b>1. La objeción teológica</b>: Exponen que el pensamiento es una función del alma del hombre. Y que Dios ha dado un alma inmortal a todos los hombres y mujeres, pero a ningún otro animal y a ninguna máquina. Por lo tanto, ningún animal o máquina podría pensar.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><b>Respuesta de A. Turing</b>: Expuso que con esta foma de pensar se estaba restringiendo la omnipotencia de Dios, restringiendo el hecho que Dios pueda conceder alma a una máquina o a un animal si lo considerase apropiado. Y que mediante la creación de máquinas no se está limitando el poder de Dios para crear almas, sino aportando posibles lugares (las máquinas) donde poder albergar estas.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
<b>2. La objeción de la "cabeza en la arena o del avestruz"</b>: Argumentan que las consecuencias del hecho de que las máquinas pensaran podrían ser demasiado horribles y que esperan y creen que no puedan hacerlo.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><b>Respuesta de A. Turing</b>: Debido a que a las personas nos gusta creer que el hombre es de alguna forma, superior al resto de seres, es lógico que este pensamiento nos llegue a preocupar y sobre todo a los intelectuales que valoran aún más el poder del pensamiento y lo tratan como el eje central de la superioridad del hombre.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
<b>3. La objeción matemática</b>: Hay muchos resultados de la lógica matemática que pueden ser utilizados para demostrar que existen limitaciones al poder de las máquinas de estado discreto. El más conocido de estos resultados se apoya en el Se apoya en el Teorema de incompletitud de Gödel y demuestra que, en cualquier sistema lógico suficientemente poderoso pueden ser formuladas proposiciones que no pueden ser demostradas ni refutadas dentro del sistema, a menos que el sistema mismo sea contradictorio. Existen otros resultados, semejantes en algunos aspectos, como los de Church, Kleene, Rosser y Turing.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><b>Respuesta de A. Turing</b>: Expuso que pesar de haberse establecido algunas limitaciones a las capacidades de una máquina, en ningún momento se ha demostrado que tales limitaciones no se encuentren también presentes en la inteligencia humana. En muchas ocasiones nosotros también damos respuestas equivocadas en comparación con la ofrecida por una máquina y sin embargo, no le atribuimos la superioridad a la máquina.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
<b>4. Argumento de la conciencia</b>: Este argumento está muy bien expresado en la Oración de Lister del año 1949 del profesor Jefferson, de la cual es citado lo siguiente: "Hasta que una máquina no sepa escribir un soneto o componer un concierto con base en los pensamientos y las emociones que siente, y no a consecuencia de la caída venturosa de símbolos, no podremos estar de acuerdo en que la máquina pueda ser igual que un cerebro, es decir, que no solamente sepa escribirlos, sino también que sepa que los ha escrito. Ningún mecanismo podría sentir (y no sólo señalar artificialmente, lo cual es una invención fácil) alegría por sus éxitos, tristeza cuando sus válvulas se fundieran, placer al ser adulado y sentirse desgraciado a consecuencia de sus errores, encantado por el sexo, enfadado o deprimido al no lograr lo que desea".</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><b>Respuesta de A. Turing</b>: Propone como prueba para dicho argumento utilizar como test el juego de imitación, omitiendo para ello el jugador B y manteniendo una continua conversación basada en cuestiones y respuestas entre el testigo y el interlocutor, y de esta forma comprobar si el testigo entiende lo que dice o de lo contrario lo ha aprendido las respuestas como un papagayo.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
<b>5. Argumentos basados en varias incapacidades</b>: Estos argumentos se basan en que nunca se podrá inducir a una máquina a hacer X. En este caso X era referido a las varios tipos de cosas: Ser bueno, fértil en recursos, guapo, amistoso, tener iniciativa, tener sentido del humor, saber distinguir lo bueno de lo malo, cometer errores, enamorarse, disfrutar las fresas con nata, hacer que alguien se enamore de algo, aprender de la experiencia, emplear las palabras correctamente, ser el tema de sus propios pensamientos, tener tanta variedad de comportamiento como un hombre, hacer algo verdaderamente nuevo....</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><b>Respuesta de A. Turing</b>: Argumenta que muchas de estas limitaciones se deben en gran medida a la reducida capacidad de memoria que presentan las máquinas, y además expuso algunas observaciones y soluciones con respecto a algunas de las limitaciones mencionadas:</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">El hecho de saborear un plato de fresas con nata podría solucionarse programando a una máquina para que disfrutara de este plato.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Con respecto a que las máquinas no puedan equivocarse, se pregunta en primer lugar que cuál era el problema, ¿suponía esto que fuesen peores?. Aún así, una máquina podría programarse para que por ejemplo, para pregunta realizadas en el juego de imitación sobre aritmética, no fueran contestadas de forma exacta (científica) y de esta forma delatarse en el elevado nivel de cómputo aritmético con respecto al del hombre.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Ante el hecho de que la máquina no pueda equivocarse, recuerda que un máquina también puede ofrecer resultados erróneos o bien, tener un fallo de funcionamiento y en consecuencia provocar que los resultados ofrecidos no sean los correctos.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
<b>6. La objeción de Lady Lovelace</b>: La información más detallada acerca de la máquina analítica de Babbage provienen de un informe elaborado por Lady Lovelace. En este informe declara lo siguiente: "La máquina analítica no pretende crear nada. Puede hacer cualquier cosa que sepamos ordenarle que haga". En definidas cuentas, nos pretende dar a entender que una máquina no es capaz de pensar por sí misma.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><b>Respuesta de A. Turing</b>: Este hecho no implica ni demuestra que no se pueda construir un equipo electrónico que piense por sí mismo.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Una variante de la objeción de Lady Lovelace es que una máquina nunca podría tomarnos por sorpresa, a lo que Turing expuso que a el las máquinas de toman por sorpresa continuamente. Y esto le ocurría en la mayoría de las situaciones, que según él, era debido a que no llevaba a cabo los suficientes cálculos o los realizaba de forma imprecisa o apresurada a la hora calcular lo que se esperaba que debía de hacer una determinada máquina y esto le lleva a que en muchas ocasiones realizasen acciones que no eran de esperar.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
<b>7. Argumento basado en la continuidad del sistema nervioso</b>: El sistema nervioso no es, por supuesto, una máquina de estado discreto. Un pequeño error en la información correspondiente a un impulso nervioso que llega a una neurona, puede representar una gran variación en el impulso de salida de esta neurona. Por consiguiente, se puede argumentar que, si esto así, no se puede esperar que podamos llegar a imitar el comportamiento del sistema nervioso con una máquina o sistema de estado discreto.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><b>Respuesta de A. Turing</b>: Es cierto que una máquina de estado discreto es diferente a de una máquina continua, pero aún así sería posible inducir a una máquina discreta o digital un comportamiento continuo de modo que, por ejemplo, si disponemos de una máquina discreta cuyas respuestas son precisas, entonces a dicha máquina se le puede inducir que para un tipo de pregunta su contestación sea un resultado de entre varios datos presentes en un conjunto de respuestas aproximadas, a las cuales se le asocia a cada una de ellas una probabilidad de elección. De esta forma, si se le preguntara por el valor del número e (e=2,7182...), en lugar de responder exactamente dicho resultado, escogería uno de entre varios como pueden ser 2,72, 2,718, 2,7, etc. a los cuales se les podría asociar las probabilidades de 0,005, 0,25 y 0,5 respectivamente, con lo cual la respuesta ofrecida por la máquina será una de ellas elegida de forma aleatoria y condicionada por su probabilidad de elección.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
<b>8. El argumento de la informalidad de la conducta</b>: Esta objeción se refiere a que el comportamiento de un ser humano es demasiado complejo como para ser descrito mediante unas simples reglas de un juego, es el denominado problema de cualificación, según el cual no es posible elaborar un conjunto de reglas que describa lo que una persona debería hacer en cualquier serie de circunstancias posibles. Y como consecuencia a lo anterior, una máquina no podrá imitar por completo el comportamiento de una persona pues no conocería todas estas reglas.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><b>Respuesta de A. Turing</b>: Las leyes de conducta por las que se rige una persona, como es pararse ante un semáforo en rojo, si pueden ser conocidas, sin embargo, las leyes de comportamiento, como podrían ser las seguidas en caso de encontrarse en un camino con dos señales que se contradicen, no.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
<b>9. El argumento de la percepción extrasensorial</b>: Si jugamos al juego de imitación, teniendo por testigo a una persona que sea buena receptora telepática y a una computadora digital. El interrogador puede plantear preguntas de este tipo: "¿A qué palo pertenece la carta que tengo en mi mano derecha?" La persona, mediante telepatía o clarividencia, da la respuesta correcta 130 veces sobre 400 cartas. La máquina sólo puede adivinar al azar y tal vez acierte 104 veces, y así el preguntador podría efectúa la identificación correcta.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><b>Respuesta de A. Turing</b>: Si admitimos la telepatía, habría que depurar la prueba, pues estaríamos en desventaja, de forma que la situación se asemejaría a la que se produce si el interrogador hablara consigo mismo y uno de los participantes estuviera escuchando con el oído en la pared.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">La solución en tal caso sería situar a los participantes en una «habitación a prueba de telepatía», de forma que se restablecerían las condiciones volviendo a la igualdad de condiciones iniciales.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
<i><b>Desde el punto de vista científico algunas objeciones tienen mayor peso que otras, la objeción matemática o la basada en incapacidades por ejemplo, exponen argumentos que hasta el día de hoy son estudiados, ante esto, Turing formula magistralmente contra argumentos para cada una de ellas y es precisamente ahí donde radica la importancia del experimento, ya que es posible que estemos en presencia del algoritmo que nos indique cuando una máquina podrá ser llama Inteligente y nadie ha sido capaz de demostrar lo contrario, de esta forma ninguna de las objeciones plantea una explicación válida para destruir un experimento simple, pero con fundamentos y bases perfectamente demostradas.</b></i></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: large;"><br /></span>
</span><br />
<div style="text-align: center;">
<span style="font-family: Arial, Helvetica, sans-serif; font-size: large;"><b>¿Qué posibilidades cree usted que un computador tendría hoy en día para pasar el test de Turing?</b></span></div>
<div style="text-align: center;">
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span class="font11">El Test
de Turing es sin duda uno de los métodos más famosos y controvertidos
para evaluar la existencia de vida mental en la Filosofía de la Mente.</span><b><span class="font11"><span style="font-size: small;"> </span></span></b><span class="font11">Una de objeciones del test de Turing es el de varias inhabilidades, esta el hecho de que una máquina no puede saborear un café, <span style="font-size: small;">pero esta el hecho de <span style="font-size: small;">que las personas no tienen las mismas habilidades que otras, como por ejemplo preguntarle a una "persona<span style="font-size: small;">"</span></span></span> de que color es la habitaciòn en que se encuentra siendo esta persona ciega<span style="font-size: small;">. <span style="font-size: small;">Otra cosa seria </span>si el tema de conversac<span style="font-size: small;">i<span style="font-size: small;">ó</span></span>n dentro del test de Turing estuviera acotado a un solo tema</span>, </span>ya
que hay hay sistemas expertos en cualquier campo específico haciendo
las cosas
mejor que cualquier ser humano. Para toda tarea definida se puede
diseñar un sistema que lo haga mejor que nosotros. Todavía no tenemos
inteligencia general, que es sin duda en donde fallaria con alta
propabilidad una máquina o computador actual durante este test, pero es
cuestión de seguir intentando: 10, 20, 30
años…</span></span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><b><span class="font11"> </span></b></span></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
<span style="font-size: small;"><span class="font11"><span style="font-size: small;">Otra</span> de las principales Objeciones del test de Turing es que la prueba es muy ambigua ¿cuánto tiempo tiene que
estar la computadora engañando a su interlocutor? ¿Todas las preguntas
están permitidas? ¿Pued<span style="font-size: small;">o </span>preguntarle al computador sobre su biografía<span style="font-size: small;">? <span style="font-size: small;">¿<span style="font-size: small;">Cómo esta de salud?</span></span></span>.
Se podria crear un programa en un computador que sea capaz de responder
a unas tres o cuatro preguntas de tal forma que lo haria un humano y
asi poder confundir al juez. A pesar de esto es posible que el juez se
de cuenta de cual es el humano y cual es la máquina a medida que <span style="font-size: small;">se hagan más preguntas, por lo que seria muy dif<span style="font-size: small;">icil que un computador actual supere el Test de Turing.</span></span></span></span></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
<span style="font-size: small;"><span class="font11">Pero
aun quedas esperanzas que a futuro una máquina supere el test de
Turing. El científico Ray Kurzweil, autor del libro The singularity is
near (La
singularidad está cerca), piensa que en un plazo no mayor a veinte
años podremos “decodificar” el software del cerebro. Hecho esto, si la
comunidad científica puede “escribir” ese código, entonces puede
replicar su comportamiento. No sólo comprender sus acciones y
reproducirlas, sino crear un organismo capaz de sentir y pensar. Tambien
hace poco </span></span><span style="font-size: small;"><span class="font11">el investigador Robert French del <i>French National Center for Scientific Research</i> afirma que estamos muy cerca de pasar esa prueba<span style="font-size: small;">,</span></span></span> este investigador afirma (en un artículo publicado en la prestigiosa publicación científica <i>Science</i> (en el ejemplar del 12 de Abril 2012) que hoy día dos avances revolucionarios están permitiendo que pronto se pase el <i>Turing Test</i> :</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
El
primero de estos es la gran cantidad de información que en años
recientes se ha hecho disponible en internet, desde millones de videos
en YouTube, hasta cientos de millones de fotos en Flickr, y desde
incontables páginas web y blogs, hasta miles de millones de hechos
descritos textualmente, lo que en esencia proveen de un ambiente de
aprendizaje virtual para las Inteligencias Artificiales, similar al
ambiente físico en que un bebé crece mientras aprende del mundo.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
El
segundo de estos avances en una nueva generación de técnicas para
recolectar, organizar y procesar toda esa información, en esencia de una
forma no lineal y caótica, permitiendo que IAs aprendan y reacciones
incluso a imprevistos en su programación.</span><br />
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div style="margin: 4.8pt 0cm 6pt;">
</div>
<div style="margin: 4.8pt 0cm 6pt;">
<br />
<div class="MsoListParagraph" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<span style="font-size: 7pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></span></div>
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 7pt;"> </span><!--[endif]--><b><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; color: #222222; font-size: 10.5pt; line-height: 115%;">¿Qué
posibilidades cree usted que un computador tendría hoy en día para pasar el
test de Turing?</span></b></span></h3>
<div class="MsoNormal">
<span style="font-family: Arial, Helvetica, sans-serif;">Existe una gran posibilidad de que una maquina pueda superar
el test de turing dada la diversidad de información obtenida entre los sistemas
interconectados, sin embargo, como existe una gran probabilidad de que pase la
prueba también es probable que no pueda pasar la prueba ya que para que una
maquina pueda ser inteligente y se diga que piensa, primero debemos definir con
claridad a que se le puede llamar pensante y establecer los parámetros de comparación,
y también definir parámetros que variables que permitan comprender si una
maquina es capaz de entender una conversación y elaborar una respuesta, si bien
es cierto hoy en día podríamos crear una máquina capaz de pasar el test de
turing no podríamos decir que esta máquina es pensante ya que no podemos
definir si en realidad está diseñada para pensar o para engañar al test y sus
jueces.</span></div>
<div class="MsoNormal">
<br /></div>
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;"> <b> <span style="font-size: 7pt;"> </span><!--[endif]-->Explique y comente sobre el experimento de la
Habitación China</b></span></h4>
<div class="MsoNormal">
<span style="font-family: Arial, Helvetica, sans-serif;">El experimento de la habitación china consiste en que el
creador nos pide que imaginemos una maquina tan compleja que sea capaz de
entender el idioma chino, donde un habitante nativo introducirá un papel
escrito en chino y el aparato le responderá. En teoría esta computadora podría pasar
el test de turing ya que quien habla con la maquina esta convencido de que esta
ha entendido su mensaje y ha sido capaz de responder. </span></div>
<div class="MsoNormal">
<span style="font-family: Arial, Helvetica, sans-serif;">¿Pero qué pasaría si dentro de la maquina se encuentra una persona que no entiende en lo absoluto el
idioma chino pero si tiene un diccionario que le permite responder? </span></div>
<div class="MsoNormal">
<span style="font-family: Arial, Helvetica, sans-serif;">La persona es capaz de responder a la pregunta o escritura
del chino, sin embargo no es capaz de entender el idioma ya que ha tenido que
realizar una traducción a su idioma para poder comprender el mensaje, mediante métodos
de comparación de símbolos, sin embargo es capaz de pasar un test como el de
turing y podría decirse que es pensante e inteligente.</span></div>
<div class="MsoNormal">
<span style="font-family: Arial, Helvetica, sans-serif;">Basado en estos antecedentes podríamos argumentar que para
la maquina los datos presentados son información sintáctica, es decir, un
conjunto de símbolos que guardan algún sentido, mientras que para nosotros es semántica
es decir, símbolos que combinados forman ideas, esto demostraría que las maquinas
solo son capaces de seguir reglas y condiciones, Sin importar que tan complejas
o enredadas sean estas normas no se
comparan con la capacidad de pensar y razonar del ser humano.</span></div>
<div class="MsoNormal">
<span style="font-family: Arial, Helvetica, sans-serif;">Como podemos observar nuevamente estamos frente a un experimento
que pretende definir si una maquina es inteligente o no, seguimos con la
interrogante de ¿que es la inteligencia y la capacidad de pensar?, ¿Son los
argumentos del juez lo suficientemente validos, diversos y robustos para
afirmar que una maquina es pensante o inteligente?, estas son interrogantes que
por mucho tiempo han propiciado los grandes avances de la Inteligencia
artificial y que de seguro seguirán aportando grandes ideas y argumentos que
nos permitan establecer los alcances de los sistemas inteligentes.</span></div>
<span style="font-family: Arial, Helvetica, sans-serif;">
<span style="font-size: 15px; line-height: 21.265625px;"><br /></span></span></div>
<div style="margin: 4.8pt 0cm 6pt;">
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 15px; line-height: 21.265625px;"><br /></span></div>
<div style="margin: 4.8pt 0cm 6pt;">
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<br />Carlos Melo Paredeshttp://www.blogger.com/profile/15502133719477038434noreply@blogger.com0tag:blogger.com,1999:blog-1609720531017460165.post-7257689329643630962013-04-06T06:23:00.002-07:002013-04-06T07:43:23.928-07:00Tarea 1 – Investigación Historia de la IA<h2>
INTELIGENCIA ARTIFICIAL</h2>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE2p45xaE7Iy0T4nXWO3YhhAtkjRZtNvMBl5aSwX4vvXOzex-Xx_vMtS4pfZWtoLd7uj9iJQYS-juDWLWGm-dyJp0YEwJ1MF5jIGfhQYlPHFAwB5eJqZBEs1-CBoZ1mB-gYHNsE2nPeFM/s1600/IA.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="277" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE2p45xaE7Iy0T4nXWO3YhhAtkjRZtNvMBl5aSwX4vvXOzex-Xx_vMtS4pfZWtoLd7uj9iJQYS-juDWLWGm-dyJp0YEwJ1MF5jIGfhQYlPHFAwB5eJqZBEs1-CBoZ1mB-gYHNsE2nPeFM/s400/IA.bmp" width="400" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<div style="text-align: justify;">
Esta es quizá la pregunta clave de todo, y desde luego no es una pregunta fácil de responder: para empezar, ¿Qué significa “pensar”?.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
No hay una definición única de inteligencia, sino, una suerte de aproximaciones, que todo lo más capturan aspectos concretos de esa realidad hasta la fecha inaprensible.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
En ocasiones se acusa a estas aproximaciones de adaptarse al estado del arte de la IA en cada momento, de forma que, por resumir, inteligencia sería “aquello que ahora somos capaces de simular con una máquina” y por lo tanto las máquinas del momento, bajo esa definición, son inteligentes.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Para Turing la cuestión sólo puede resolverse en la práctica, sin pasar por discutibles definiciones teóricas.</div>
<div style="text-align: justify;">
No hay que preguntarse si las máquinas pueden pensar, sino, si esta determinada máquina puede hacerlo. </div>
<div style="text-align: justify;">
Para llegar a cabo tal prueba sobre máquinas reales propuso Turing su famoso test, al que muchos critican porque no tiene en cuenta la compresión, sino, tan sólo el intercambio coherente de conjuntos de símbolos.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La IA moderna ha encontrado un camino por el que caminar sin tener que preocuparse por ese tipo de cuestiones, lo que le permite avanzar por un terreno más práctico: no interesa tanto la imitación de la inteligencia en su totalidad, sino aquellos aspectos de la misma que se refieren a los procesos de razonamiento, que son, por otra parte, los más sencillos de imitar en una máquina.</div>
</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQQrmxwCfvJaeUCvjuxBszCh_9qpRWeibPjz0CFVcJgd15mxD9pELu9aEn-44zBSim9mtj7TyDD-HpaCz6rZ2LZXfJ4SSoIAY9dAL6keOO8UJQBxI_AJb7gdipaxj2nZI9qMAlwNaHXU4/s1600/Fecha+Inicial.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="301" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQQrmxwCfvJaeUCvjuxBszCh_9qpRWeibPjz0CFVcJgd15mxD9pELu9aEn-44zBSim9mtj7TyDD-HpaCz6rZ2LZXfJ4SSoIAY9dAL6keOO8UJQBxI_AJb7gdipaxj2nZI9qMAlwNaHXU4/s400/Fecha+Inicial.bmp" width="400" /></a></div>
<div style="text-align: justify;">
<div>
Los primeros trabajos que pueden ya considerarse como el embrión de la Inteligencia Artificial moderna aparecen en la década de los 40 del siglo pasado, aunque no sería hasta 1950 cuando realmente estos estudios y propuestas consiguen una verdadera repercusión gracias al artículo “Computing Machinery and Intelligence”, escrito por Alan Turing, uno de los padres de la IA, y publicado en el volumen 59 de la revista “Mind”. </div>
<div>
<br /></div>
<div>
En este artículo se profundiza sobre la posibilidad de que una máquina pueda imitar el comportamiento de la mente humana. En este mismo artículo se propone el archiconocido Test de Turing, orientado a demostrar si una determinada máquina es inteligente o no.</div>
<div>
<br /></div>
<div>
Ese artículo es, probablemente, el catalizador que aglutina el conocimiento acumulado con anterioridad en otras disciplinas como la lógica y la algorítmica, llevándolo al nacimiento de una nueva ciencia. Ciencia que no sería oficialmente bautizada hasta 1956, durante la conferencia de Dartmouth.</div>
<div>
<br /></div>
<div>
Esta conferencia, denominada en su momento como "Dartmouth Summer Research Conference on Artificial Intelligence“, contó entre sus organizadores con mentes de la talla de Marvin L. Minsky y Claude E. Shannon, y en ella participaron, entre otros, Herbert Simon y Allen Newell. Durante el encuentro, que duró dos meses, se definieron las directrices y líneas de actuación futuras en el ámbito de la recién nacida nueva ciencia, tomando como hipótesis de trabajo la proposición: "Todo aspecto de aprendizaje o cualquier otra característica de inteligencia puede ser definido de forma tan precisa que puede construirse una máquina para simularlo“.</div>
<div>
<br /></div>
<div>
Toda una declaración de ideas, que lleva el mito al terreno científico.</div>
<div>
<br /></div>
<h3>
HITOS IMPORTANTES</h3>
</div>
<div>
<br />
<div style="text-align: justify;">
<b>Entusiasmo inicial , grandes esperanzas ( 1952- 1969)</b></div>
<div style="text-align: justify;">
<b><br /></b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjJXivRDEIi8R0N8vOgJNVuw155lpSUR5E6z5VQiHiW7dYb9Pn66s_E6opRh27vS6bH7LjdavhhT4jEJUWiN5MMJYVTI0J2yGYFpRUFtRhtM3C0qrJRoLnPZNuCnOhn_EhlUYt0delJ80/s1600/brain-computer.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="165" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjJXivRDEIi8R0N8vOgJNVuw155lpSUR5E6z5VQiHiW7dYb9Pn66s_E6opRh27vS6bH7LjdavhhT4jEJUWiN5MMJYVTI0J2yGYFpRUFtRhtM3C0qrJRoLnPZNuCnOhn_EhlUYt0delJ80/s200/brain-computer.jpg" width="200" /></a></div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Según el solucionador general de problemas ( SGP) , este programa se diseño para que imitara protocolos de resolución de problemas de los humanos. Fue el primer programa que incorporo el enfoque del pensar humano.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Gelernter en 1959 construyo el demostrador de teoremas de geometría (DTG).</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
En 1952 , Samuel escribió un programa para el juego de damas , el programa aprendió a jugar mejor que su creador.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Mc Carthy definió el lenguaje de alto nivel LISP . Ya tenia la herramienta que necesitaba pero aun existía el problema de los escasos y costosos recursos de cómputo. Para resolverlo inventaron el tiempo compartido. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
También en 1958 publico un articulo titulado “programas con sentido común” , en el que descubrió el escucha consejos (EC) , podrá considerarse como el primer sistema de inteligencia artificial completo , fue designado para la solución de problemas. Estaba diseñado para usar el conocimiento general del mundo.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
El programa permitía aceptar nuevas acciones durante el curso normal de operación , permitiendo ampliar la capacidad en áreas nuevas sin necesidad de reprogramación. El escucha consejos incorporaba los principios medulares de representación y razonamiento.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Estaban los micromundos, eran problemas limitados cuya solución requería de la inteligencia .</div>
<br />
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: justify;">
<b>Una dosis de realidad ( 1966 – 1974 )</b></div>
<div style="text-align: justify;">
<b><br /></b></div>
<div style="text-align: justify;">
<b><br /></b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvOcZRaSR3enZHCHKs4RuBjCAlBlnyv-rRqkUL21lsiMRUxKpRngtdrytGshFfGK3h3KGHhSES4gZGkpD32GT_V8pZ5zccyJWFjbDXbt7gQdg8K_Wh1al-1KMo3XiRizRKrXKdDSEVg_8/s1600/images.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvOcZRaSR3enZHCHKs4RuBjCAlBlnyv-rRqkUL21lsiMRUxKpRngtdrytGshFfGK3h3KGHhSES4gZGkpD32GT_V8pZ5zccyJWFjbDXbt7gQdg8K_Wh1al-1KMo3XiRizRKrXKdDSEVg_8/s1600/images.jpg" /></a></div>
<div style="text-align: justify;">
<b><br /></b></div>
<br />
<br />
<div style="text-align: justify;">
El obstáculo que enfrenta la mayoría de los proyectos de investigación, consistió en que aquellos métodos que demostraban funcionar en uno o dos ejemplos sencillos, fallaban en problemas mas variados o de mayor dificultad.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
El primer tipo de obstáculo, fue que los programas contaban con poco o ningún conocimiento de la materia u objeto de estudio. Cuando se intentaba la traducción automatizada para traducir, era necesario contar con un conocimiento general del tema respectivo, lo que permite discernir lo correcto en casos de ambigüedad y así precisar el contenido de una oración.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
El segundo obstáculo fue el de la intratabilidad de muchos de los problemas que se estaban intentando resolver mediante inteligencia artificial. Que un programa sea capaz de encontrar una solución no implica que tal programa encierre todos los mecanismos necesarios para encontrar la solución en la practica.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
El tercer obstáculo derivo de las limitaciones inherentes a las estructuras básicas que se utilizaban en la generación de la conducta inteligente.</div>
<br />
<div style="text-align: justify;">
<br />
<br />
<b>Sistema basado en el conocimiento ( ¿clave del poder? ).</b><br />
<b><br /></b>
<b><br /></b>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmkVahWglmCon5V_xxBVAy6zM_xksjjVsEBpTIkVzDTgwTzjMtjZTACBR3LVoAMKBqUsLL3UDms6sZ-2KN4Mf4lMnF-26RD4yH-7m96Mtmb2zvu5M8KsPGSO2zv1ctD1BER8A7YvhT0Cg/s1600/DEDRAL.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="194" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmkVahWglmCon5V_xxBVAy6zM_xksjjVsEBpTIkVzDTgwTzjMtjZTACBR3LVoAMKBqUsLL3UDms6sZ-2KN4Mf4lMnF-26RD4yH-7m96Mtmb2zvu5M8KsPGSO2zv1ctD1BER8A7YvhT0Cg/s320/DEDRAL.gif" width="320" /></a></div>
<b><br /></b>
<br />
La naturaleza de la resolución de problemas de la investigación en la inteligencia artificial residía en un mecanismo de búsqueda de propósito general en el que se entrelazaban pasos del razonamiento elementales para encontrar soluciones complejas. Estos métodos son llamados débiles, debido a que la información sobre el dominio con que cuentan es débil . Para resolver un problema prácticamente es necesario saber de antemano la respuesta respectiva.<br />
<br />
Dendral fue el primer sistema de conocimiento intensivo que lograba funcionar: sus conocimientos se basaban en importantes cantidades de reglas para propósitos especiales. Se incorporó la separación del conocimiento (en forma de regla) y la parte correspondiente al razonamiento.<br />
<br />
<br />
<b>La inteligencia artificial se convierte en una industria ( 1980- 1988).</b><br />
<b><br /></b>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqfjFEKodDaEo4OJgkHNrQysbkAUIi3ZV0uTB4ekbZ8DcldfvrAbgsQXiXoRSnnRyb3-c6GKg86gD5sWHYiITg5SivQ2bpiAYISMpIOv-vmG8wlCqGqbe8Uk42y47k_XhG_XQ8pXCMPy4/s1600/robotica+industrial.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqfjFEKodDaEo4OJgkHNrQysbkAUIi3ZV0uTB4ekbZ8DcldfvrAbgsQXiXoRSnnRyb3-c6GKg86gD5sWHYiITg5SivQ2bpiAYISMpIOv-vmG8wlCqGqbe8Uk42y47k_XhG_XQ8pXCMPy4/s320/robotica+industrial.jpg" width="320" /></a></div>
<b><br /></b>
<br />
Casi todas las compañías importantes de EEUU contaban con su propio grupo de inteligencia artificial, el cual investigaba la tecnología de los sistemas expertos.<br />
<br />
En 1981 los Japoneses anunciaron el proyecto de la “ quinta generación” un plan de 10 años para construir computadoras inteligentes en la que se corriera Prolog, de igual manera que las computadoras comunes corren código de máquina.<br />
<br />
Para contrarrestar el proyecto japonés se fundó la microelectronic and computer tecnology corporation (MCC). Originaba el diseño de chips y la investigación en el campo de las interfaces humanas.<br />
<br />
Más de un centenar de compañías constituyeron sistemas de visión robótica para uso industrial.<br />
<br />
</div>
<div style="text-align: justify;">
</div>
<h4 style="text-align: start;">
LINEA DE TIEMPO IA</h4>
<br />
<div style="text-align: justify;">
A continuación línea de tiempo con los acontecimientos más importantes relacionados con la inteligencia Artificial.
<a href="http://prezi.com/gw1p7uia-522/untitled-prezi/">línea de tiempo</a></div>
</div>
<br />
<h4>
VÍDEOS RELACIONADOS</h4>
<div>
A continuación les dejamos vídeos relacionados con la Historia de la Inteligencia Artificial<br />
<br />
<br />
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://img.youtube.com/vi/Fk_sIXbcP8I/0.jpg" height="266" width="320"><param name="movie" value="http://youtube.googleapis.com/v/Fk_sIXbcP8I&source=uds" /><param name="bgcolor" value="#FFFFFF" /><param name="allowFullScreen" value="true" /><embed width="320" height="266" src="http://youtube.googleapis.com/v/Fk_sIXbcP8I&source=uds" type="application/x-shockwave-flash" allowfullscreen="true"></embed></object></div>
<div>
<br /></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/0X3DyQHX5yA?feature=player_embedded' frameborder='0'></iframe></div>
<div>
<br /></div>
Carlos Melo Paredeshttp://www.blogger.com/profile/15502133719477038434noreply@blogger.com0tag:blogger.com,1999:blog-1609720531017460165.post-47498145519545902512013-03-23T07:12:00.002-07:002013-03-23T07:12:15.027-07:00No hay clases el dia 04 de mayo de 2013 se recuperan el día 13 y 20 de mayo a las 08:30Anonymoushttp://www.blogger.com/profile/11192196364860552365noreply@blogger.com1