Anda di halaman 1dari 14

INTELIGENCIA ARTIFICIAL

Fundamentos
Si bien las ideas fundamentales se remontan a la lógica y algoritmos de los griegos, y a las matemáticas de los árabes, varios siglos antes de
Cristo, el concepto de obtener razonamiento artificial aparece en el siglo XIV. A finales del siglo XIX se obtienen lógicas formales suficientemente
poderosas y a mediados del siglo XX, se obtienen máquinas capaces de hacer uso de tales lógicas y algoritmos de solución.
Para la evolución de la Inteligencia Artificial las dos fuerzas más importantes fueron la lógica matemática, la cual se desarrolló rápidamente a
finales del siglo XIX, y las nuevas ideas acerca de computación y los avances en electrónica que permitieron la construcción de los primeros
computadores en 1940.

Nacimiento
En 1956 nace la "Inteligencia Artificial" en Dartmouth College durante un taller de dos meses convocado por John McCarthy, al cual asistieron
diez investigadores, entre otros, Minsky, Newell y Simon. Newell y Simon presentaron un programa de razonamiento, el Teórico Lógico (TL), el cual,
afirmaban, era capaz de pensar de manera no numérica, el cual fue considerado el primer programa de IA y usado para resolver problemas de búsqueda
heurística.
El taller de Dartmouth no produjo ningún otro avance notable, pero puso en contacto a las figuras importantes de este campo, quienes
llegaron al consenso de adoptar el nuevo nombre propuesto por McCarthy para dicho campo: Inteligencia Artificial.

Definición
Cuando se utilizó el término por primera vez se pensó en la posibilidad de simular la inteligencia humana en una máquina. Según Marvin
Minsky:
“La inteligencia artificial es la ciencia de hacer que las máquinas hagan cosas que requerirían inteligencia si las hicieran los hombres.”

Definir la Inteligencia Artificial es una tarea realmente complicada. Desde que se acuñara este término en la Conferencia de Dartmouth de
1956, se han propuesto muchas definiciones distintas que en ningún caso han logrado la aceptación sin reservas de toda la comunidad investigadora.
Todas las definiciones de Inteligencia Artificial están relacionadas con la siguiente idea: Desarrollo de métodos y algoritmos que permitan
comportarse a las computadoras de modo inteligente.
Se puede decir que la IA es la rama de la ciencia de la computación que centra sus esfuerzos en la consecución de sistemas inteligentes.
Siendo un sistema de inteligencia artificial capaz de planear, resolver problemas, pensar de manera abstracta, comprender ideas y lenguajes, y aprender.

Características
1. Uso de caracteres no numéricos o no matemáticos para especificar los diferentes algoritmos. Las diferentes sentencias son evaluadas
mediante algebra y lógica.

2. El comportamiento de los programas no es descrito explícitamente por el algoritmo. La secuencia de pasos seguidos por el programa es
influenciado por el problema particular presente. El programa especifica cómo encontrar la secuencia de pasos necesarios para resolver un
problema dado (programa declarativo).

3. El razonamiento basado en el conocimiento, implica que estos programas incorporan factores y relaciones del mundo real y del ámbito del
conocimiento en el que ellos operan. Los programas de Inteligencia Artificial pueden distinguir entre el programa de razonamiento o motor de
inferencia y base de conocimientos dándole la capacidad de explicar discrepancias entre ellas.

4. Aplicabilidad a datos y problemas mal estructurados, sin las técnicas de Inteligencia Artificial los programas no pueden trabajar con este tipo
de problemas.

Relación entre IA y la Simulación por Computador


La inteligencia artificial y la simulación por computador son dos campos muy similares entre sí, sin embargo no tienen los mismos objetivos.
El principal objetivo de la simulación es el desarrollo de modelos que realicen tareas funcionalmente equivalentes del mismo modo que el
sujeto humano. Ello implica tanto la similitud de respuestas como una similitud en los procesos implicados para dichas respuestas. Esta es precisamente
la principal característica que distingue a la Inteligencia Artificial de la Simulación. El objetivo de la Inteligencia Artificial es conseguir programas que
actúen de forma “inteligente” realizando tareas similares a las que llevan a cabo los seres humanos, pero sin tener en cuenta los procesos implicados
para obtener las respuestas.
La diferencia entre ambas disciplinas estriba en que mientras que la Inteligencia Artificial se trata simplemente de que las máquinas
«jueguen» en tareas de tipo «inteligente», en el caso de la simulación con computadores se pretende que lo hagan de la forma más parecida a como lo
hace el ser humano. Ambas disciplinas están, por consiguiente, íntimamente relacionadas entre sí, ya que toda la ciencia desarrollada a partir de la
inteligencia artificial es fácil y directamente aplicable a la simulación por computadores, aunque distinta, Se podría decir que la simulación por
computador es una forma de llevar a cabo trabajos de inteligencia artificial, aunque lo contrario no sea cierto.

Vida Artificial
La Vida Artificial se puede considerar como la parte de la Inteligencia Artificial que pretende reproducir los procesos y comportamientos
típicos de los seres vivos con el objetivo de resolver problemas. También podemos definirla como el intento de crear vida, o algo parecido a la vida,
mediante la combinación de símbolos (datos) y procesos de símbolos (programas) independientemente del soporte físico de estos símbolos y procesos.
En muchos campos de estudio se plantea la posibilidad de realizar simulaciones para intentar predecir o ayudar a la toma de decisiones acerca
de ciertos aspectos del mundo real. Hay dos formas de enfocar estas simulaciones:

1. La primera de ellas se basa en la observación de la realidad, centrando la atención en los aspectos "a más alto nivel", es decir, precisamente
en los que se pretenden predecir o modificar, y también en aquellos que aparentemente están más relacionados con éstos. El cerebro
humano elabora una teoría acerca de cómo todos estos aspectos varían. Esta teoría se formaliza en fórmulas, reglas o algo parecido, y se
simula en un ordenador ante diversas condiciones iniciales. Se observa si el modelo, ante datos históricos del pasado, ofrece salidas
(resultados) que se ajustan a lo esperado según los datos históricos, y en ese caso, se utiliza para la toma de decisiones en el futuro, ajustando
continuamente el modelo según el error obtenido. En caso de obtener resultados muy alejados de la realidad, se revisa la teoría inicial,
reescribiéndola por completo, ajustando ciertos aspectos o detallando con mayor nivel de profundidad los que parecen ser generalizaciones
excesivas.

