Seguidores

Archivo del blog

martes, 15 de septiembre de 2009

Ivan Dario Giraldo

AGENTE ESTIMULO RESPUESTA
Los agentes de estimulo respuesta (agentes E-R) son sistemas que no tienen estados internos y que solo reaccionan a los estímulos generados por los entornos donde operan, este tipo de comportamiento permite la construcción de una gran variedad de robots capaces de responder a los estímulos que reciben sus sensores.
Representación e implementación de las funciones para la selección de acciones
Para realizar la selección de acciones, debemos construir una función, definida sobre el vector de características, que tenga R valores de salida distintos, suponiendo que existen R posibles acciones a elegir.
Sistemas de Producción
Los sistemas de producción proporcionan una representación adecuada para las funciones de selección de acciones. Un sistema de producción esta formado por un conjunto de reglas de producción ci ai , donde ci es la condición y ai es la acción, por lo tanto un sistema de producción esta formado por un conjunto no vacio de este tipo de reglas.
La condición de una regla puede ser cualquier función booleana definida sobre el vector de características que se calcula a partir de las entradas sensoriales, normalmente la función es un monomio (una conjunción de literales booleanos), la selección de la acción se realiza comenzando con la primera regla c1 a1 , se busca, siguiendo el orden establecido en el conjunto de reglas, una de ellas en la que la evaluación de su condición proporcione el valor de 1, y se selecciona su parte de acción. La parte de acción puede ser una acción primitiva, una llamada a otro sistema de producción o un conjunto de acciones que tienen que ser ejecutadas simultáneamente. En la mayor parte de los casos, la última regla del conjunto tiene como condición el valor de 1, y por tanto, si ninguna de las condiciones de las reglas anteriores toma el valor de 1, se ejecuta por defecto la acción asociada a esta última regla. A medida que se van ejecutando las acciones, se van modificando las entradas sensoriales, así como los valores de las características derivados a partir de aquellas. Por tanto, las condiciones de las reglas deben se comprobadas continuamente, de tal forma que una acción ejecutada en cualquier instante se corresponde con la primera regla cuya condición toma el valor de 1 en dicho instante.
En los sistemas de producción dirigidos por objetivos, la condición de la primera regla de la lista (la primera en ser comprobada) define el objetivo general que persigue el sistema. Siempre que dicha condición se satisfaga, el sistema no ejecutara acción alguna. Si esta condición no se verifica, pero se satisface la condición de la segunda regla, entonces se ejecutara la acción correspondiente a la segunda regla, que en la mayor parte de los casos acercara al sistema hacia el objetivo general. Con el resto de las reglas se procede de igual manera. Este tipo d sistemas de producción es la base de un formalismo denominado programas Teleo-Reactivos, o programas T-R. En un programa T-R, cada acción ejecutada correctamente acerca al agente al cumplimiento de alguna condición asociadas a las reglas que le preceden. Estos sistemas de producción son fáciles de programar, siempre y cuando el objetivo general del agente este bien definido (expresado como una condición booleana de las características). Los programas T-R también son bastantes robustos, ya que todas las acciones conducen inexorablemente al agente hacia el objetivo general.
Redes
Se pueden construir programas que implementen funciones booleanas y sistemas de producción de una forma sencilla. Alternativamente, los sistemas de producción se pueden implementar directamente por medio de circuitos electrónicos. El circuito puede tener como entradas las propias señales sensoriales. Un tipo muy común de circuito lo constituyen las redes formadas por elementos con umbral o por otro tipo de elemento que aplique la función no lineal sobre una suma ponderada de sus entradas. Un ejemplo de este tipo de elementos es la Unidad Lógica con Umbral (ULU), esta unidad realiza una suma ponderada de las entradas, compara esta suma con un umbral y si supera el umbral, produce como salida un 1; en cualquier otro caso produce un 0.

