martes, 22 de julio de 2008

Algoritmo


Algoritmos

La algoritmia es uno de los pilares de la programación y su relevancia se muestra en el desarrollo de cualquier aplicación, más allá de la mera construcción de programas.

Un algoritmo es un conjunto de operaciones y procedimientos que deben seguirse para resolver un problema. La palabra algoritmo se deriva del nombre latinizado del gran Matemático Árabe Mohamed Ibn Al Kow Rizmi, el cual escribió sobre los años 800 y 825 su obra Quitad Al Mugabala, donde se recogía el sistema de numeración hindú y el concepto del cero. Fue Fibinacci, el que tradujo la obra al latín y el inicio con la palabra: Algoritmi Dicit.

Diseños de Algoritmo:

Hasta ahora se han realizado algunos comentarios respecto a la necesidad de diseñar algoritmos correctos y eficientes utilizando los elementos de un lenguaje de programación.Es necesario en este momento mencionar algo sobre como hacerlo. El acto de diseñar un algoritmo puede considerarse como una tarea que difícilmente podrá ser del todo automatizada. Todo problema algorítmico es un reto para su diseñador, algunos resultan inmediatos de resolver, otros son bastante complejos. La investigación en esta área ha permitido descubrir un conjunto de métodos o esquemas de diseño hacia los cuales puede orientarse la realización de muchos algoritmos. El diseño de un algoritmo que resuelva un problema es, en general, una tarea difícil. Una forma de facilitar esta labor consiste en recurrir a técnicas conocidas de diseño de algoritmos, es decir, a esquemas muy generales que pueden adaptarse a un problema particular al detallar las partes generales del esquema.
El esquema más sencillo quizás sea el llamado divide y vencerás, basado en la descomposición de un problema en subproblemas. el uso de parámetros de acumulación al resolver problemas utilizando divide y vencerás, y el empleo de tablas como estructura auxiliar para la resolución eficiente de problemas donde se aplica programación dinámica

Algoritmo voraz:

El algoritmo más sencillo que puede ocurrírsenos es, partiendo de un agregado solución vacío, recorrer el agregado de entrada, y añadir el elemento considerado en cada paso al agregado solución siempre que se cumplan las condiciones derivadas de la propiedad que se apuntó.

Algoritmo de programación dinámica:

Un tercer algoritmo que puede ocurrírsenos es, a partir de la de la relación que establece cómo combinar las soluciones para distintas partes de los datos de entrada, establecer los casos en que puede obtenerse la solución sin utilizar dicha relación (casos base), y partiendo de dichos casos, guardar la solución para los mismos en una matriz de registros (multidimensional), y reconstruir la solución al problema utilizando los valores almacenados en la matriz de registros

Algoritmo backtracking:

Un cuarto algoritmo que puede ocurrírsenos es, interpretando al agregado como un conjunto, obtener todos los subconjuntos del conjunto (cuyo número es 2n), hasta encontrar uno que cumpla con las condiciones impuestas por el problema. Es decir, se trata de realizar una búsqueda exhaustiva. Llamamos árbol de expansión al árbol formado por todas las posibilidades que se estudian. En cada hoja hay una posible solución.

Inteligencia artificial

Se denomina inteligencia artificial a la rama de la informática que desarrolla procesos que imitan a la inteligencia de los seres vivos. La principal aplicación de esta ciencia es la creación de máquinas para la automatización de tareas que requieran un comportamiento inteligente.

Algunos ejemplos se encuentran en el área de control de sistemas, planificación automática, la habilidad de responder a diagnósticos y a consultas de los consumidores, reconocimiento de escritura, reconocimiento del habla y reconocimiento de patrones. Los sistemas de IA actualmente son parte de la rutina en campos como economía, medicina, ingeniería y la milicia, y se ha usado en gran variedad de aplicaciones de software, juegos de estrategia como ajedrez de computador y otros videojuegos.

Escuelas de pensamiento

La IA se divide en dos escuelas de pensamiento:

Inteligencia artificial convencional

Se conoce también como IA simbólico-deductiva e IA débil. Está basada en el análisis formal y estadístico del comportamiento humano ante diferentes problemas:

Inteligencia artificial computacional