2. La segunda de ellas se basa en la observación de la realidad, centrando la atención en los aspectos "a más bajo nivel" del problema, buscando
los aspectos más sencillos y a la vez con una alta multiplicidad. Es decir, el cerebro humano identifica aquellas características sencillas que
están presentes en muchas entidades del problema. Mediante fórmulas, reglas o algo parecido, se define un tipo genérico de entidad que
admita estas características, y en un ordenador se realiza una simulación basada en la generación de un alto número de estas entidades
capaces de interactuar entre sí, con las esperanzas en que de esta interacción emerja el comportamiento complejo que se pretende estudiar.
Inicialmente los agentes genéricos se definen tan sencillos como sea posible sin dejar de ajustarse al problema. Se observa si el modelo, ante
datos históricos del pasado, ofrece salidas (resultados) que se ajustan a lo esperado según los datos históricos, y en ese caso, se utiliza para la
toma de decisiones en el futuro, ajustando continuamente el modelo según el error obtenido. En caso de obtener resultados muy alejados de
la realidad, se deduce que la definición del agente genérico (más su entorno, etc.) es demasiado sencilla y se va complicando, añadiendo
detalles hasta ajustarse suficientemente a la realidad.

La mayoría de las simulaciones son del primer tipo. Aunque el primer planteamiento es muy útil para la gran mayoría de problemas, existen otros
para lo que es muy difícil o poco útil ese planteamiento. Tal es el caso del análisis del comportamiento de un fluido en una red de tuberías, fenómenos
macroeconómicos o ecológicos. Las simulaciones que aquí se tratan son de este segundo tipo. La gran ventaja de estas simulaciones es que el esfuerzo
humano se centra en la definición de características sencillas, que suelen ser más fáciles de detectar y formalizar que los aspectos a alto nivel que
requiere el primer tipo.

REDES NURONALES ARTIFICIALES


Neurona Artificial
Es un procesador que posee la capacidad limitada de calcular, en general, una suma ponderada de sus entradas y luego le aplica una función
de activación para obtener una señal que será transmitida a la próxima neurona. Estas neuronas artificiales se agrupan en capas o niveles y poseen un
alto grado de conectividad entre ellas, conectividad que es ponderada por los pesos. A través de un algoritmo de aprendizaje supervisado o no
supervisado, las redes neuronales artificiales ajustan su arquitectura y parámetros de manera de poder minimizar alguna función de error que ajuste a
los datos y capacidad de generalización.

Redes Neuronales Artificiales


Una red neuronal artificial (RNA) es un esquema de computación distribuida inspirada en la estructura del sistema nervioso de los seres
humanos. Consiste en simular las propiedades observadas en los sistemas neuronales biológicos a través de modelos matemáticos recreados mediante
mecanismos artificiales.
La arquitectura de una red neuronal es formada conectando múltiples procesadores elementales, siendo ésta un sistema adaptativo que
posee un algoritmo para ajustar sus pesos (parámetros libres) para alcanzar los requerimientos de desempeño del problema basado en muestras
representativas.
Por lo tanto una RNA es un sistema de computación distribuida caracterizada por:
1. Un conjunto de unidades elementales, cada una de las cuales posee bajas capacidades de procesamiento.
2. Una densa estructura interconectada usando enlaces ponderados.
3. Parámetros libres que deben ser ajustados para satisfacer los requerimientos de desempeño.
4. Un alto grado de paralelismo.

Las Redes Neuronales Artificiales son un método de resolver problemas, de forma individual o combinada con otros métodos, para aquellas
tareas de clasificación, identificación, diagnostico, optimización o predicción en las que el balance datos/conocimientos se inclina hacia los datos y
donde, adicionalmente, puede haber la necesidad de aprendizaje en tiempo de ejecución y de cierta tolerancia a fallos.
Una de las propiedades más importante de las redes neuronales artificiales es su capacidad a partir de un conjunto de patrones de
entrenamiento, es decir, es capaz de encontrar un modelo que ajuste los datos el proceso de aprendizaje también conocido como entrenamiento de la
red supervisado o no supervisado.

Ventajas de las Redes Neuronales


1. Aprendizaje tienen la habilidad de aprender mediante una capa que se llama etapa de aprendizaje.
2. Auto Organización crea una propia representación de la información en su interior.
3. Tolerancia a fallos debido a que almacena la información de forma redundante esta puede seguir respondiendo de manera aceptable aun si
se daña parcialmente.
4. Tiempo real su estructura el paralela por lo tanto al ser implementado en computadoras o dispositivos electrónicos especiales se pueden
tener respuestas en tiempo real.

Desventajas de las Redes Neuronales


1. Dificultad en la estimación de los parámetros adecuados de la red neuronal: Número de capas, número de neuronas por capas, función de
activación.
2. Elección de codificación para atributos categóricos.
3. Modelo de clasificación incomprensible.

SISTEMAS EXPERTOS

Los Sistemas Expertos, rama de la Inteligencia Artificial, son sistemas informáticos que simulan el proceso de aprendizaje, de memorización,
de razonamiento, de comunicación y de acción en consecuencia de un experto humano en cualquier rama de la ciencia.

Historia de los Sistemas Expertos