f= 1 si ∑ xiwi ≥0 =0 en cualquier otro caso
Las funciones booleanas que pueden ser implementadas mediante una ULU se denominan funciones linealmente separables (el nombre se debe a que una ULU separa el espacio de los vectores de entrada en dos regiones, la de los vectores que quedan por encima del umbral y la de aquellos que quedan por debajo, mediante una superficie lineal denominada hiperplano de n dimensiones). Muchas funciones booleanas, aunque no todas, son linealmente separables.
La arquitectura de subsunción
Aunque no existe una definición precisa de esta arquitectura, la idea general consiste en hacer que el comportamiento global del agente descanse sobre un conjunto de módulos de comportamiento. Cada uno de estos módulos recibe información directa de las entradas sensoriales. Si dichas entradas satisfacen una precondición, especifica para cada modulo, se ejecuta un programa que también es especifico para cada modulo. Además, un modulo de comportamiento puede ser subsimido en otro. Cuando un modulo j se subsume en un modulo i, el programa que se ejecuta si la precondición del modulo i se satisface, tiene la prioridad sobre el programa asociado al modulo j, a este tipo de distribución se le denomino arquitectura horizontal.
Consideraciones adicionales
El uso de agentes E-R esta más extendido en nuestro entorno de lo que podríamos pensar. Entre los sistemas que utilizan este tipo de agentes nos encontramos los termostatos utilizados para el control de temperatura, los sistemas de control que gestionan la velocidad de un automóvil, a las partes de un sistema operativo que gestionan las interrupciones y en general todos los sistemas utilizados en plantas de fabricación automáticas.
La división horizontal para la separación entre los componentes de percepción y acción constituye una forma práctica de abordar el diseño de un agente. La división horizontal permite al diseñador considerar de forma simultánea aquellos aspectos relacionados con la percepción y la acción que sirven de base para presentar pautas de comportamientos especificas. La división vertical es una alternativa al planteamiento horizontal, en la que se pueden tener distintos módulos encargados de recoger, de diferentes fuentes, grandes cantidades de información (es decir, percepción) y otros módulos encargados de sacar el máximo partido posible a la información, proporcionada por los primeros módulos, para poder desarrollar diferentes tareas (es decir, acción). La relación inherente que existe entre la extracción de información y la generación de pautas de comportamiento hace que el planteamiento vertical sea más atractivo a la hora de optimizar el esfuerzo de programación.
En la actualidad, los sistemas basados en el planteamiento horizontal se pueden beneficiar de la división vertical entre percepción y acción. De esta forma, el vector de características se puede dividir en diferentes campos, donde cada campo puede ser procesado por un sistema perceptual especifico y evocar distinta acciones o comportamientos, como ocurre en la arquitectura de subsunción.

miércoles, 9 de septiembre de 2009


Esteban Rojas Castro
INTELIGENCIA ARTIFICIAL
En mi opinión la historia de la AI se remonta desde tiempos no escritos, es decir desde que el hombre tiene la capacidad de existir, pensar e imaginar. Un ejemplo el libro el Mago de Oz donde se describe un hombre mecánico; entonces según esto ¿que es la AI?, para mi es la capacidad que tiene el hombre de crear cosas capases de pensar y actuar por si solas, pero según la historia la AI es la parte de las ciencias de la computación que se ocupa del diseño de sistemas de computación inteligentes, esto es, sistemas que exhiben las características que asociamos con la inteligencia en el comportamiento humano.
La AI tubo un gran impulso desde la creación de la computadora, es más se dijo a mediados de los años 40 que los PC eran los cerebros más grandes, al IBM crear un PC con gran capacidad de hacer cálculos, pero el hombre en ese tiempo, pienso yo, no se había dado cuenta de la gran capacidad que de nuestro cerebros que son tan increíbles que puede crear un cerebro artificial capas de suplir tareas de una persona. Esta es la principal tarea de la AI suplir aquellas tareas que son capases de hacer los seres vivos, para la comodidad de estos.
Algunos ejemplos son: En el 2005 se hizo una carrera de autos auto tripulados, donde de 23 vehículos 5 terminaron la carrera o el robot de la NASA que fue construido para tomar muestras de otros planetas para el estudio de estos.
El hombre siempre a intentado crear su propio Frankenstein, ya se con un PC de alta capacidad los cuales compiten con el cerebro humano en ciertas cosas como en el ajedrez o creando un reconocedor de objetos por medio de imágenes, pero lo que si es cierto es que todos los inventos nombrados en la historia de la AI son una antesala para que el hombre siga buscando la forma de crearse, de ser capas de igualar algo no humano a un humano, y lo único capas de hacer lo que el hombre hace es el mismo hombre.
La inteligencia no puede ser artificial aunque a las cosas artificiales se les pueda dotar de esta.