La inteligencia computacional (también conocida como IA subsimbólica-inductiva e IA fuerte) implica desarrollo o aprendizaje iterativo ejemplo modificaciones interactivas de los parámetros en sistemas conexionistas). El aprendizaje se realiza basándose en datos empíricos

Historia de la IA

· Los primeros desarrollos en inteligencia artificial comenzaron a mediados de los años 1950 con el trabajo de Alan Turing, a partir de lo cual la ciencia ha pasado por diversas situaciones:

El término fue inventado en 1956 por John McCarthy, Marvin Minsky y Claude Shannon en la Conferencia de Dartmouth

  • En 1980 la historia se repitió con el desafío japonés de la quinta generación de computadoras, que dio lugar al auge de los sistemas expertos pero que no alcanzó muchos de sus objetivos, por lo que este campo sufrió una nueva interrupción en los años noventa.
  • En la actualidad se está tan lejos de cumplir la prueba de Turing como cuando se formuló: Existirá Inteligencia Artificial cuando no seamos capaces de distinguir entre un ser humano y un programa de computadora en una conversación a ciegas.
  • Como anécdota, muchos de los investigadores sobre IA sostienen que "la inteligencia es un programa capaz de ser ejecutado independientemente de la máquina que lo ejecute, computador o cerebro".

Fundamentos y filosofía

La inteligencia artificial aborda tantas cuestiones confundibles en un nivel fundamental y conceptual que, adjunto a lo científico, es necesario hacer consideraciones desde el punto de vista de la filosofía. Gran parte de esta ciencia se junta con temas en la filosofía de la mente, pero hay ciertos temas particulares a la IA.

Durante más de 2000 años de tradición en filosofía, han ido surgiendo diversas teorías del razonamiento y del aprendizaje, simultáneamente con el punto de vista de que la mente se reduce al funcionamiento físico. La psicología ofrece herramientas que permiten la investigación de la mente humana, así como un lenguaje científico para expresar las teorías que se van obteniendo. La lingüística ofrece teorías para la estructura y significado del lenguaje, así como la ciencia de la computación, de la que se toman las herramientas que permiten que la Inteligencia Artificial sea una realidad.

Bien podría afirmarse que la historia de la inteligencia artificial comienza en el año 450 adC, cuando Platón cita un diálogo en el que Sócrates le pregunta a Eutidemo: "Desearía saber cuál es la característica de la piedad que hace que una acción se pueda considerar como pía... y así la observe y me sirva de norma para juzgar tus acciones y las de otros."