Sus inicios datan desde los años sesentas (60), donde se creía que bastaban unas pocas leyes de razonamiento junto con potentes
computador para producir resultados brillantes. Un intento en ese sentido fue el llevado a cabo por los investigadores Alan Newell y Herbert Simon que
desarrollaron un programa denominado GPS (General Problem Solver; solucionador general de problemas). Podía trabajar con criptoaritmética, con las
torres de Hanoi y con otros problemas similares. Lo que no podía hacer el GPS era resolver problemas del mundo real, tales como un diagnóstico médico.
Algunos investigadores decidieron entonces cambiar por completo el enfoque del problema restringiendo su ambición a un dominio específico e
intentando simular el razonamiento de un experto humano. En vez de dedicarse a computarizar la inteligencia general, se centraron en dominios de
conocimiento muy concretos. De esta manera nacieron los sistemas expertos.
A partir de 1965, un equipo dirigido por Edward Feigenbaum, comenzó a desarrollar sistemas expertos utilizando bases de conocimiento
definidas minuciosamente. En 1967 se construye DENDRAL, que se considera como el primer sistema experto. Se utilizaba para identificar estructuras
químicas moleculares a partir de su análisis espectrográfico.
Entre 1970 y 1980 se desarrolló MYCIN para consulta y diagnóstico de infecciones de la sangre. Este sistema introdujo nuevas características:
utilización de conocimiento impreciso para razonar y posibilidad de explicar el proceso de razonamiento. Lo más 26 importante es que funcionaba de
manera correcta, dando conclusiones análogas a las que un ser humano daría tras largos años de experiencia. En MYCIN aparecen claramente
diferenciados motor de inferencia y base de conocimientos. Al separar esas dos partes, se puede considerar el motor de inferencias aisladamente. Esto
da como resultado un sistema vacío o shell (concha). Así surgió EMYCIN (MYCIN Esencial) con el que se construyó SACON, utilizado para estructuras de
ingeniería, PUFF para estudiar la función pulmonar y GUIDON para elegir tratamientos terapéuticos.
En esa época se desarrollaron también: HERSAY, que intentaba identificar la palabra hablada, y PROSPECTOR, utilizado para hallar yacimientos
de minerales. De este último derivó el shell KAS (Knowledge Adquisition System). A partir de 1980 se ponen de moda los sistemas expertos, numerosas
empresas de alta tecnología investigan en este área de la inteligencia artificial, desarrollando sistemas expertos para su comercialización. Se llega a la
conclusión de que el éxito de un sistema experto depende casi exclusivamente de la calidad de su base de conocimiento. El inconveniente es que
codificar la pericia de un experto humano puede resultar difícil, largo y laborioso. Un ejemplo de sistema experto moderno es CASHVALUE, que evalúa
proyectos de inversión y VATIA, que asesora acerca del impuesto sobre el valor añadido o I.V.A.

Definición
Es una aplicación informática capaz de solucionar un conjunto de problemas que exigen un gran conocimiento sobre un determinado tema.
Un sistema experto es un conjunto de programas que, sobre una base de conocimientos, posee información de uno o más expertos en un área específica.
Se puede entender como una rama de la inteligencia artificial, donde el poder de resolución de un problema en un programa de computadora viene del
conocimiento de un dominio específico. Estos sistemas imitan las actividades de un humano para resolver problemas de distinta índole (no
necesariamente tiene que ser de inteligencia artificial). También se dice que un SE se basa en el conocimiento declarativo (hechos sobre objetos,
situaciones) y el conocimiento de control (información sobre el seguimiento de una acción).
Debido a esto en la actualidad se están mezclando diferentes técnicas o aplicaciones aprovechando las ventajas que cada una de estas ofrece
para poder tener empresas más seguras. Un ejemplo de estas técnicas sería los agentes que tienen la capacidad de negociar y navegar a través de
recursos en línea; y es por eso que en la actualidad juega un papel preponderante en los sistemas expertos.

Características
1. Explicar su razonamiento o decisiones sugeridas: la capacidad de explicar cómo se llegó a una decisión o solución.
2. Muestra un comportamiento "inteligente": al examinar un grupo de datos, un SE puede proponer nuevas ideas o métodos para la solución del
problema, o proporcionar asesoramiento en el trabajo para los trabajadores.
3. Obtiene conclusiones de relaciones complejas: evaluar relaciones complejas para llegar a conclusiones y solucionar problemas, por ejemplo:
un SE propuesto trabajará con un sistema de fabricación flexible para determinar la mejor utilización de las herramientas, y otro sugerirá los mejores
procedimientos de control de calidad.
4. Proporciona conocimientos acumulados: se puede usar para capturar conocimientos de humanos que de lo contrario podrían perderse.
Ejemplo es el SE denominado DELTA (Diesel Electronic Locomotive Troble-shooting Aid), desarrollado para conservar el conocimiento de David Smith,
único ingeniero competente para manejar muchas reparaciones extremadamente técnicas de esas máquinas, cuando llegó el momento de su jubilación.
5. Le hace frente a la incertidumbre: una de las características más importantes de un SE es su capacidad para enfrentar conocimientos
incompletos o inexactos en su totalidad. Mediante el uso de las probabilidades, las estadísticas y las heurísticas.

Funciones
La función de un sistemas experto es la de aportar soluciones a problemas, como si de humanos se tratara, es decir, capaz de mostrar
soluciones inteligentes. Es posible gracias a que al sistema lo crean con expertos (humanos), que intentas estructurar y formalizar conocimientos
poniéndolos a disposición del sistema, para que este pueda resolver una función dentro del ámbito del problemas, de igual forma que lo hubiera hecho
un experto acceder a los conocimientos adquiridos por experiencia es lo más difícil, ya que los expertos, al igual que otras personas, apenas lo reconocen
como tales. Son buscados con mucho esfuerzo y cuidado siendo descubiertos de uno en uno, poco a poco.

Componentes

1. Base de conocimientos: contiene el conocimiento de los hechos y las experiencias de los expertos en un dominio determinado.
2. Mecanismo de inferencia: puede simular la estrategia de solución de un experto.
3. Componente explicativo: explica al usuario la estrategia de solución encontrada y el porqué de las decisiones tomadas.
4. Interface de usuario: sirve para que este pueda realizar una consulta en un lenguaje lo más natural posibles.
5. Componente de adquisición: ofrece ayuda a la estructuración e implementación del conocimiento en la base de conocimientos.