martes, 8 de septiembre de 2009

ENSAYO SOBRE LA HISTORIA DE LA INTELIGENCIA ARTIFICIAL
Ivan Dario Giraldo Gallego

Se puede describir la inteligencia artificial como el comportamiento inteligente de las maquinas, esto implica que las maquinas sean capaces de percibir, razonar, comunicarse, interactuar con el medio y las personas, tomar decisiones y lo mas importante que puedan aprender.
A sido uno de los sueños del hombre construir maquinas o seres mecánicos con este tipo de características mencionadas anteriormente logrando que estas realicen actividades (trabajo) que normalmente harían las personas con el fin de hacer la vida mas fácil y agradable.
La pregunta, Pueden las maquinas pensar?, ha generado controversia en todas las áreas del saber, pues para muchos pensar concierne solamente a los seres humanos y algunos lo amplían a los animales, pero no a una maquina y ven a la IA como una ciencia ficticia o una literatura fantasiosa; para otros la posibilidad de que una maquina piense es algo posible y que se puede lograr en un futuro como por ejemplo L. Frank Baum quien escribió el mago de oz y describió a un hombre mecánico llamado Tiktok en 1907.
El primer paso hacia la inteligencia artificial fue dado por Aristóteles (384 – 322 a. C), cuando comenzó a explicar y a codificar ciertos estilos de razonamiento deductivo el cual llamo silogismo, Gottfried Leibniz también aporto al inicio de la IA con su sistema calculo filosófico o raciocinador, George Boole desarrollo los fundamentos de la lógica proposicional, Gottlieb Frege propuso un sistema de notación para el razonamiento mecánico.
Durante las décadas de los 40 y 50 cuando empezaron a desarrollarse los primeros ordenadores algunos investigadores escribieron programas que podían realizar razonamientos elementales. Entre estos se pueden mencionar los primeros programas capaces de jugar ajedrez (Shannon 1950), damas (Samuel 1959); en la década de los 60 y parte de los 70 se dedico a explorar diversas representaciones de problemas, técnicas de búsqueda y recuperación de información, entre los problemas resueltos por estos sistemas pioneros se incluían la integración simbólica. Al tratar de mejorar estos programas y sus técnicas para enfrentarlos mostro que solo servían para jugar o solucionar problemas prácticos muy elementales, se necesitaba sistemas mas potentes los cuales requerían de conocimientos mas avanzados, es así como a finales de los 70 y principios de los 80 se desarrollaron programas mas avanzados con posibilidad de aplicarlos a problemas mas reales y prácticos, los cuales tenían el conocimiento necesario para realizar actividades como diagnosticar, diseñar y analizar; por ultimo desde finales de los 80 hasta hoy se puede observar muchas mejoras en todas las áreas tecnológicas, sistemas cada vez mas potentes y confiables, desarrollo de nuevas tecnologías, lo cual conlleva a sistemas mas autosuficientes y al desarrollo continuo de la IA.

martes, 1 de septiembre de 2009

EL HORIGEN DE LAS IDEAS

El origen de las ideas

Las ideas evolucionistas estuvieron presentes en las mentes de una serie de científicos y pensadores en general que no se sentían satisfechos con la (entonces popular) idea de que había un Dios originador de todas las especies del planeta (las cuales habían sido creadas de forma separada) y de que las especies estaban jerarquizadas por Dios de tal manera que el hombre ocupaba el rango superior, al lado del Creador
.

Lamarckismo


Lamarck enfatizo la importancia de la naturaleza en los cambios de las especies; explico un mecanismo responsable de los cambios en las especies, al cual ahora se le conoce como “Lamarckismo”. Creía que los organismos no son alterados de forma pasiva por su ambiente, sino que más bien un cambio en el ambiente produce cambios en las necesidades de los organismos, lo que hace que, en consecuencia, estos cambien su comportamiento, los cuales son hereditarios.