Los filósofos delimitaron las más importantes ideas relacionadas con la inteligencia artificial, pero para pasar de allí a una ciencia formal era necesario contar con una formalización matemática en tres áreas principales: la computación, la lógica y la probabilidad. La idea de expresar un calculo mediante un algoritmo formal se remota a la época de Jwarizmi, matemático árabe del siglo IX, con cuyas obras se introdujeron en Europa los números arábigos y el álgebra (de su nombre al-Jwarizmi deriva la palabra Algoritmo.

Inteligencia artificial y emociones

Contextual izando, y teniendo en cuenta un punto de vista científico, podríamos englobar a esta ciencia como la encargada de imitar una persona, y no su cuerpo, sino imitar al cerebro, en todas sus funciones, existentes en el humano o inventadas sobre el desarrollo de una máquina inteligente.

Aplicando la definición de Inteligencia Artificial, se piensa en máquinas inteligentes sin emociones, que "obstaculizan" encontrar la mejor solución a un problema dado. En esta línea, hay que saber que ya existen sistemas inteligentes. Capaces de tomar decisiones "acertadas".

Muchos de los científicos consideran seriamente la posibilidad de incorporar componentes “emotivos”, a fin de aumentar la eficacia de los sistemas inteligentes. Al tener “emociones” y, al menos potencialmente, “motivaciones”, podrán actuar de acuerdo con sus “intenciones”. Así, se podría equipar a un robot con dispositivos que controlen su medio interno; por ejemplo, que “sientan hambre” al detectar que su nivel de energía está descendiendo o que “sientan miedo” cuando aquel esté demasiado bajo.

Desventajas

Las principales críticas a la inteligencia artificial tienen que ver con su incapacidad de imitar por completo a un ser humano. Normalmente la lógica usada por la inteligencia artificial llega a aserciones que no son comunes del humano; es por ello que esta lógica artificial es llamada "Lógica Difusa". Se entiende por este término los resultados que da una computadora que no son comunes a nuestro pensamiento. Se da principalmente porque manejan resultados como totalmente verdaderos o totalmente falsos. Aunque esta lógica usada por la inteligencia artificial comúnmente puede convencer que la máquina sí piensa, si realizáramos test como el de Turing sabríamos que carece de pensamiento.

Aplicaciones de la inteligencia artificial

  • Lingüística computacional
  • Minería de datos
  • Mundos virtuales
  • Procesamiento de lenguaje natural (Natural Language Processing)
  • Robótica
  • Sistemas de apoyo a la decisión
  • Videojuegos
  • Prototipos informáticos

Robótica

La robótica es una rama de la tecnología, que estudia el diseño y construcción de máquinas capaces de desempeñar tareas repetitivas, tareas en las que se necesita una alta precisión, tareas peligrosas para el ser humano o tareas irrealizables sin intervención de una máquina. Las ciencias y tecnologías de las que deriva podría ser: el álgebra, los autómatas programables, las máquinas de estados, la mecánica, la electrónica y la informática.

La historia de la robótica

La historia de la robótica ha estado unida a la construcción de "artefactos", que trataban de materializar el deseo humano de crear seres a su semejanza y que lo descargasen del trabajo. El ingeniero español Leonardo Torres Quevedo (GAP) (que construyó el primer mando a distancia para su torpedo automóvil mediante telegrafía sin hilo)

Cibernética

La cibernética es el estudio del control y comunicación en los Sistemas Complejos: organismos vivos, máquinas y organizaciones. Especial atención se presta a la retroalimentación y sus conceptos derivados.

Etimología

La palabra cibernética proviene del griego Κυβερνήτης (kybernetes) y significa "arte de pilotar un navío", aunque Platón la utilizó en La República con el significado de "arte de dirigir a los hombres" o "arte de gobernar".

Historia

En el siglo XIX, André-Marie Ampère y James Clerk Maxwell retomaron el sentido político de la palabra. Pero la cibernética tal como la entendemos hoy en día fue formalizada por Norbert Wiener en su obra Cibernética o el control y comunicación en animales y máquinas

Definiciones

La cibernética, según el epistemólogo, antropólogo, cibernetista y padre de la terapia familiar, Gregory Bateson, es la rama de las matemáticas que se encarga de los problemas de control, recursividad e información. Bateson también afirma que la cibernética es "el más grande mordisco a la fruta del árbol del Conocimiento que la humanidad haya dado en los últimos 2000 años".

Según el Profesor Dr. Stafford Beer, la cibernética estudia los flujos de información que rodean un sistema, y la forma en que esta información es usada por el sistema como un valor que le permite controlarse a si mismo: ocurre tanto para sistemas animados como inanimados indiferentemente. La cibernética es una ciencia interdisciplinar, estando tan ligada a la física como al estudio del cerebro como al estudio de los computadores, y teniendo también mucho que ver con los lenguajes formales de la ciencia, proporcionando herramientas con las que describir de manera objetiva el comportamiento de todos estos sistemas."

Cibernética y robótica

Mucha gente asocia la cibernética con la robótica, los robots y el concepto de cyborg debido al uso que se le ha dado a algunas obras de ciencia-ficción, pero desde un punto de vista estrictamente científico, la cibernética trata acerca de sistemas de control basados en la retroalimentación.

Desventajas:

· La creación de maquinas complejas que reemplacen a los trabajadores provocara un recorte de personal.

· En un futuro ya no ocuparan personal "viejo" y contrataran técnicos jóvenes para el mantenimiento de las maquinas

Ventajas:

· La reducción de las jornadas laborales.

· Los trabajos complejos o rutinarios pasarían a ser de las maquinas.

· Además la cibernética brinda un gran aporte al campo medicinal.

Teoría de sistemas

La teoría general de sistemas (TGS) o teoría de sistemas o enfoque de sistemas es un esfuerzo de estudio interdisciplinario que trata de encontrar las propiedades comunes a entidades, los sistemas, que se presentan en todos los niveles de la realidad, pero que son objeto tradicionalmente de disciplinas académicas diferentes. Su puesta en marcha se atribuye al biólogo austriaco Ludwig von Bertalanffy, quien acuñó la denominación a mediados del siglo XX.