Tipos
Principalmente existen tres tipos de sistemas expertos:
1. Basados en reglas: los sistemas basados en reglas trabajan mediante la aplicación de reglas, comparación de resultados y aplicación de las
nuevas reglas basadas en situación modificada. También pueden trabajar por inferencia lógica dirigida, bien empezando con una evidencia
inicial en una determinada situación y dirigiéndose hacia la obtención de una solución, o bien con hipótesis sobre las posibles soluciones y
volviendo hacia atrás para encontrar una evidencia existente (o una deducción de una evidencia existente) que apoye una hipótesis en
particular.
2. Basados en casos o CBR (Case Based Reasoning): es el proceso de solucionar nuevos problemas basándose en las soluciones de problemas
anteriores.
3. Basados en probabilidad: aplicando redes bayesiana, basadas en estadística y el teorema de Bayes.
Clasificación
1. Interpretación. infieren la descripción de situaciones por medio de sensores de datos.
2. Predicción. Infieren probables consecuencias de situaciones dadas.
3. Diagnóstico. Infieren las fallas de un sistema en base a los síntomas.
4. Control. Gobierna el comportamiento del sistema.

Ventajas
1. Permanencia. A diferencia de un experto humano un SE (sistema experto) no envejece, y por tanto no sufre pérdida de facultades con el paso
del tiempo.
2. Duplicación. Una vez programado un SE lo podemos duplicar infinidad de veces.
3. Rapidez. Un SE puede obtener información de una base de datos y realizar cálculos numéricos mucho más rápido que cualquier ser humano.
4. Bajo costo. A pesar de que el costo inicial pueda ser elevado, gracias a la capacidad de duplicación el coste finalmente es bajo.
5. Entornos peligrosos. Un SE puede trabajar en entornos peligrosos o dañinos para el ser humano.
6. Fiabilidad. Los SE no se ven afectados por condiciones externas, un humano sí (cansancio, presión, etc.).
7. Ayuda Académica.

Desventajas
1. Problemas esencialmente deterministas. Sistemas basados en reglas.
2. Problemas esencialmente estocásticos. Sistemas expertos probabilísticos.

Tareas que realiza un SE.


1. Monitorización: La monitorización es un caso particular de la interpretación, y consiste en la comparación continua de los valores de las
señales o datos de entrada y unos valores que actúan como criterios de normalidad o estándares. En el campo del mantenimiento predictivo
los Sistemas Expertos se utilizan fundamentalmente como herramientas de diagnóstico. Se trata de que el programa pueda determinar en
cada momento el estado de funcionamiento de sistemas complejos, anticipándose a los posibles incidentes que pudieran acontecer. Así,
usando un modelo computacional del razonamiento de un experto humano, proporciona los mismos resultados que alcanzaría dicho experto.
2. Diseño: es el proceso de especificar una descripción de un artefacto que satisface varias características desde un número de fuentes de
conocimiento. El diseño se concibe de distintas formas:

• El diseño en ingeniería es el uso de principios científicos, información técnica e imaginación en la definición de una estructura mecánica,
máquina o sistema que ejecute funciones específicas con el máximo de economía y eficiencia.

• El diseño industrial busca rectificar las omisiones de la ingeniería, es un intento consciente de traer forma y orden visual a la ingeniería de
hardware donde la tecnología no provee estas características.
Los SE en diseño ven este proceso como un problema de búsqueda de una solución óptima o adecuada. Las soluciones alternas pueden ser
conocidas de antemano o se pueden generar automáticamente probándose distintos diseños para verificar cuáles de ellos cumplen los requerimientos
solicitados por el usuario, ésta técnica es llamada “generación y prueba”, por lo tanto estos SE son llamados de selección. En áreas de aplicación, la
prueba se termina cuando se encuentra la primera solución; sin embargo, existen problemas más complejos en los que el objetivo es encontrar la
solución óptima.

1. Planificación: la planificación es la realización de planes o secuencias de acciones y es un caso particular de la simulación. Está compuesto por
un simulador y un sistema de control. El efecto final es la ordenación de un conjunto de acciones con el fin de conseguir un objetivo global.
Los problemas que presentan la planificación mediante SE son los siguientes:

• Existen consecuencias no previsibles, de forma que hay que explorar y explicar varios planes.

• Existen muchas consideraciones que deben ser valoradas o incluirles un factor de peso.
• Suelen existir interacciones entre planes de subobjetivos diversos, por lo que deben elegirse soluciones de compromiso.

• Trabajo frecuente con incertidumbre, pues la mayoría de los datos con los que se trabaja son más o menos probables pero no seguros.

• Es necesario hacer uso de fuentes diversas tales como bases de datos.

2. Control: un sistema de control participa en la realización de las tareas de interpretación, diagnóstico y reparación de forma secuencial. Con
ello se consigue conducir o guiar un proceso o sistema. Los sistemas de control son complejos debido al número de funciones que deben
manejar y el gran número de factores que deben considerar; esta complejidad creciente es otra de las razones que apuntan al uso del
conocimiento, y por tanto de los SE.
Cabe aclarar que los sistemas de control pueden ser en lazo abierto, si en el mismo la realimentación o el paso de un proceso a otro lo realiza
el operador, o en lazo cerrado si no tiene que intervenir el operador en ninguna parte del mismo. Reparación, correcta o terapia.
La reparación, corrección, terapia o tratamiento consiste en la proposición de las acciones correctoras necesarias para la resolución de un
problema. Los SE en reparación tienen que cumplir diversos objetivos, como son: Reparación lo más rápida y económicamente posible. Orden
de las reparaciones cuando hay que realizar varias. Evitar los efectos secundarios de la reparación, es decir la aparición de nuevas averías por
la reparación.