La teoría del germoplasma

El cuerpo se divide en células germinales (o germoplasma) que pueden transmitir información hereditaria y en células somáticas (o somatoplasma), que no pueden hacerlo. August Weismann efectuó una serie de experimentos en los cuales corto la cola a un grupo de ratas durante 22 generaciones (1,592 ratones en total), haciendo ver que esto no afectaba la longitud de la cola de las nuevas generaciones de ratas. Con ello, Weismann demostró que la teoría Lamarckista de la herencia de características a través de generaciones estaba equivocada, y condujo (incidentalmente) al redescubrimiento del trabajo de Mendel sobre las leyes de la herencia.
Darwin se percato de que una especie que no sufriera cambios se volvería incompatible con su ambiente, ya que este tiende a cambiar con el tiempo. Asimismo, las similitudes entre hijos y padres observadas en la naturaleza, le sugirieron a Darwin que ciertas características de las especies eran hereditarias, y que de generación a generación ocurrían cambios cuya principal motivación era hacer a los nuevos individuos más aptos para sobrevivir.

La teoría de la combinación

Una teoría popular sobre la herencia en la época de Darwin era la teoría de la “combinación”, según la cual las características hereditarias de los padres se mezclaban o combinaban de alguna forma en sus hijos.
Ciertas características, al combinarse, se diluían con el paso de las generaciones, lo cual contradecía la teoría de la selección natural de Darwin, pues según la teoría de la combinación, los cambios adaptativos no podrán ser preservados.


Las leyes de la herencia de Mendel