3. Simulación: la simulación es una técnica que consistente en crear modelos basados en hechos, observaciones e interpretaciones sobre la
computadora, a fin de estudiar el comportamiento de los mismos mediante la observación de las salidas para un conjunto de entradas. Las
técnicas tradicionales de simulación requieren modelos matemáticos y lógicos, que describen el comportamiento del sistema bajo estudio.
El empleo de los SE para la simulación viene motivado por la principal característica de los SE, que es su capacidad para la simulación del
comportamiento de un experto humano, que es un proceso complejo. En la aplicación de los SE para simulación hay que diferenciar cinco
configuraciones posibles:
• Un SE puede disponer de un simulador con el fin de comprobar las soluciones y en su caso rectificar el proceso que sigue.
• Un sistema de simulación puede contener como parte del mismo a un SE y por lo tanto el SE no tiene que ser necesariamente de
simulación.
• Un SE puede controlar un proceso de simulación, es decir que el modelo está en la base de conocimiento del SE y su evolución es
función de la base de hechos, la base de conocimientos y el motor de inferencia, y no de un conjunto de ecuaciones aritmético –
lógicas.
• Un SE puede utilizarse como consejero del usuario y del sistema de simulación.
• Un SE puede utilizarse como máscara o sistema frontal de un simulador con el fin de que el usuario reciba explicación y
justificación de los procesos.

4. Instrucción: un sistema de instrucción realizara un seguimiento del proceso de aprendizaje. El sistema detecta errores ya sea de una persona
con conocimientos e identifica el remedio adecuado, es decir, desarrolla un plan de enseñanza que facilita el proceso de aprendizaje y la
corrección de errores.

5. Recuperación de información: los Sistemas Expertos, con su capacidad para combinar información y reglas de actuación, han sido vistos como
una de las posibles soluciones al tratamiento y recuperación de información, no sólo documental. La década de 1980 fue prolija en
investigación y publicaciones sobre experimentos de este orden, interés que continua en la actualidad.
Lo que diferencia a estos sistemas de un sistema tradicional de recuperación de información es que éstos últimos sólo son capaces de recuperar lo
que existe explícitamente, mientras que un Sistema Experto debe ser capaz de generar información no explícita, razonando con los elementos que se le
dan. Pero la capacidad de los SE en el ámbito de la recuperación de la información no se limita a la recuperación. Pueden utilizarse para ayudar al
usuario, en selección de recursos de información, en filtrado de respuestas, etc. Un SE puede actuar como un intermediario inteligente que guía y apoya
el trabajo del usuario final.

Sistemas Expertos destacados.


1. DENDRAL. Es capaz de calcular o descubrir hechos relativos a las estructuras moleculares a partir de unos datos químicos sin elaborar.
2. MYCIN. el más famoso de todos, diagnostica infecciones en la sangre y meningitis y además sugiere el tratamiento que se debe seguir en cada
caso.
3. PUFF. el hermano menor de MYCIN, que diagnostica y trata enfermedades del pulmón.
4. MOLGENO. ayuda a los biólogos que trabajan en el campo del DNA y la ingeniería genética.
5. PROGRAMMERS APPRENTICE. Se trata de un sistema que ayuda a la escritura de programas.
6. EURISKO. Sistema experto capaz de aprender a medida que funciona, que crea circuitos micro-eléctricos tridimensionales.
7. GENESIS. Permite a los científicos planificar y simular experimentos en el campo de la unión de genes.
8. EXPERT SYSTEMAS TO COMBAT INETRNATIONAL TERRORRISM. ayuda a los expertos a la escritura de programas.
9. TWIRL. Simulaciones de guerras completas y guía de mejores acciones posibles a realizar, en casi todas las situaciones.
10. RI. Programa utilizado para el descubrimiento de yacimientos petrolíferos bajo aguas marinas.

ALGORITMOS GENÉTICOS

Un algoritmo genético es un método de búsqueda dirigida basada en probabilidad. Bajo una condición muy débil (que el algoritmo mantenga
elitismo, es decir, guarde siempre al mejor elemento de la población sin hacerle ningún cambio) se puede demostrar que el algoritmo converge en
probabilidad al óptimo. En otras palabras, al aumentar el número de iteraciones, la probabilidad de tener el óptimo en la población tiende a 1 (uno).

Reseña Histórica
Los algoritmos genéticos (AG), fueron inventados en 1975 por John Holland, de la Universidad de Michigan. Los AG son, simplificando,
algoritmos de optimización, es decir, tratan de encontrar la mejor solución a un problema dado entre un conjunto de soluciones posibles. Los
mecanismos de los que se valen los AG para llevar a cabo esa búsqueda pueden verse como una metáfora de los procesos de evolución biológica.
John Holland desde pequeño, se preguntaba cómo logra la naturaleza, crear seres cada vez más perfectos. No sabía la respuesta, pero tenía
una cierta idea de cómo hallarla: tratando de hacer pequeños modelos de la naturaleza, que tuvieran alguna de sus características, y ver cómo
funcionaban, para luego extrapolar sus conclusiones a la totalidad.
Fue a principios de los 60, en la Universidad de Michigan en Ann Arbor, donde, dentro del grupo Logic of Computers, sus ideas comenzaron a
desarrollarse y a dar frutos. Y fue, además, leyendo un libro escrito por un biólogo evolucionista, R. A. Fisher, titulado La teoría genética de la selección
natural, como comenzó a descubrir los medios de llevar a cabo sus propósitos de comprensión de la naturaleza. De ese libro aprendió que la evolución
era una forma de adaptación más potente que el simple aprendizaje, y tomó la decisión de aplicar estas ideas para desarrollar programas bien adaptados
para un fin determinado.
En esa universidad, Holland impartía un curso titulado Teoría de sistemas adaptativos. Dentro de este curso, y con una participación activa por
parte de sus estudiantes, fue donde se crearon las ideas que más tarde se convertirían en los AG.
Por tanto, cuando Holland se enfrentó a los AG, los objetivos de su investigación fueron dos:

• Imitar los procesos adaptativos de los sistemas naturales, y


• Diseñar sistemas artificiales (normalmente programas) que retengan los mecanismos importantes de los sistemas naturales.

Definición
Los algoritmos genéticos son un resultado de los avances de la computación y de la genética. Son herramientas de la inteligencia artificial
porque aprenden simulando parcialmente los mecanismos de la evolución. Su característica principal es su eficacia para optimizar casi cualquier
problema.
Los algoritmos genéticos son parte de la Computación Evolutiva, que simula el proceso de selección natural desde un punto de vista
neodarwiniano: la diferenciación de las especies dada por pequeños cambios accidentales que, vistos después de mucho tiempo, parecen tener un
propósito específico. Darwin analizó las características de los antecesores de las especies e infirió que se trataba de un proceso evolutivo. En esa época
no se conocía el mecanismo de la herencia desde el punto de vista molecular. Este se descubrió mucho después, a mediados del siglo 20, cuando Watson
y Crick encontraron la forma helicoidal del DNA. Después de esto, se entendió mejor que los cambios ocurrían porque en el proceso de copia de la
información -contenida en los núcleos de las células- a veces hay errores. Unos se deben a que el mecanismo de copia no es perfecto y otros a que hay
agentes exógenos que producen cambios en los genes. La probabilidad de falla en el proceso de copia de la información genética es bajísima; lo que
llama la atención no es que haya errores sino que sean tan pocos.

Funcionamiento.
Los algoritmos genéticos establecen una analogía entre el conjunto de soluciones de un problema, llamado fenotipo, y el conjunto de
individuos de una población natural, codificando la información de cada solución en una cadena, generalmente binaria, llamada cromosoma. Los
símbolos que forman la cadena son llamados los genes. Cuando la representación de los cromosomas se hace con cadenas de dígitos binarios se le
conoce como genotipo. Los cromosomas evolucionan a través de iteraciones, llamadas generaciones. En cada generación, los cromosomas son evaluados
usando alguna medida de aptitud. Las siguientes generaciones (nuevos cromosomas), llamada descendencia, se forman utilizando dos operadores
genéticos, de sobrecruzamiento y de mutación.

Uso
Los algoritmos genéticos son de probada eficacia en caso de querer calcular funciones no derivables (o de derivación muy compleja) aunque
su uso es posible con cualquier función.
Deben tenerse en cuenta también las siguientes consideraciones:
• Si la función a optimizar tiene muchos máximos/mínimos locales se requerirán más iteraciones del algoritmo para asegurar el
máximo/mínimo global.
• Si la función a optimizar contiene varios puntos muy cercanos en valor al óptimo, solamente podemos asegurar que encontraremos uno
de ellos (no necesariamente el óptimo).

Funcionamiento
Un algoritmo genético puede presentar diversas variaciones, dependiendo de cómo se aplican los operadores genéticos (cruzamiento, mutación),
de cómo se realiza la selección y de cómo se decide el reemplazo de los individuos para formar la nueva población. En general, el pseudocódigo consiste
de los siguientes pasos:

• Inicialización: Se genera aleatoriamente la población inicial, que está constituida por un conjunto de cromosomas los cuales representan las
posibles soluciones del problema. En caso de no hacerlo aleatoriamente, es importante garantizar que dentro de la población inicial, se tenga
la diversidad estructural de estas soluciones para tener una representación de la mayor parte de la población posible o al menos evitar la
convergencia prematura.

• Evaluación: A cada uno de los cromosomas de esta población se aplicará la función de aptitud para saber qué tan "buena" es la solución que
se está codificando.

• Condición de término. El AG se deberá detener cuando se alcance la solución óptima, pero ésta generalmente se desconoce, por lo que se
deben utilizar otros criterios de detención. Normalmente se usan dos criterios: correr el AG un número máximo de iteraciones (generaciones)
o detenerlo cuando no haya cambios en la población. Mientras no se cumpla la condición de término se hace lo siguiente:

• Selección. Después de saber la aptitud de cada cromosoma se procede a elegir los cromosomas que serán cruzados en la siguiente
generación. Los cromosomas con mejor aptitud tienen mayor probabilidad de ser seleccionados.

• Sobrecruzamiento. El cruzamiento es el principal operador genético, representa la reproducción sexual, opera sobre dos
cromosomas a la vez para generar dos descendientes donde se combinan las características de ambos cromosomas padres.

• Mutación. Modifica al azar parte del cromosoma de los individuos, y permite alcanzar zonas del espacio de búsqueda que no
estaban cubiertas por los individuos de la población actual.

• Reemplazo. Una vez aplicados los operadores genéticos, se seleccionan los mejores individuos para conformar la población de la
generación siguiente.
Ventajas

• Son intrínsecamente paralelos. La mayoría de los otros algoritmos son en serie y sólo pueden explorar el espacio de soluciones hacia una
solución en una dirección al mismo tiempo, y si la solución que descubren resulta subóptimas, no
no se puede hacer otra cosa que abandonar
todo el trabajo hecho y empezar de nuevo. Sin embargo, ya que los algoritmos genéticos tienen descendencia múltiple, pueden explorar
e el
espacio de soluciones en múltiples direcciones a la vez. Si un camino resulta ser
ser un callejón sin salida, pueden eliminarlo fácilmente y
continuar el trabajo en avenidas más prometedoras, dándoles una mayor probabilidad en cada ejecución de encontrar la solución.
solución

• Debido al paralelismo que les permite evaluar implícitamente muchos esquemas


esquemas a la vez, los algoritmos genéticos funcionan particularmente
bien resolviendo problemas cuyo espacio de soluciones potenciales es realmente grande, como para hacer una búsqueda exhaustiva
exhaustiv en un
tiempo razonable.

• Usan operadores probabilístico, en vez de los típicos operadores determinísticos de las otras técnicas.

Desventajas
• Al crear un algoritmo genético es definir una representación del problema. El lenguaje utilizado para especificar soluciones candidatas debe
ser robusto; es decir, debe ser capaz de tolerar cambios aleatorios que no produzcan constantemente errores fatales o resultados sin sentido.
• Pueden tardar mucho en converger, o no converger en absoluto, dependiendo en cierta medida de los parámetros que se utilicen tamaño de
la población,
n, número de generaciones, etc.
• Además de elegir bien la función objetivo, también deben elegirse cuidadosamente los otros parámetros (el tamaño de la poblac
población, el ritmo
de mutación y cruzamiento, el tipo y fuerza de la selección). Si el tamaño de la población
población es demasiado pequeño, puede que el algoritmo
genético no explore suficientemente el espacio de soluciones para encontrar buenas soluciones consistentemente. Si el ritmo d
de cambio
genético es demasiado alto o el sistema de selección se escoge inadecuadamente,
inadecuadamente, puede alterarse el desarrollo de 40 esquemas beneficiosos
y la población puede entrar en catástrofe de errores, al cambiar demasiado rápido para que la selección llegue a producir con
convergencia.