Mendel descubrió tres leyes básicas que gobernaban el paso de una característica de un miembro de una especie a otro.
La primera ley (llamada de Segregación) establecía que los miembros de cada par de alelos de un gene se separan cuando se producen los gametos durante la meiosis.
La segunda ley (llamada de la Independencia) establecía que los pares de alelos se independizan (o separan entre si durante la formación de gametos. La tercera ley (llamada de la Uniformidad) establecía que cada característica heredada se determina mediante dos factores provenientes de ambos padres. De tal manera, la teoría de la combinación de la que hablamos anteriormente, quedaba desechada de acuerdo a los resultados producidos en los experimentos de Mendel.

La teoría de la pangénesis

Cada órgano del cuerpo produce pequeñas partículas hereditarias llamadas “gémulas” o “pangénes”. Según Darwin, estas gémulas eran transportadas a través de la sangre y se recolectaban en los gametos durante su formación. Esto significaba que, según esta teoría, las características de los padres se transmitían directamente a la sangre de sus hijos.

La teoría de la mutación

Según De Vries, los cambios en las especies no eran graduales y adaptativos como afirmaba Darwin, sino más bien abruptos y aleatorios (es decir, al azar).
Varios años más tarde se descubrió que las flores rojas que motivaron esta teoría no eran más que una variedad más de las mismas flores amarillas de que estaban rodeadas, y no una nueva especie como De Vries creía. De hecho, se ha logrado demostrar que las mutaciones son siempre dañinas y que no producen nuevas especies, aunque algunos aspectos de la teoría de De Vries han servido para complementar la teoría evolutiva de Darwin.

La teoría cromosómica de la herencia

Walter Sutton determinó correctamente que los cromosomas en el núcleo de las células eran el lugar donde se almacenaban las características hereditarias.
También afirmó que el comportamiento de los cromosomas durante la división de las células sexuales era la base para las leyes de la herencia de Mendel. Un poco después indicó que los cromosomas contenían genes, y que los genes de un mismo cromosoma estaban ligados y, por tanto, se heredaban juntos.

Neo-Darwinismo

El Neo-Darwinismo establece que la historia de la vasta mayoría de la vida en nuestro planeta puede ser explicada a través de un puñado de procesos estadísticos que actúan sobre y dentro de las poblaciones y especies.
En cualquier sistema que se reproduce a sí mismo continuamente y que esta en constante equilibrio, la mutación esta garantizada.
Inspiración biológica

El proceso evolutivo es algo similar al aprendizaje por ensayo y error que suele manifestarse en los humanos.

Alexander Fraser

Publico una serie de trabajos sobre la evolución de sistemas biológicos en una computadora digital, dando la inspiración para lo que se convertirá mas tarde en el algoritmo genético.
El trabajo de Fraser incluye, entre otras cosas, el uso de una representación binaria, de un operador de cruza probabilístico, de una población de padres que generaban una nueva población de hijos tras recombinarse y el empleo de un mecanismo de selección.

EVOP

Consiste en efectuar pequeños cambios a un conjunto de parámetros de producción, monitoreando ciertos datos estadísticos de los procesos para guiar la búsqueda.
Funcionaba mediante un proceso iterativo, pero requería de intervención humana en cada etapa.

La evolución de programas de Friedberg

Considerado como uno de los primeros investigadores en intentar evolucionar programas de computadora.
Consistió en generar un conjunto de instrucciones en lenguaje maquina que pudiesen efectuar ciertos cálculos sencillos, utilizando un algoritmo de asignación de crédito para dividir la influencia de diferentes instrucciones individuales en un programa.

Friedman y la robótica evolutiva

Propuso evolucionar una serie de circuitos de control similares a lo que hoy conocemos como redes neuronales, usando lo que él denominaba “retroalimentación selectiva”, en un proceso análogo a la selección natural; se intentan aplicar técnicas evolutivas a diferentes aspectos de la robótica. Los circuitos de control que utilizara Friedman en su trabajo modelaban a las neuronas humanas, y eran capaces de ser excitadas o inhibidas. Además, era posible agrupar estos circuitos simples (o neuronas) para formar circuitos mas complejos.
Lo interesante es que Friedman propuso un mecanismo para construir, probar
y evaluar estos circuitos de forma automática, utilizando mutaciones aleatorias y un proceso de selección.

Vida artificial

Nils Aall Barricelli [16] desarrollo las que tal vez fueron las primeras simulaciones de un sistema evolutivo en una computadora.
El principal énfasis de su investigación consistía en determinar las condiciones que los genes deben cumplir para poder dar pie al desarrollo de formas de vida mas avanzadas. Sus conclusiones fueron que los genes deben satisfacer lo siguiente: (1) una cierta capacidad para reproducirse, (2) una cierta capacidad para cambiar a formas alternas (a través de mutaciones) y, (3) una necesidad de simbiosis (por ejemplo, a través de vida parasita) con otros genes u organismos.


La optimización evolutiva de Bremermann

La idea principal de su propuesta era usar un individuo factible el cual se modificaba a través de un operador de mutación hacia un conjunto de direcciones posibles de movimiento.
Bremermann fue uno de los primeros en utilizar el concepto de “población” en la simulación de procesos evolutivos, además de intuir la importancia de la coevolución (es decir, el uso de dos poblaciones que evolucionan en paralelo y cuyas aptitudes están relacionadas entre sí) y visualizar el potencial de las técnicas evolutivas para entrenar redes neuronales.

La programación evolutiva

Consistía básicamente en hacer evolucionar autómatas de estados finitos, los cuales eran expuestos a una serie de símbolos de entrada (el ambiente), y se esperaba que, eventualmente, fueran capaces de predecir las secuencias futuras de símbolos que recibirían. Utilizo una función de “pago” que indicaba que tan bueno era un cierto autómata para predecir un símbolo, y uso un operador modelado en la mutación para efectuar cambios en las transiciones y en los estados de los autómatas que tenderían a hacerlos más aptos para predecir secuencias de símbolos.

Ecosistemas artificiales

Se cuentan entre los primeros en simular un ecosistema artificial jerárquico en el que un conjunto de organismos unicelulares estaban sujetos a una estricta ley de conservación de la materia que les inducia a competir para sobrevivir. Los organismos simulados fueron capaces de efectuar cooperación mutua y de llevar a cabo estrategias biológicas tales como la recombinación genética y la modificación de la expresión de su genoma.
En esta implementación, los organismos realmente consistían de subrutinas genéticas, por lo que el fenotipo de cada individuo se determinaba mediante la forma en que estas rutinas era usadas por los organismos.