Diferencias con los demás métodos tradicionales de búsqueda y optimización


Los Algoritmos Genéticos difieren de los métodos tradicionales de búsqueda y optimización, en cuatro cuestiones esenciales:

• Trabajan con un código del conjunto de parámetros, no con el conjunto mismo (necesitan que el conjunto de parámetros
p del problema de
optimización esté codificado en cadenas finitas sobre un determinado alfabeto). Por trabajar a nivel de código, y no con las funciones y sus
variables de control, como los otros métodos, son más difíciles de engañar.
• Buscan una población de puntos, no un único punto. Manteniendo una población de puntos muéstrales bien adaptados, se reduce la
probabilidad de caer en una cima falsa.
• Emplean la función objetivo, no necesitan derivadas ni otra información complementaria, tan difícil a veces de conseguir. De este modo ganan
en eficiencia y en generalidad.
• Se valen de reglas de transiciones estocásticas, no deterministas. Los Algoritmos Genéticos se valen de operadores aleatorios para guiar la
búsqueda de los mejores puntos; puede parecer extraño, pero la Naturaleza está llena de precedentes al respecto.

Aplicaciones de los Algoritmos Genéticos


• Problema del viajante. También conocido como problema del viajante de comercio o por sus siglas en inglés-TSP, es uno de los problemas
más famosos en el campo de la optimización combinatoria computacional. A pesar de la aparente sencillez de su planteamiento, el TSP es uno
de los más complejos de resolver. Encontrar un recorrido de longitud mínima para un viajante que tiene que visitar varias ciudades y volver al
punto de partida, conocida la distancia existente entre cada dos ciudades.
• Aplicación de Algoritmos Genéticos al Dilema del Prisionero Iterado. El dilema del prisionero es un problema fundamental de la teoría de
juegos que muestra que dos personas pueden no cooperar incluso si en ello va el interés de ambas.
• Aprendizaje de reglas de Lógica difusa.
• En Teoría de juegos, resolución de equilibrios. Es un área de la matemática aplicada que utiliza modelos para estudiar interacciones en
estructuras formalizadas de incentivos (los llamados juegos) y llevar a cabo procesos de decisión.
• Construcción de árboles filogenéticos.
• Ecología. En la modelización de fenómenos ecológicos tales como las carreras de armamento biológico, la coevolución de parásito-huésped,
la simbiosis, y el flujo de recursos.
• Evolución y aprendizaje. Los Algoritmos Genéticos se han utilizado en el estudio de las relaciones entre el aprendizaje individual y la
evolución de la especie.
• Programación automática. Los Algoritmos Genéticos se han empleado para desarrollar programas para tareas específicas, y para diseñar
otras estructuras computacionales tales como el autómata celular, y las redes de clasificación.

Lógica Difusa

La lógica difusa es una rama de la inteligencia artificial que se funda en el concepto "Todo es cuestión de grado" lo cual permite manejar
información vaga o de difícil especificación si quisiéramos hacer cambiar con esta información el funcionamiento o el estado de un sistema específico. Es
entonces posible con la lógica borrosa gobernar un sistema por medio de reglas de 'sentido común' las cuales se refieren a cantidades indefinidas.
Las reglas involucradas en un sistema borroso, pueden ser aprendidas con sistemas adaptativos que aprenden al ' observar ' como operan las
personas los dispositivos reales, o estas reglas pueden también ser formuladas por un experto humano. En general la lógica borrosa se aplica tanto a
sistemas de control como para modelar cualquier sistema continuo de ingeniería, física, biología o economía.

Concepto
• En Psicología: Resolución de problemas que implica cierto grado de inferencia e intuición para lograr la conclusión propia; vista como una
distinción crucial entre la inteligencia humana y la mecánica.
• En Inteligencia Artificial: Método de razonamiento de maquina similar al pensamiento humano, que puede procesar información incompleta o
incierta, característico de muchos sistemas expertos.
La Lógica Fuzzy o Difusa, es una lógica basada en la teoría de conjuntos que posibilita imitar el comportamiento de la lógica humana. La facilidad
que esto constituye alumbrara los próximos años espectaculares mejoras técnicas en los sistemas de control de nuestra sociedad.
El término "difuso" procede de la palabra inglesa " fuzz" que sirve para denominar la pelusa que recubre el cuerpo de los polluelos al poco de salir
del huevo. Este término inglés significa "confuso, borroso, indefinido o desenfocado" Este término se traduce por " flou" en francés y "aimai" en japonés.
Aunque la teoría de conjuntos difusos presente cierta complejidad, el concepto básico es fácilmente comprensible.

Funcionamiento
La idea de modelar una lógica de esta forma es emular un comportamiento de lógica humana por sobre un modelo matemático
determinístico y certero.
El hecho que ahora se asocie un valor de verdad a una distribución de probabilidades, implica que no hay certeza sobre lo que se entendía
previamente como “asignación de verdad". Se agrega incertidumbre a la lógica.
Como consecuencia además, es posible representar información que es ambigua, vaga o imprecisa.
Así entonces, veamos algunos ejemplos que son modelables bajo Lógica Difusa:
• Hoy está soleado.
• La tina está llena.
• Juan es gordo.
Pero... esas afirmaciones parecieran ser de una lógica de tipo booleana...!?
Mmmm... Sí, pero... Veámoslo de la siguiente forma:
• Hoy está soleado.

Esto puede ser cierto o falso, pero... supongamos que hay unas cuantas nubes en el cielo. Se podrá indicar algo del estilo como que está soleado en
un 70%? O si está totalmente nublado y lloviendo está soleado en un 0%? Evidentemente, si no hay una nube en el cielo se supone la afirmación cierta
(100%).

La tina está llena.


Y... cuán llena está? Puede estar llena al 10%? Al 50%?

-Juan es gordo.
Gordo es un término que es subjetivo. Además, la verdad de la afirmación sigue estando de acuerdo a la parcialidad de cuán gordo está.

Así entonces, bajo la Lógica Difusa, se definen los valores de valor como un rango que se sitúa en el rango [0; 1] y tal que:

• 0 indica la falsedad de una afirmación


• 1 indica la veracidad de una afirmación
• x pertenece a [0; 1] indica que la afirmación es x% cierta

Es decir, se indica un “grado de veracidad". Ojo, no se debe confundir con una probabilidad, sino que es el grado de pertenencia a un conjunto
“definido vagamente".
Bajo éste paradigma de lógica, se admiten “cuantificadores" de la forma: Bastante, más o menos, medianamente, casi, poco, etc.
Veamos el siguiente ejemplo para ilustrar el concepto de pertenencia a conjuntos y de cuantificación:

Observamos en la imagen que hay tres funciones o conjuntos:


• Frio
• Tibio
• Caliente
La línea negra vertical indica una “asignación". En dicha asignación, el valor del conjunto Frio es alto (bastante frio), pero no total, se podría
asociar un valor de 0,8 por ejemplo. El Tibio es bajo (poco templado), pero no es cero, por lo que se podría dar un valor de 0,2. Por último vemos el
conjunto Caliente que si es cero (no está caliente).
Además, en Lógica Difusa, se pueden dar significados a lo que serían variables lingüísticas. Para ejemplificar este concepto, tomemos el caso
de la variable velocidad (X). Supongamos que algunos valores que puede tomar dicha variable son rápidos y lentos. Además, si a rápido se le asocia el
valor 0,8 y a lento el valor 0,2; se puede interpretar muy rápido como 0,8 * 0,8 = 0,64 y no muy rápido como (1 – 0,64) = 0,36. En éste ejemplo, se define
el operador muy como X*X. No obstante, la definición es flexible, dependiendo del escenario.
El razonamiento en Lógica Difusa puede definir operadores difusos como el que se mostró en el ejemplo anterior (muy) sobre conjuntos
difusos (como en el ejemplo de la temperatura).
El problema con éste enfoque es que quizás el operador no se conozca o no esté definido. En consecuencia, se usan reglas SI/ENTONCES
(IF/THEN) o bien construcciones equivalentes.
Estas reglas se expresan de la forma: SI variable ES conjunto ENTONCES acción

Un ejemplo de cómo hacer uso de esa forma de razonamiento bajo el contexto de la velocidad de un auto puede ser:
• SI velocidad ES muy lenta ENTONCES acelerar
• SI velocidad ES normal ENTONCES mantener velocidad
• SI velocidad ES rápida ENTONCES desacelerar

Es importante notar que no hay “DE LO CONTRARIO" (ELSE) puesto que como vimos en el ejemplo de la temperatura, pueda ser que la
asignación indique que la variable pueda pertenecer a varios conjuntos en diversos grados. Asimismo, los operadores AND, OR y NOT de la lógica
booleana.
Típicamente se definen como el mínimo, máximo y complemento respectivamente. Al definirse los operadores de _esta manera, se llaman
operadores de Zadeh, en honor a su creador. Entonces, para variables X e Y:
• NOT(X) = (1 - valor(X))
• AND(X, Y) = MIN (valor(X), valor (Y))
• OR(X, Y) = MAX (valor(X), valor (Y))

Aplicación de la lógica difusa


Se ha de aclarar que la Lógica difusa no es una tecnología de futura aplicación, si no que existen ya en el mercado muchos productos basados
en esta tecnología, habiéndose vendido ya cientos de millones de Euros de estos productos. Muchas de estas aplicaciones de la Lógica difusa están
siendo desarrolladas y aplicadas en países como Japón y Alemania. Entre los productos más comunes que llegan al ciudadano de a pies basados en la
Lógica difusa se pueden citar los siguientes:
• Lavadoras inteligentes que regulan el uso del agua y el detergente en función del nivel de suciedad de la ropa.
• El metro Senday en Japón.
• Medidores de presión sanguínea.
• Aspiradoras, Ascensores, neveras, microondas... y múltiples electrodomésticos.
• Cámaras de video y fotográficas con auto foco.
• Aire acondicionado inteligente, al cual se le indica si uno tiene calor o mucho calor y ya ajusta la temperatura en función de la actual.

La aplicación de la Lógica difusa a un nivel comercial, ha hecho practicas la teoría en ella expuesta, demostrando los resultados de su uso, aun así
hoy en día gran parte de la comunidad científica mira con cierto recelo las teorías en ella expuestas.
En la actualidad gran cantidad de patentes de productos se basa en la Lógica difusa, siendo esta en origen una idea de libre aplicación que ha
resultado de gran utilidad para el desarrollo de tecnologías comerciales propietarias.
En la actualidad estas aplicaciones no se están llevando a cabo de forma efectiva en Estados Unidos, muchas veces motivadas por el impacto del
propio nombre la tecnología “fuzzy”, el cual podría generar rechazo en el público en general.
Otras Aplicaciones:
• Control luminosidad.
• Control de humedad.
• Control de temperatura.
• Sistemas de reconocimiento
• Sistemas basados en Inteligencia Artificial

Ventajas
• La principal ventaja de este sistema de control es su facilidad de implementación.
• Este tipo de sistemas están dando muy buenos resultados en procesos no lineales y de difícil modelización.
• El modo de funcionamiento es similar al comportamiento humano.
• Es una forma rápida y económica de resolver un problema.
• No se necesita conocer el modelo matemático que rige su funcionamiento.

Desventajas
• En las redes neuronales se precisa de un tiempo de aprendizaje para obtener los mejores resultados en la salida. (Al igual que ocurre con los
humanos).
• Ante un problema que tiene solución mediante un modelo matemático, obtenemos peores resultados usando Lógica Difusa.

Anda mungkin juga menyukai