Vous êtes sur la page 1sur 42

UNIVERSIDAD DEL ISTMO

LI CENCI ATURA EN I NFORMTI CA



FUNDAMENTOS DE INTELIGENCIA ARTIFICIAL






APUNTES DEL CURSO:
FUNDAMENTOS DE INTELIGENCIA ARTIFICIAL




PROFESOR:
M.C. Luis David Huerta Hernndez




GRUPO: 908



Ciudad Ixtepec Oaxaca; a 16 de Febrero del 2014

2

Contenido
1. HISTORIA DE LA INTELIGENCIA ARTIFICIAL Y SUS APLICACIONES ............................................... 5
1.1 Introduccin ........................................................................................................................ 5
1.2 Definiciones ......................................................................................................................... 5
1.3 Historia ................................................................................................................................ 6
1.4 Nacimiento de la Inteligencia Artificial ............................................................................... 6
1.5 Aportaciones iniciales ......................................................................................................... 7
1.6 Caractersticas de la inteligencia Artificial .......................................................................... 7
1.7 Realidad de la inteligencia Artificial .................................................................................... 8
1.7.1 Sistemas basados en conocimiento ........................................................................... 8
1.7.2 Inteligencia artificial en la industria ............................................................................ 8
1.7.3 Inteligencia artificial y la ciencia .................................................................................. 8
1.8 Aplicaciones ........................................................................................................................ 9
1.9 Relacin de la Inteligencia Artificial con otras ciencias ....................................................... 9
1.10 Ramas de la Inteligencia Artificial .................................................................................... 10
2. SISTEMAS EXPERTOS ................................................................................................................. 11
2.1 Introduccin ...................................................................................................................... 11
2.2 Qu es un sistema experto? ............................................................................................ 11
2.2.1 Definicin .................................................................................................................. 11
2.2.2 Tipos de sistemas expertos ....................................................................................... 12
2.2.3 Caractersticas ........................................................................................................... 12
2.2.4 Componentes de un sistema experto ....................................................................... 12
2.3 Ventajas ............................................................................................................................. 14
2.4 Requerimientos de un sistema experto ............................................................................ 14
2.4.1 El experto .................................................................................................................. 15
2.4.2 El ingeniero de conocimiento .................................................................................... 15
2.4.3 El usuario ................................................................................................................... 15
2.5 Aplicaciones de los sistemas expertos .............................................................................. 15
2.5.1 Campos de accin...................................................................................................... 15
2.5.2 Ejemplos de aplicacin ............................................................................................. 15
3. PROGRAMACIN LGICA (PROLOG) ......................................................................................... 17
3.1 Lenguaje de programacin ................................................................................................ 17
3

3.2 Paradigmas de programacin ........................................................................................... 17
3.3 Historia de la programacin lgica .................................................................................... 17
3.4 Programacin lgica .......................................................................................................... 18
3.5 Fundamento de la programacin lgica ........................................................................... 19
3.6 Caractersticas de la programacin lgica ......................................................................... 19
3.7 Lenguajes de programacin lgica ................................................................................... 19
3.8 Campos de aplicacin ........................................................................................................ 20
4. LGICA Y CLCULO PROPOSICIONAL ........................................................................................ 21
4.1 Introduccin ...................................................................................................................... 21
4.2 Clculo o lgica proposicional .......................................................................................... 21
4.3 Lenguaje del clculo proposicional ................................................................................... 22
4.4 Smbolos del lenguaje proposicional ................................................................................ 22
4.5 Reglas sintcticas .............................................................................................................. 23
4.6 Reglas semnticas ............................................................................................................. 23
4.6.1 Definicin de los consecutivos ......................................................................................... 23
4.6.2 Negacin .................................................................................................................... 24
4.6.3 Conjuncin................................................................................................................. 24
4.6.4 Disyuncin ................................................................................................................. 24
4.6.5 Condicional ................................................................................................................ 25
4.6.6 Bi condicional ........................................................................................................... 25
5. REDES NEURONALES ARTIFICIALES ........................................................................................... 26
5.1 Introduccin ...................................................................................................................... 26
5.2 Funcionamiento ................................................................................................................ 26
5.3 Propiedades ....................................................................................................................... 26
5.3.1 Funcin de propagacin ............................................................................................ 27
5.3.2 Funcin de activacin ................................................................................................ 27
5.3.3 Funcin de transferencia ........................................................................................... 27
5.4 Diseo y programacin de una RNA ................................................................................. 27
5.5 Ventajas ............................................................................................................................. 27
5.6 Aplicaciones ....................................................................................................................... 28
5.7 Ejemplos ............................................................................................................................ 28
6. LGICA DIFUSA .......................................................................................................................... 30
4

6.1 Introduccin ...................................................................................................................... 30
6.2 Historia .............................................................................................................................. 30
6.3 Definicin .......................................................................................................................... 31
6.4 Qu es la lgica difusa? ................................................................................................... 32
6.5 Conjuntos difusos .............................................................................................................. 32
6.6 Operaciones entre conjuntos difusos ............................................................................... 33
6.6.1 Interseccin ............................................................................................................... 33
6.6.2 Unin ......................................................................................................................... 34
6.6.3 Complemento ............................................................................................................ 34
6.7 Sistema de lgica difusa Mamdani .................................................................................... 35
7. ALGORITMOS GENTICOS ......................................................................................................... 37
7.1 Introduccin ...................................................................................................................... 37
7.2 Definiciones ....................................................................................................................... 37
7.3 El algoritmo gentico simple ............................................................................................. 38
7.4 Problemtica ..................................................................................................................... 39
7.5 Codificacin ....................................................................................................................... 40
7.5.1 Fenotipo .................................................................................................................... 40
7.5.2 Funcin de adaptacin .............................................................................................. 40
7.5.3 Fase reproductiva ...................................................................................................... 40
7.5.4 Operador de cruce .................................................................................................... 41
7.5.5 Operador de mutacin .............................................................................................. 41
7.6 Ventajas y desventajas ...................................................................................................... 41
7. 7 Limitaciones de los algoritmos genticos ......................................................................... 42










5

1. HISTORIA DE LA INTELIGENCIA ARTIFICIAL Y SUS APLICACIONES
1.1 Introduccin
Hoy en da la Inteligencia Artificial es una combinacin de diferentes reas como son la
ciencia de las computadoras, la fisiologa, filosofa, entre otras. Por lo general esta ciencia es un
amplia que rene varios campos (robtica, sistemas expertos), todos los cuales tienen en comn la
creacin de mquinas que pueden pensar por s mismas.
La de idea construir una mquina que pueda ejecutar tareas percibidas como requerimientos
de inteligencia humana es un atractivo. Las tareas que han sido estudiadas desde este punto de
vista incluyen juegos, traduccin de idiomas, comprensin de idiomas, diagnstico de fallas,
robtica, suministro de asesora experta en diversos temas.
Es as como los sistemas de administracin de base de datos cada vez ms sofisticados, la
estructura de datos y el desarrollo de algoritmos de insercin, borrado y locacin de datos, as
como el intento de crear mquinas capaces de realizar tareas que son pensadas como tpicas del
mbito de la inteligencia humana, acuaron el trmino Inteligencia Artificial en 1956.
1.2 Definiciones
De acuerdo con la definicin de Inteligencia Artificial, existen mltiples conceptos, entre los
cuales han venido cambiando de acuerdo a las aportaciones y aplicaciones que vienen surgiendo
da con da. Y esto es de acuerdo a cada uno de los actores que se enlistan a continuacin.
La Inteligencia Artificial trata de conseguir que los ordenadores simulen en cierta manera
la inteligencia humana. Se acude a sus tcnicas cuando es necesario incorporar en un
sistema informtico, conocimiento o caractersticas propias del ser humano.
La inteligencia artificial (IA) es un rea multidisciplinaria que, a travs de ciencias, tales
como la informtica, la lgica y la filosofa, estudia la creacin y diseo de entidades
capaces de razonar por si mismas utilizando como paradigma la inteligencia humana.
Reproducir algunas propiedades de los seres vivos.
Bellman (1978). Actividades del proceso de pensamiento humano
Haugeland (1985). Hacer que las computadoras piensen
Charniak y Mc Dermont (1985). Es el estudio de facultades mentales en el uso de
computadoras
Kurzweil (1990). Desarrollar mquinas que desempeen actividades que cuando se
realizan por personas, requieren de inteligencia.
Rich y Knight (1991). Estudios para lograr que las computadoras realicen tareas que por el
momento los humanos hacen mejor
Winston (1992). El estudio de los clculos que hacen posible, percibir, razonar y actuar
Pool et. al. (1998). La inteligencia computacional, es el estudio del diseo de agentes
inteligentes
Nilson (1998). Relacionada con el estudio de conductas inteligentes en artefactos sntesis y
anlisis de agentes computacionales que actan inteligentemente
6

1.3 Historia
Uno de los primeros avances y aportes que se han dado a lo largo de la historia de la Inteligencia
Artificial son algunas evidencias del modelado de ciertas entidades como son:
Egipto (2000 a.c.). Pinturas rupestres que fueron dadas con las Figuras articuladas.
Etiopa (1500 a.c) Estatua que emite sonidos con los rayos del sol.
China Chou (1000 a.c).
o Carro que mira al sur
o King-Su Tse (500 a.c.) urraca voladora, caballo que saltaba
o Orquesta mecnica de muecos ( 206 a.c)
Hern de Alejandra (10 d.c. - 70 d.c.)
o Molino de viento
o Eolpila o mquina de vapor
o Primer libro de robtica de la historia Autmatas
Leonardo Da Vinci (1495). Diseo de humanoide
Thomas Hobbes (1588- 1679). Abuelo de la IA Pensar es un discurso mental, formado por
operaciones simblicas, exactamente como hablar en voz alta o trabajar una respuesta
con pluma y papel.
Pascal (XVII). Mquina calculadora
Bacon (XVII). Mtodo inductivo. Bases para RLM
Rev. industrial (XVII). Autmatas miniaturizados
Siglo (XIX). Relojes personales, mquinas, juguetes
Ramn y Cajal y Golgi (1906): Estructura del Cerebro
Warren McCulloch y Walter Pitts (1943)
o Primer trabajo de IA relacionados con neuronas.
o Partieron de: Fisiologa de las Neuronas y Lgica proposicional de Russell y
Whitehead Teora de computacin de Turing
Donald Hebb (1949): Regla para actualizar la intensidad de conexiones entre neuronas
Alan Turing (1950): Escribe artculo Computing Machinery an Intelligence. Prueba de
Turing
o Aprendizaje automtico
o Algoritmos genricos
o Aprendizaje por esfuerzo
Marvin Minsky y Dean Edmons (1951): Computador basado en red neuronal (SNARC).
1.4 Nacimiento de la Inteligencia Artificial
John McCarthy, Minsky, Claude Shannon y Nathaniel Rochester (1956): Taller de teora de
autmatas, redes neuronales, estudio de inteligencia.
Trenchard More (Princeton) Arthur Samuel (IBM) Rny Soloirionofl' y Oliver Sclfridge (MIT)
Hallen Newell y Herbert Simon (Carniage Tech): Programa de razonamiento Terico Lgico
(TL) Hizo demostracin de un teorema del trabajo Principia Matemtica de Russell y
Whitehead ms corto que el de ellos.
7

Campo dominado en aproximadamente 20 aos por los que se mencionaron
anteriormente, estos fueron Colegas y estudiantes del MIT, CMU, Stanford e IBM
McCarthy propuso el nombre de INTELIGENCIA ARTIFICIAL
Simon y Newell. Sistema General de Resolucin de Problemas (SRGP) enfoque de pensar
cmo un ser humano.
1.5 Aportaciones iniciales
Arthur Samuel (1952)
o Programas para el juego de damas alcanzando un nivel al de un amateur.
John McCarthy (1958)
o Con sus colaboradores crearon el lenguaje LISP (MIT)
o l y otros colegas del MIT inventaron el tiempo compartido
o Artculo Program with common sense: generador de consejos considera el
primer sistema completo de I.A.
John McCarthy cre el laboratorio de I.A. en Stanford (1963)
1.6 Caractersticas de la inteligencia Artificial
Una caracterstica fundamental que distingue a los mtodos de Inteligencia Artificial de los
mtodos numricos es el uso de smbolos no matemticos, aunque no es suficiente para
distinguirlo completamente. Otros tipos de programas como los compiladores y sistemas de bases
de datos, tambin procesan smbolos y no se considera que usen tcnicas de Inteligencia Artificial.
El comportamiento de los programas no es descrito explcitamente por el algoritmo. La secuencia
de pasos seguidos por el programa es influenciado por el problema particular presente. El
programa especifica cmo encontrar la secuencia de pasos necesarios para resolver un problema
dado (programa declarativo). En contraste con los programas que no son de Inteligencia Artificial,
que siguen un algoritmo definido, que especifica, explcitamente, cmo encontrar las variables de
salida para cualquier variable dada de entrada (programa de procedimiento).

Las conclusiones de un programa declarativo no son fijas y son determinadas parcialmente
por las conclusiones intermedias alcanzadas durante las consideraciones al problema especfico.
Los lenguajes orientados al objeto comparten esta propiedad y se han caracterizado por su
afinidad con la Inteligencia Artificial. El razonamiento basado en el conocimiento, implica que
estos programas incorporan factores y relaciones del mundo real y del mbito del conocimiento
en que ellos operan. Al contrario de los programas para propsito especfico, como los de
contabilidad y clculos cientficos; los programas de Inteligencia Artificial pueden distinguir entre
el programa de razonamiento o motor de inferencia y base de conocimientos dndole la capacidad
de explicar discrepancias entre ellas.

Aplicabilidad a datos y problemas mal estructurados, sin las tcnicas de Inteligencia
Artificial los programas no pueden trabajar con este tipo de problemas. Un ejemplo es la
resolucin de conflictos en tareas orientadas a metas como en planificacin, o el diagnstico de
8

tareas en un sistema del mundo real: con poca informacin, con una solucin cercana y no
necesariamente exacta.

Podemos interrogar a algunas bases de datos de Internet en lenguaje natural, o incluso
charlar con ellas nuestro idioma, porque por detrs se est ejecutando un programa de
Inteligencia Artificial. Otras herramientas inteligentes pueden utilizarse para escrutar entre los
millones de datos que se generan en un banco en busca de patrones de comportamiento de sus
clientes o para detectar tendencias en los mercados de valores.
1.7 Realidad de la inteligencia Artificial
Simon (1957): Futuro previsible. P.e: Juego de ajedrez
Informe en 1966: No se ha logrado obtener ninguna traduccin de textos cientficos
generales, ni se prev obtener ninguna en un futuro inmediato.
Investigadores fracasaron en la demostracin de teoremas de pocas decenas de
condiciones
Programa que encuentra una solucin, no necesariamente encontrar todas en la
prctica.
Friedberg (1958). Evolucin automtica: Miles de horas CPU dedicadas no dieron avance
tangible.
Minsky y Papert ( 1969) . Capacidad de representacin al Perceptrn eran limitadas.
1.7.1 Sistemas basados en conocimiento
Buchanan et al. (1969). DENDRAL: Inferir estructura molecular, a partir de espectrmetros
de masas. Se definen reglas.
Feigenbaum. MYCIN: diagnstico de infecciones sanguneas, con 450 reglas
aproximadamente.
1.7.2 Inteligencia artificial en la industria
McDermott (1982). R1: Elaboracin de pedidos de nuevos sistemas informticos.
o Gener ahorros a empresas importantes de Estados Unidos
Esfuerzos en Japn con computadoras inteligentes usando Prolog.
Reaparicin de las redes neuronales (1986 a la fecha)
o Algoritmos de aprendizaje de retroalimentacin
o Modelos llamados como conexionistas
1.7.3 Inteligencia artificial y la ciencia
Desarrollo sobre teoras ya existentes que teoras nuevas
Slidas bases experimentales, analizarlos estadsticamente para identificar su relevancia
Aplicaciones deben demostrar su utilidad en el mundo real
I.A. surge en contra de las limitaciones dentro de teora de control y estadstica
Tendencia actual es el campo de reconocimiento del habla
Redes de Bayes representacin eficiente y razonamiento riguroso ante conocimiento
incierto. Usada en razonamiento incierto y sistemas expertos.
9

Agente: algo que razona, autnomo, perceptivos, persisten en tiempo prolongado,
adaptables, proactivo, sociales, alcanzan objetivos diferentes.
Sistemas inteligentes
Agentes en entornos reales (como internet) con entradas continuas.
I.A. en los motores de bsqueda.
1.8 Aplicaciones
Planificacin autnoma
Juegos
Control Autnomo
Diagnosis
Robtica
Procesamiento del lenguaje y resolucin de problemas.
1.9 Relacin de la Inteligencia Artificial con otras ciencias
Filosofa
o Aristteles. Sistema informal para razonar adecuadamente con silogismos.
Todos los alumnos tienen matrcula (proposicin)
Luis es un alumno (proposicin)
Luis tiene matrcula (conclusin).
Las proposiciones anteriores a la conclusin son premisas
Newell y Simons utilizan las bases dadas por Aristteles para
implementar el SRGP
Matemticas. Proporcionaron las herramientas para manejar aseveraciones de certeza
lgica, como las probabilistas. Razonamiento con algoritmos.
Economa. Formalizaron la toma de decisiones para maximizar los resultados esperados.
Psicologa. Humanos y animales podan considerarse mquinas de procesamiento de
informacin.
Ingeniera computacional. Proveen las herramientas para aplicar la I.A.
Teora de control. Diseo de dispositivos que actan de forma ptima de acuerdo a la
retroalimentacin que reciben del medio.
Lingstica o procesamiento del lenguaje natural.
o Chomsky. Modelos sintcticos para entender y estructurar oraciones.
Neurociencia. Estudio del sistema neurolgico y del cerebro.
o Paul Broca (1861). reas especficas del cerebro responsable de funciones
cognitivas especficas.
o Camilo Golgi (1873). Observacin de neuronas individuales.
o Hans Berger (1929). Desarrolla el Electroencefalograma.
o Ogawa et. al. (1990). Resonancia Magntica funcional.
o Existen 1000 veces ms neuronas en un cerebro humano promedio que
compuertas en la UCP de un computador.
o Ley Moore predice que las compuertas igualaran a las neuronas en 2020.
10

1.10 Ramas de la Inteligencia Artificial
Algunas de las reas que ms sobresalen de acuerdo a la Ciencia de la Inteligencia Artificial son:
Robtica
Sistemas expertos
Agentes inteligentes
Algoritmos genticos
Lgica difusa
Redes neuronales
Sistemas de aprendizaje
Procesamiento de lenguaje natural
Sistemas de visin
















11

2. SISTEMAS EXPERTOS
2.1 Introduccin
El trmino inteligencia cubre muchas habilidades conocidas, incluyendo la capacidad de
solucionar problemas, de aprender y de entender lenguajes; la IA dirige todas estas habilidades. La
mayora de los esfuerzos en IA se han hecho en el rea de solucionar los problemas, los conceptos
y los mtodos para construir los programas que razonan acerca de los problemas y que luego
calculan una solucin. Los programas de IA que logran la capacidad experta de solucionar
problemas aplicando las tareas especficas del conocimiento se llaman Sistemas Basado en
Conocimiento o Sistemas Expertos. A menudo, el trmino sistemas expertos se reserva para los
programas que contienen el conocimiento usado por los humanos expertos, en contraste al
conocimiento recolectado por los libros de textos. Los trminos, sistemas expertos (ES) y sistemas
basados en conocimiento (KBS), se utilizan como sinnimos. Tomados juntos representan el tipo
ms extenso de aplicacin de IA.

Desde hace algn tiempo los problemas ms recurrentes con los que se enfrenta la
industria son la falta de personas capacitadas en campos muy especficos y el elevado costo de sus
servicios. Con esto podemos establecer que uno de los bienes mejor valuados es el conocimiento
humano y con esto la capacidad de tomar decisiones y de aportar un punto de opinin. En la
actualidad, con la ayuda de personas especializadas podemos crear un sistema que simule la
evaluacin de los mismos a travs del estudio de cierta situacin. A esto se le conoce como
sistema experto.
Los sistemas expertos forman parte de la ciencia de la computacin y dentro de esta se
ubican en la rama de la inteligencia artificial. Este trmino fue usado por primera vez por un
doctor de la universidad de Stanford, Edward A. Feigenbaum. El estipul que el poder de
resolucin de un problema en un programa de computadora viene del conocimiento de un
dominio especfico, no solo de las tcnicas de programacin y el formalismo que contiene. Antes
de eso casi todos los investigadores en inteligencia artificial haban tratado de desarrollar mtodos
generales de programacin que resolveran grandes problemas conceptuales, pero estos
programas resolveran pobremente los problemas individuales.
2.2 Qu es un sistema experto?
2.2.1 Definicin
Un sistema experto se define como: un sistema informtico que simula los procesos de
aprendizaje, memorizacin, razonamiento, comunicacin y accin de un experto humano en una
determinada rama de la ciencia, suministrando de esta forma, un consultor que puede sustituirle
con unas ciertas garantas de xito.
Los sistemas expertos permiten el desarrollo de otros sistemas que representan el
conocimiento como una serie de reglas. Las distintas relaciones, conexiones y afinidades cobre un
tema pueden ser compiladas en un sistema experto pudiendo incluir relaciones altamente
12

complejas y con mltiples interacciones. Las caractersticas mencionadas en la definicin anterior
le permiten a un sistema experto almacenar datos y conocimiento, sacar conclusiones lgicas, ser
capaces de tomar decisiones, aprender, comunicarse con expertos humanos o con otros sistemas
expertos, explicar el razonamiento de su decisin y realizar acciones como consecuencia de todo
lo anterior.
2.2.2 Tipos de sistemas expertos
Existen esencialmente dos tipos de sistemas expertos, estos son:
Sistemas Expertos basados en reglas: aqu el sistema experto aplica reglas heursticas
apoyadas generalmente en lgica difusa para su evaluacin y aplicacin. Estas reglas
heursticas son sencillamente las capacidades de estos sistemas para realizar de forma
inmediata innovaciones positivas para sus fines.
Sistemas expertos basados en probabilidades: su funcionamiento consiste en la
aplicacin de redes bayesianas, basadas en estadstica y el teorema de Bayes. Este es
un modelo probabilstico multivariado que relaciona un conjunto de variables
aleatorias mediante un grfico dirigido que indica de manera explcita la influencia
casual.
2.2.3 Caractersticas
Las caractersticas ms importantes de un sistema experto son:
Habilidad para adquirir conocimiento
Fiabilidad para poder confiar en sus resultados o apreciaciones
Solidez en el dominio de su conocimiento
Capacidad para resolver problemas
Capacidad para explicar su proceso de razonamiento o dar la razn del por qu
solicita tal o cual informacin o dato.
2.2.4 Componentes de un sistema experto
2.2.4.1 Base de conocimiento
Posee el conocimiento del experto humano formalizado y estructurado, formado por la
descripcin de los objetos y sus relaciones y casos particulares. Algunos incluyen meta-
conocimiento que son criterios con los que el sistema decide la estrategia de bsqueda a utilizar.
El conocimiento se puede representar mediante clculo de predicados, listas, objetos, redes
semnticas y/o reglas de produccin. La eleccin de las tcnicas de representacin depender del
tipo de problema. Dentro de la base de conocimientos existen tres tipos de conocimiento para
construir un sistema experto:
o Reglas
o Hechos y relaciones entre los componentes
o Afirmaciones y preguntas
13

2.2.4.2 Mecanismo de inferencia
Tambin llamado intrprete de reglas, se encarga de las operaciones de bsqueda y seleccin
de las reglas a utilizar en el proceso de razonamiento. Una vez que la base de datos est completa,
necesita ser ejecutada por un mecanismo de razonamiento y un control de bsqueda para resolver
problemas. El mecanismo de inferencia es la unidad lgica con la que se extraen conclusiones de la
base de conocimientos, segn un mtodo fijo de solucin de problemas que est configurado
imitando el procedimiento humano de los expertos para solucionar problemas. El mtodo ms
comn de razonamiento en los sistemas expertos es la aplicacin del modus ponens:
Si A -> B y B->C, entonces A->C
En un sistema experto existir un hecho slo cuando est contenido en la base de
conocimientos. Las funciones del mecanismo de inferencia son:
Determinar qu acciones tendrn lugar, el orden en que lo harn y cmo lo harn.
Determinar cmo y cundo se procesarn las reglas, y dado el caso tambin la
eleccin de qu reglas debern procesarse.
Control de dilogo con el usuario.
2.2.4.3 Generador de explicaciones
Una caracterstica de los sistemas expertos es su habilidad para explicar su razonamiento
usando el mdulo del subsistema de explicacin, un sistema experto puede proporcionar una
explicacin al usuario de por qu est haciendo una pregunta y cmo ha llegado a una conclusin.
Este mdulo proporciona beneficios tanto al diseador del sistema como al usuario. El diseador
puede usarlo para detectar errores y el usuario se beneficia de la transparencia del sistema.
2.2.4.5 Interfaz de usuario
La interaccin entre un sistema experto y un usuario se realiza en lenguaje natural.
Tambin es altamente interactiva y sigue el patrn de la conversacin entre seres humanos. Para
conducir este proceso de manera aceptable para el usuario es especialmente importante
el diseo del interfaz de usuario. Un requerimiento bsico del interfaz es la habilidad de hacer
preguntas. Para obtener informacin fiable del usuario hay que poner especial cuidado en el
diseo de las cuestiones. Esto puede requerir disear el interfaz usando mens o grficos.
14


FIGURA 1: Componentes de un sistema experto.

2.3 Ventajas
Proporcionan la capacidad de trabajar con grandes cantidades de informacin, que son
uno de los grandes problemas que enfrenta el analista humano que puede afectar
negativamente a la toma de decisiones, pues el analista humano puede depurar los datos
que no considere relevantes, mientras que un sistema experto debido a su gran velocidad
de proceso analiza toda la informacin, incluyendo las no tiles para de esta manera,
aportar una decisin ms slida.
Resuelven problemas que requieren un conocimiento formal especializado.
Obtienen conclusiones ms rpidamente que los expertos humanos.
Razonan pero en base a un conocimiento adquirido y no tienen sitio para la subjetividad.
Tienen al menos la misma competencia que un especialista humano.
Recomendados cuando los expertos humanos son escasos, o cuando es muy elevado el
volumen de datos que ha de considerarse para obtener una conclusin.
2.4 Requerimientos de un sistema experto
La construccin de un sistema experto no es una tarea sencilla, debido a que involucra
mucha participacin de distintas personas, cada una de las cuales aportar algo para que el
sistema experto a desarrollar sea robusto y fcil de usar y mantener. Adems se deben hacer
varias elecciones en cuanto al desarrollo del sistema experto. Para desarrollar un sistema experto
primero se debe conocer el equipo de gente necesario, despus los mtodos que utiliza ese
equipo de gente y por ltimo como prueban y construyen prototipos de software para terminar en
el sistema final.
15

Las personas que componen un grupo o un equipo, como en todos los mbitos deben
cumplir ciertas caractersticas y cada uno de ellos dentro del equipo desarrolla un papel distinto. A
continuacin se detalla cada componente del equipo dentro del desarrollo y cul es la funcin de
cada uno.
2.4.1 El experto
La funcin del experto es la de poner sus conocimientos especializados a disposicin del
sistema experto.
2.4.2 El ingeniero de conocimiento
Es el ingeniero que plantea las preguntas al experto, estructura sus conocimientos y los
implementa en la base de conocimientos. Entre sus principales funciones destacan:
Responsable de la fase de adquisicin del conocimiento
Participe de las fases de modelizacin de conocimiento y evaluacin.
2.4.3 El usuario
El usuario aporta sus deseos y sus ideas, determinando especialmente el escenario en el
que debe aplicarse el sistema experto.
2.5 Aplicaciones de los sistemas expertos
Las principales aplicaciones de los sistemas expertos son las relacionadas con el mundo
empresarial. Esto se debe a que resultan muy tiles en funciones como la contabilidad, tesorera,
gestiones internas, etc. el campo que ms aplicaciones de sistemas expertos est realizando es el
de la auditora. Sin embargo, los sistemas expertos son aplicados en muchas ms reas con
resultados satisfactorios. Algunas de las principales reas son: telecomunicaciones, medicina,
militar, derecho, aeronutica, geologa, electrnica, etc.
2.5.1 Campos de accin
Otorgar crditos bancarios.
Administracin y recuperacin de informacin.
Departamento de ayuda y asistencia.
Instalaciones mdicas y hospitales.
Evaluacin del desempeo de empleados.
Anlisis de prstamos bancarios.
Deteccin de virus.
Reparacin y mantenimiento.
Mercadotecnia: cobertura y elaboracin de informes de mercadotecnia.
Optimizacin de almacenes
2.5.2 Ejemplos de aplicacin
2.5.2.1 Medicina
DENDRAL: Es capaz de calcular hechos relativos a estructuras moleculares.
16

MYCIN: diagnostica infecciones en la sangre y meningitis y adems sugiere el tratamiento a
seguir.
PUFF: diagnostica y trata enfermedades del pulmn.
MOLGENO: ayuda a los bilogos que trabajan en el campo del DNA y la ingeniera gentica.
GENESIS: permite planificar y simular experimentos en el campo de la unin de genes.
2.5.2.2 Electrnica
PROGRAMMERS APPRENTICE: ayuda a la escritura de programas dedicados a la programacin
de circuitos electrnicos.
EURISKO: capaz de aprender a medida que funciona, crea circuitos micro elctricos
tridimensionales
2.5.2.1Milcia
EXPERT SYSTEMS TO COMBAT INTERNATIONAL TERRORISM: ayuda a la creacin de
estrategias antiterroristas.
TWIRL: simula guerras completas y gua a tomar mejores acciones en caso todas las
situaciones posibles.
RI: descubre yacimientos petrolferos bajo el mar.











17

3. PROGRAMACIN LGICA (PROLOG)
3.1 Lenguaje de programacin
Es una tcnica de comunicacin estilizada que se utiliza para controlar el comportamiento
de una maquina (usualmente un computador)
Como los lenguajes humanos, los lenguajes de programacin tienen reglas sintcticas y
semnticas para definir el significado
Herramienta que permite a un programador especificar de manera precisa: sobre qu
datos una computadora debe operar, cmo deben ser estos almacenados y transmitidos y
qu acciones debe tomar bajo una variada gama de circunstancias
Ejemplos: Visual Basic C/C++ JAVA FORTRAN LISP
3.2 Paradigmas de programacin
Orientado a aspectos: Es un paradigma de programacin relativamente reciente cuya
intencin es permitir una adecuada modularizacin de las aplicaciones y posibilitar una
mejor separacin. De esta forma se consigue razonar mejor sobre los conceptos, se elimina
la dispersin del cdigo y las implementaciones resultan ms comprensibles, adaptables y
reusables.
Concurrente: Es un paradigma de programacin que usa tcnicas para expresar
paralelismo potencial y resolver los problemas resultantes de sincronizacin y de
comunicacin
Declarativo: Es un paradigma de programacin que est basado en el desarrollo de
programas especificando o "declarando" un conjunto de condiciones, proposiciones,
afirmaciones, restricciones, ecuaciones o transformaciones que describen el problema y
detallan su solucin
Funcional: Es un paradigma de programacin declarativa basado en la utilizacin de
funciones aritmticas que no maneja datos mutables o de estado.
Imperativo: Es un paradigma de programacin que describe la programacin en trminos
del estado del programa y sentencias que cambian dicho estado
Lgico: El paradigma lgico Tiene como caracterstica principal la aplicacin de las reglas
de la lgica para inferir conclusiones a partir de datos.
Orientado a objetos: Es un paradigma de programacin que usa los objetos en sus
interacciones, para disear aplicaciones y programas informticos
3.3 Historia de la programacin lgica
Remontndonos en el tiempo podemos tomar a Aristteles (384-322 a.C.) y su teora
silogstica como los precursores de la lgica matemtica y en consecuencia de la Programacin
lgica. La teora silogstica, que estudia una clase particular de implicaciones con dos premisas y
una conclusin, tambin fue tratada por los filsofos contemporneos de Aristteles y largamente
estudiada en siglos posteriores, aunque no se produjeron innovaciones de inters hasta el siglo
XVII con los trabajos de Descartes y Leibnitz.

18

Dos siglos despus Boole dio un paso importante en el sistema de razonamiento
aristotlico poniendo en relacin la lgica y el lgebra. Los trabajos de Boole fueron modificados y
ampliados ms tarde por los lgicos y matemticos como Jevon, Pierce, Schroeder y Huntington
entre otros. Llegamos as a finales del siglo XIX y principios del XX con la revolucin de la
fundamentacin de las Matemticas gracias a los trabajos de Frege, Cantor, Peano, Russell y
Whitehead entre otros que marcan el periodo ms apasionante y de mayor actividad en la historia
de la lgica matemtica. Llegamos a la mitad del siglo XX y descubrimos que de forma paralela al
desarrollo de la lgica se ha producido un espectacular avance de las llamadas mquinas de
calcular, avance sobre el que reflexiona A. Turing en un artculo titulado Pueden pensar las
maquinas?, publicado en 1950 y que podemos dar como punto de partida de lo que despus se
llamara Inteligencia Artificial.

No obstante hasta la primera mitad de los sesenta, con los trabajos de Kowalski y el primer
PROLOG de Colmerauer cuando nace la Programacin Lgica como rama de la demostracin
automtica con personalidad propia.

3.4 Programacin lgica
La Programacin Lgica estudia el uso de la lgica para el planteamiento de problemas y el
control sobre las reglas de inferencia para alcanzar la solucin automtica.
La Programacin Lgica, junto con la funcional, forma parte de lo que se conoce como
Programacin Declarativa, es decir la programacin consiste en indicar como resolver un problema
mediante sentencias, en la Programacin Lgica, se trabaja en una forma descriptiva,
estableciendo relaciones entre entidades, indicando no como, sino que hacer, entonces se dice
que la idea esencial de la Programacin Lgica es
Programa= lgica + control
Lgica (programador): hechos y reglas para representar conocimiento
Control (interprete): deduccin lgica para dar respuestas (soluciones)
La programacin lgica intenta resolver lo siguiente:
Dado un problema S, saber si la afirmacin A es solucin o no del problema o en qu casos
lo es. Adems queremos que los mtodos sean implantados en mquinas de forma que la
resolucin del problema se haga de forma automtica

La programacin lgica: construye base de conocimientos mediante reglas y hechos
Regla: implicacin o inferencia lgica que deduce nuevo conocimiento, la regla permite
definir nuevas relaciones a partir de otras ya existentes
Mortal (x): - humano(x) ----------- x es mortal si x es humano

Hecho: declaracin, clusula o proposicin cierta o falsa, el hecho establece una relacin
entre objetos y es la forma ms sencilla de sentencia
Humano (Scrates); Scrates es humano
Ama (Juan, Mara); ama Juan a Mara
19

Consulta: se especifica el problema, la proposicin a demostrar o el objetivo Partiendo de
que los humanos son mortales y de que Scrates es humano, deducimos que Scrates es
mortal
Mortal (x): - humano(x);- los humanos son mortales; regla
Humano (Scrates); Scrates es humanos; hecho
Scrates es mortal; consulta
Nota: La programacin lgica comprende dos Paradigmas de Programacin la Programacin
Declarativa y la Programacin funcional.
La programacin declarativa gira en torno al concepto de predicado, o relacin entre elementos.
La programacin funcional se basa en el concepto de funcin (que no es ms que una evolucin
de los predicados), de corte ms matemtico.
3.5 Fundamento de la programacin lgica
La mayora de los Lenguajes de Programacin se basan en la Teora Lgica de Primer
Orden, aunque tambin incorporan algunos comportamientos de orden superior, en este sentido,
destacan los lenguajes funcionales ya que se basan en el Clculo Lambda, es la nica teora lgica
de orden superior.

La Teora Lgica de Primer Orden o tambin llamada lgica de predicados: es un sistema
deductivo basado en un Lenguaje Lgico Matemtico formal de gran utilidad para las
Matemticas, Filosofa, Lingstica y Computacional. Incluye proposiciones lgicas, predicados y
cuantificadores.
3.6 Caractersticas de la programacin lgica
Unificacin de trminos
Mecanismos de inferencia automtica
Recursin como estructura de control bsica
Visin lgica de la computacin
3.7 Lenguajes de programacin lgica
Un lenguaje es el CLP pero el lenguaje de programacin lgica por excelencia es el
PROLOG.
Prolog: es un Lenguaje de Programacin diseado para representar y utilizar el
conocimiento que se tiene sobre un determinado dominio. Los programas en Prolog
responden preguntas sobre el tema del cual tienes conocimiento.

La popularidad del lenguaje se debe a su capacidad de deduccin y adems es un lenguaje fcil
de usar por su semntica y sintaxis. Solo busca relaciones entre los objetos creados, las variables y
las listas, que son su estructura bsica.
Escribir un programa en Prolog consiste en declarar el conocimiento disponible acerca de
objetos, adems de sus relaciones y sus reglas, en lugar de correr un programa para obtener una
solucin, se hace una pregunta, el programa revisa la base de datos para encontrar la solucin a la
20

pregunta, si existe ms de una solucin, Prolog hace un barrido para encontrar soluciones
distintas. El propio sistema es el que deduce las respuestas a las preguntas que se le plantean,
dichas respuestas las deduce del conocimiento obtenido por el conjunto de reglas dadas.
3.8 Campos de aplicacin
Sistemas Expertos, donde un Sistema de informacin mita las recomendaciones de un
experto sobre algn dominio de conocimiento.
Demostracin automtica de teoremas, donde un programa genera nuevos teoremas
sobre una teora existente.
Reconocimiento de lenguaje natural, donde un programa es capaz de comprender (con
limitaciones) la informacin contenida en una expresin lingstica humana.
Inteligencia artificial
Sistemas de informacin


























21

4. LGICA Y CLCULO PROPOSICIONAL
4.1 Introduccin
El clculo proposicional es denominado tambin lgica proposicional y es definida como la
ciencia que trata de los principios vlidos del razonamiento y la argumentacin. El estudio de
lgica es el esfuerzo por determinar las condiciones que justifican a una persona para pasar de una
proposicin dada, llamadas premisas, a una conclusin que se deriva de aquellas. La Lgica
proposicional estudia las operaciones proposicionales y la deduccin proposicional. Una
proposicin es un ordenamiento resultado de nuestra actividad pensante donde expresamos, bien
la posibilidad de la ocurrencia de un hecho, o la necesidad de una accin, o una orden, un deber,
una interrogante, entre otras cosas. Puede decirse que una proposicin es una frase declarativa o
juicio al que, podemos asignarle un valor verdadero ya sea cierto o falso. Por ejemplo la frase El
programa es de Software, es una proposicin, a priori no puede decirse si esta proposicin tiene
un valor cierto o falso, pero si se parte de un contexto en que se establece unvocamente de qu
programa se est hablando y adems se conoce que efectivamente este es de Software, puede
afirmarse que la proposicin es cierta.
Toda proposicin, puede ser representada por una frmula del clculo proposicional, por
lo que, si a las primeras se les puede asignar un valor derivativo, es de esperar que a las segundas
tambin. Las frmulas ms simples son las que constan de solo un smbolo de variable o constante
proposicional (p, q, r, 1, 0, etc.), a estas se les llama atmicas. En el caso de las frmulas 0 y 1 sus
valores derivativos sern siempre falso (0) y cierto (1) respectivamente. Las variables por su parte,
como su nombre lo indica, pueden tomar cualquier valor (0 o 1). A manera de ejemplo, supngase
que la variable p representa a la proposicin est lloviendo, entonces p tomar valor 1 cuando
efectivamente est lloviendo, mientras tomar valor 0 cuando esto no sea as. Para determinar el
valor derivativo de una frmula no atmica, lo primero que se necesita es asociar un valor a cada
una de las variables que la forman. Pero con esto no basta, se necesita de reglas de interpretacin
y de precedencia para las operaciones.
4.2 Clculo o lgica proposicional
El desarrollo de la Lgica proposicional (tipo de lgica simblica) se da por insuficiencias o
limitaciones de la lgica clsica. La lgica proposicional, se concentra en el anlisis de las
proposiciones de los argumentos y las relaciones que existen entre ellas. Este anlisis se conoce
como veritativo funcional pues el valor de verdad de los argumentos depende ahora del valor de
verdad de sus enunciados y de la forma en que estos se conectan, que ya no es de la forma dada
por la tercera persona del indicativo del verbo ser, como usaba el esquema aristotlico. Dicho de
otra manera la lgica proposicional estudia las relaciones entre las proposiciones sin analizar, sin
tener en cuenta la estructura interna de las mismas.

El clculo proposicional (la lgica proposicional) forma slo una parte de la lgica
simblica. Pero su funcionamiento es lo suficientemente importante y fundamental como para
centrarnos en ella a fin de comprender algunos procedimientos bsicos de la lgica simblica.
22

4.3 Lenguaje del clculo proposicional
La lgica es un lenguaje formal, y como tal est constituido por un conjunto de signos y
reglas caracterstico: signos del lenguaje (tabla de smbolos), reglas sintcticas (reglas para la
construccin de expresiones del lenguaje) y reglas semnticas (reglas que nos permiten encontrar
un valor de verdad para las expresiones del lenguaje a partir de los valores de verdad de sus
componentes).

La lgica proposicional permite la realizacin de clculos, para lo cual traduce el lenguaje
ordinario a frmulas lgicas, transforma tales frmulas en otras, es decir deduce unas de otras. Los
valores de verdad que usar la el clculo proposicional sern solamente el de verdad (o
verdadero) simbolizado por una v y el de falsedad (o falso) simbolizado por una f. Cuando
hablamos de clculo nos estamos refiriendo a un sistema de relaciones entre smbolos no
interpretados que permite realizar operaciones con ellos. El lenguaje del clculo proposicional
recibir el nombre de Lenguaje L.
4.4 Smbolos del lenguaje proposicional
Cuando hablamos de smbolos formales en el contexto del clculo proposicional (a veces
llamados signos elementales) nos referimos a tres tipos de signos:
1. Variables proposicionales o letras enunciativas: son letras que simbolizan proposiciones
atmicas (proposiciones que no contienen conectivos binarios, las que los contienen
reciben el nombre de proposiciones moleculares). Se llaman variables porque cada una de
ellas puede representar de forma indistinta cualquier proposicin. Dichas letras se utilizan
en minscula y en orden alfabtico, vale recordar que por una convencin en la literatura
lgica se utiliza a partir de la p. (p, q, r, s, t...).
2. Operadores o constantes lgicas: son smbolos que sirven para relacionar las
proposiciones entre s. Se los conoce con el nombre de conectivas. El conjunto de los
conectivos es un conjunto finito. Se considerarn conectivos del clculo proposicional a los
siguientes smbolos:
3. Smbolos auxiliares: son smbolos que sirven para indicar como se agrupan los
componentes de una frmula y cul es la conectiva principal o dominante. Estos signos
auxiliares sern los parntesis (). Podra usarse una gama ms amplia de signos (corchetes,
etc.), pero no resulta imprescindible.

FIGURA 2: Smbolos del lenguaje proposicional.

23

4.5 Reglas sintcticas
La misin del conjunto de estas reglas de formacin es establecer la combinacin correcta
de signos elementales brindando una adecuada nocin de expresin bien formada o formula bien
formada del clculo proposicional. De esta manera tenemos un test que nos permite decidir ante
una cadena dada de signos del lenguaje L bajo qu condiciones esa cadena puede ser considerada
correcta y por lo tanto ser tenida como una expresin del lenguaje en cuestin. Mientras que no
siempre los hablantes de los lenguajes naturales formulan explcitamente las reglas que rigen esos
lenguajes, necesariamente deben formularse en los lenguajes formales. Las reglas que indican qu
cosas sern tenidas por frmulas bien formadas o frmulas, sern tres.
La primera regla es que toda letra proposicional ser considerada una frmula.
La segunda indica que si algo es considerado frmula, entonces la negacin de ese algo
tambin ser una frmula del lenguaje L.
La tercera regla seala que si dos cosas son frmulas entonces la unin de ellas encerradas
entre parntesis y unidas a travs de un conectivo binario, tambin ser considerado una
frmula.

Digmoslo ahora de manera un poco ms formalizada: Sea For el conjunto de las frmulas del
lenguaje L.

4.6 Reglas semnticas
4.6.1 Definicin de los consecutivos
La lgica proposicional se utiliza para determinar la validez de argumentos, es decir, los
conectivos tratan de expresar ciertas formas tpicas que el lenguaje natural utiliza para relacionar
proposiciones. En tanto el clculo proposicional es un lenguaje artificial, formal, completamente
definido, en l se eliminan las ambigedades expresivas del lenguaje natural (formas iguales de
expresar relaciones diferentes entre enunciados), as como tambin se elimina la pluralidad de
formas de expresar lo mismo mediante formas diferentes que posee el lenguaje natural.

Si bien una premisa es y debe ser considerada como una proposicin, su estructura puede
ser simple o compleja. Una premisa puede estar conformada por una nica proposicin o por una
relacin entre proposiciones. Podemos, por lo tanto, distinguir los dos tipos anteriormente
24

mencionados: atmica y molecular. Cualquier proposicin atmica puede simbolizarse con una
variable proposicional, y esta puede tomar uno de los dos posibles valores de verdad (verdadero o
falso). Por ejemplo, sea la proposicin atmica hoy es martes que puede simbolizarse por p, la
misma puede ser o bien verdadera o bien falsa. El valor de verdad de tal proposicin depende de si
lo que ella afirma o niega se corresponde con la realidad o no. Recuerden que la lgica no tiene
como objetivo determinar si una proposicin atmica es verdadera o falsa, porque eso depende
de las ciencias. El valor de verdad de una proposicin molecular depender del valor de las
proposiciones atmicas que la constituyen ms la conectiva que las vincula.

Para determinar el valor de verdad de una proposicin molecular es necesario saber el
valor de verdad que producen los conectivos al ser aplicados sobre las frmulas, sobre los valores
de verdad de las frmulas. Los conectivos son funciones que a partir de valores de verdad arrojan
nuevos valores de verdad. Dichas funciones quedan expresadas en una tabla que permite realizar
el clculo. Dichas tablas reciben el valor de tablas de definicin de un conectivo o tambin tabla de
verdad de un conectivo.
4.6.2 Negacin
La negacin, que es un consecutivo unario, no es un conectivo que vincule dos variables
proposicionales, sino que afecta el valor de verdad de lo que est a uno de los lados del signo, ms
precisamente lo que se ubica inmediatamente a la derecha. El no del lenguaje natural ser
representado por el signo . La negacin es la conectiva que convierte un enunciado verdadero
en falso, y un enunciado falso en verdadero.

4.6.3 Conjuncin
La Conjuncin es la conectiva que origina una proposicin molecular que solo es verdadera
si ambas proposiciones que la integran son verdaderas, y falsa en los otros casos.

4.6.4 Disyuncin
La Disyuncin es la conectiva que origina una proposicin molecular que solo es falsa si ambas
proposiciones que la integran son falsas, y verdadera en los otros casos.



25

4.6.5 Condicional
La Condicional es el conectivo que origina una proposicin molecular que solo es falsa si el
antecedente es verdadero y el consecuente es falso, siendo verdadera en los restantes casos.

4.6.6 Bi condicional
Esta conectiva origina una proposicin molecular que es verdadera cuando sus dos
componentes tienen el mismo valor de verdad, y falsa si uno de sus componentes es verdadero y
el otro falso.














26

5. REDES NEURONALES ARTIFICIALES
5.1 Introduccin
Las redes neuronales artificiales o tambin conocidas como RNA o ANN intentan imitar el
funcionamiento de neuronas que se encuentran en el mbito biolgico. Las RNA son aptas para
resolver problemas que no poseen un algoritmo claramente definido para transformar una
entrada en una salida. Dichas neuronas aprenden, reconocen y aplican relaciones entre objetos.
Se emplea normalmente un conjunto de ejemplos representativos de la transformacin deseada
para entrenar el sistema, que a su vez, se adapta para producir las salidas deseadas cuando se
evala con las entradas aprendidas.
Los primeros modelos de redes neuronales datan de 1943 por los neurlogos McCulloch y
Pitts. Aos ms tarde, en 1949, Donald Hebb desarroll sus ideas sobre el aprendizaje neuronal,
quedando reflejado en la "regla de Hebb". En 1958, Rosemblatt desarroll el perceptrn simple, y
en 1960, Widrow y Hoff desarrollaron el ADALINE, que fue la primera aplicacin industrial real.
En los aos siguientes, se redujo la investigacin, debido a la falta de modelos de
aprendizaje y el estudio de Minsky y Papert sobre las limitaciones del perceptrn. Sin embargo, en
los aos 80, volvieron a resurgir las RNA gracias al desarrollo de la red de Hopfield, y en especial, al
algoritmo de aprendizaje de retropropagacin ideado por Rumelhart y McLellan en 1986 que fue
aplicado en el desarrollo de los perceptrones multicapa.
5.2 Funcionamiento
Las RNA son un mtodo de resolver problemas, de forma individual o combinadas con
otros mtodos, para aquellas tareas de clasificacin, identificacin, diagnstico, optimizacin o
prediccin en las que el balance datos/conocimiento se inclina hacia los datos y donde,
adicionalmente, puede haber la necesidad de aprendizaje en tiempo de ejecucin y de cierta
tolerancia a fallos. En estos casos las RNAs se adaptan dinmicamente reajustando
constantemente los pesos de sus interconexiones.
Las RNAs se basan en la analoga que existe en el comportamiento y funcin del cerebro
humano, en particular del sistema nervioso, el cual est compuesto por redes de neuronas
biolgicas que poseen bajas capacidades de procesamiento, sin embargo toda su capacidad
cognitiva se sustenta en la conectividad de stas.
5.3 Propiedades
Una red neuronal se compone de unidades llamadas neuronas. Cada neurona recibe una
serie de entradas a travs de interconexiones y emite una salida. Esta salida viene dada por tres
funciones.
27

5.3.1 Funcin de propagacin
Una funcin de propagacin (tambin conocida como funcin de excitacin), que por lo
general consiste en el sumatorio de cada entrada multiplicada por el peso de su interconexin
(valor neto). Si el peso es positivo, la conexin se denomina excitatoria; si es negativo, se
denomina inhibitoria.
5.3.2 Funcin de activacin
Una funcin de activacin, que modifica a la anterior. Puede no existir, siendo en este caso
la salida la misma funcin de propagacin.
5.3.3 Funcin de transferencia
Una funcin de transferencia, que se aplica al valor devuelto por la funcin de activacin.
Se utiliza para acotar la salida de la neurona y generalmente viene dada por la interpretacin que
queramos darle a dichas salidas. Algunas de las ms utilizadas son la funcin sigmoidea (para
obtener valores en el intervalo [0,1]) y la tangente hiperblica (para obtener valores en el
intervalo [-1,1]).
5.4 Diseo y programacin de una RNA
Con un paradigma convencional de programacin en ingeniera del software, el objetivo
del programador es modelar matemticamente (con distintos grados de formalismo) el problema
en cuestin y posteriormente formular una solucin (programa) mediante un algoritmo codificado
que tenga una serie de propiedades que permitan resolver dicho problema. En contraposicin, la
aproximacin basada en las RNA parte de un conjunto de datos de entrada suficientemente
significativo y el objetivo es conseguir que la red aprenda automticamente las propiedades
deseadas. En este sentido, el diseo de la red tiene menos que ver con cuestiones como los flujos
de datos y la deteccin de condiciones, y ms que ver con cuestiones tales como la seleccin del
modelo de red, la de las variables a incorporar y el reprocesamiento de la informacin que
formar el conjunto de entrenamiento. Asimismo, el proceso por el que los parmetros de la red
se adecuan a la resolucin de cada problema no se denomina genricamente programacin sino
que se suele denominar entrenamiento neuronal.
Por ejemplo en una red que se va a aplicar al diagnstico de imgenes mdicas; durante la
fase de entrenamiento el sistema recibe imgenes de tejidos que se sabe son cancergenos y
tejidos que se sabe son sanos, as como las respectivas clasificaciones de dichas imgenes. Si el
entrenamiento es el adecuado, una vez concluido, el sistema podr recibir imgenes de tejidos no
clasificados y obtener su clasificacin sano/no sano con un buen grado de seguridad. Las variables
de entrada pueden ser desde los puntos individuales de cada imagen hasta un vector de
caractersticas de las mismas que se puedan incorporar al sistema (por ejemplo, procedencia
anatmica del tejido de la imagen o la edad del paciente al que se le extrajo la muestra).
5.5 Ventajas
Las redes neuronales artificiales (RNA) tienen muchas ventajas debido a que est basado
en la estructura del sistema nervioso, principalmente el cerebro.
28

Aprendizaje: Las RNA tienen la habilidad de aprender mediante una etapa que se llama etapa
de aprendizaje. Esta consiste en proporcionar a la RNA datos como entrada a su vez que se le
indica cul es la salida (respuesta) esperada.
Auto organizacin: Una RNA crea su propia representacin de la informacin en su interior,
descargando al usuario de esto.
Tolerancia a fallos: Debido a que una RNA almacena la informacin de forma redundante,
sta puede seguir respondiendo de manera aceptable aun si se daa parcialmente.
Flexibilidad: Una RNA puede manejar cambios no importantes en la informacin de entrada,
como seales con ruido u otros cambios en la entrada (por ejemplo si la informacin de
entrada es la imagen de un objeto, la respuesta correspondiente no sufre cambios si la imagen
cambia un poco su brillo o el objeto cambia ligeramente).
Tiempo real: La estructura de una RNA es paralela, por lo cual si esto es implementado con
computadoras o en dispositivos electrnicos especiales, se pueden obtener respuestas en
tiempo real.
5.6 Aplicaciones
Las caractersticas de las RNA las hacen bastante apropiadas para aplicaciones en las que
no se dispone a priori de un modelo identificable que pueda ser programado, pero se dispone de
un conjunto bsico de ejemplos de entrada (previamente clasificados o no). Asimismo, son
altamente robustas tanto al ruido como a la disfuncin de elementos concretos y son fcilmente
paralelizables, esto incluye problemas de clasificacin y reconocimiento de patrones de voz,
imgenes, seales, etc. Asimismo se han utilizado para encontrar patrones de fraude econmico,
hacer predicciones en el mercado financiero, hacer predicciones de tiempo atmosfrico, etc.
Tambin se pueden utilizar cuando no existen modelos matemticos precisos o algoritmos
con complejidad razonable, por ejemplo la red de Kohonen ha sido aplicada con un xito ms que
razonable al clsico problema del viajante (un problema para el que no se conoce solucin
algortmica de complejidad polinmica).
Otro tipo especial de redes neuronales artificiales se ha aplicado en conjuncin con
los algoritmos genticos (AG) para crear controladores para robots. La disciplina que trata la
evolucin de redes neuronales mediante algoritmos genticos se denomina Robtica Evolutiva. En
este tipo de aplicacin el genoma del AG lo constituyen los parmetros de la red (topologa,
algoritmo de aprendizaje, funciones de activacin, etc.) y la adecuacin de la red viene dada por la
adecuacin del comportamiento exhibido por el robot controlado (normalmente una simulacin
de dicho comportamiento).
5.7 Ejemplos
Las redes neuronales son una tecnologa computacional emergente que puede utilizarse
en un gran nmero y variedad de aplicaciones, tanto como comerciales como militares.
Hay muchos tipos diferentes de redes neuronales, cada uno de los cuales tiene una aplicacin
particular ms apropiada. Separndolas segn las distintas disciplinas algunos ejemplos de sus
aplicaciones son:
29

Biologa:
Aprender ms acerca del cerebro y otros sistemas.
Obtencin de modelos de la retina.
Empresa:
Reconocimiento de caracteres escritos.
Identificacin de candidatos para posiciones especficas.
Optimizacin de plazas y horarios en lneas de vuelo.
Explotacin de bases de datos.
Evaluacin de probabilidad de formaciones geolgicas y petrolferas.
Sntesis de voz desde texto.

Medio Ambiente:
Analizar tendencias y patrones.
Previsin del tiempo.
Finanzas
Previsin de la evolucin de los precios.
Valoracin del riesgo de los crditos.
Identificacin de falsificaciones.
Interpretacin de firmas.
Manufacturacin:
Robots automatizados y sistemas de control (visin artificial y sensores de presin,
temperatura, gas, etc.)
Control de produccin en lneas de proceso.
Inspeccin de calidad.
Filtrado de seales.
Medicina:
Analizadores del habla para la ayuda de audicin de sordos profundos.
Diagnstico y tratamiento a partir de sntomas y/o de datos analticos (encefalograma,
etc.).
Monitorizacin en ciruga.
Prediccin de reacciones adversas a los medicamentos.
Lectoras de Rayos X.
Entendimiento de causa de ataques epilpticos.
Militares
Clasificacin de las seales de radar.
Creacin de armas inteligentes.
Optimizacin del uso de recursos escasos.


30

6. LGICA DIFUSA
6.1 Introduccin
Se considera que una persona es alta si mide 1.80 metros, pero una persona que mide
1.7999 metros tambin. Para la lgica tradicional esto es invalido
Ejemplo: A es el conjunto de personas altas
A = {x|x > 1.8}
Una persona que mida menos que esto es considerada baja.
Altura Baja Alta
1.56 X
1.84 X
1.44 X
1.78 X

La lgica difusa es una extensin de la lgica de conjuntos tradicional pero con un parecido
al modo de pensar humano. La lgica difusa se inici en 1965 por Lotfi A. Zadeh, profesor de la
Universidad de California en Berkeley.
Desde que Lotfy A. Zadeh (1965) desarroll este concepto de lgica difusa, se ha
trabajado en este tema, el principal centro de desarrollo es Japn, donde sus investigadores la han
aplicado a muy diversos sistemas, principalmente electrodomsticos, sistemas ms recientes estn
vinculados con la industria, la medicina y la actividad espacial. Muchas publicaciones y libros se
han escrito de este tema, pero an queda mucho por explorar.
El desarrollo de modelos matemticos de sistemas reales es un tpico importante en diferentes
disciplinas. Desgraciadamente la mayora de problemas del mundo real pueden ser demasiado
complejos para ser considerados en un modelo formal basado en tcnicas tradicionales. Adems
de que existe imprecisin en nuestro lenguaje cuando tratamos de describir fenmenos que no
estn bien delimitados. Enunciados como Mara es medio lista o agita la varilla con mucha
fuerza son algunos ejemplos.
La lgica difusa (fuzzy logic) permite tratar informacin imprecisa, como medio lista,
temperatura baja o mucha fuerza, en trminos de conjuntos difusos. En Lgica Difusa, se
utilizan conceptos relativos de la realidad, definiendo grados, variables de pertenencia y siguiendo
patrones de razonamiento similares a los del pensamiento humano.
6.2 Historia
Los conjuntos difusos fueron introducidos por primera vez en 1965; la creciente disciplina
de la lgica difusa provee por s misma un medio para acoplar estas tareas. En cierto nivel, la lgica
difusa puede ser vista como un lenguaje que permite trasladar sentencias sofisticadas en lenguaje
natural a un lenguaje matemtico formal. Mientras la motivacin original fue ayudar a manejar
aspectos imprecisos del mundo real, la prctica temprana de la lgica difusa permiti el desarrollo
de aplicaciones prcticas. Aparecieron numerosas publicaciones que presentaban los fundamentos
31

bsicos con aplicaciones potenciales. Esta frase marc una fuerte necesidad de distinguir la lgica
difusa de la teora de probabilidad. Tal como la entendemos ahora, la teora de conjuntos difusos y
la teora de probabilidad tienen diferentes tipos de incertidumbre.

En 1994, la teora de la lgica difusa se encontraba en la cumbre, pero esta idea no es
nueva, para muchos, estuvo bajo el nombre de lgica difusa durante 25 aos, pero sus orgenes se
remontan hasta 2,500 aos. An Aristteles consideraba que existan ciertos grados de veracidad
y falsedad. Platn haba considerado ya grados de pertenencia. En el siglo XVIII el filsofo y obispo
anglicano Irlands, George Berkeley y David Hume describieron que el ncleo de un concepto
atrae conceptos similares. Hume en particular, crea en la lgica del sentido comn, el
razonamiento basado en el conocimiento que la gente adquiere en forma ordinaria mediante
vivencias en el mundo. En Alemania, Immanuel Kant, consideraba que solo los matemticos
podan proveer definiciones claras, y muchos principios contradictorios no tenan solucin. Por
ejemplo la materia poda ser dividida infinitamente y al mismo tiempo no poda ser dividida
infinitamente. Particularmente la escuela americana de la filosofa llamada pragmatismo fundada
a principios de siglo por Charles Sanders Peirce, cuyas ideas se fundamentaron en estos conceptos,
fue el primero en considerar ''vaguedades'', ms que falso o verdadero, como forma de
acercamiento al mundo y a la forma en que la gente funciona.

La idea de que la lgica produce contradicciones fue popularizada por el filsofo y
matemtico britnico Bertrand Russell, a principios del siglo XX. Estudio las vaguedades del
lenguaje, concluyendo con precisin que la vaguedad es un grado. El filsofo austraco Ludwing
Wittgenstein estudi las formas en las que una palabra puede ser empleada para muchas cosas
que tienen algo en comn. La primera lgica de vaguedades fue desarrollada en 1920 por el
filsofo Jan Lukasiewicz, visualiz los conjuntos con un posible grado de pertenencia con valores
de 0 y 1, despus los extendi a un nmero infinito de valores entre 0 y 1. En los aos sesentas,
Lofti Zadeh invent la lgica difusa, que combina los conceptos de la lgica y de los conjuntos de
Lukasiewicz mediante la definicin de grados de pertenencia.

6.3 Definicin
La lgica difusa es una tcnica de la inteligencia computacional que permite trabajar
informacin con alto grado de imprecisin, en esto se diferencia de la lgica convencional que
trabaja con informacin bien definida y precisa. El concepto de Lgica Difusa fue concebido por
Lofti Zadeh un profesor de la Universidad de California en Berkley, quien inconforme con los
conjuntos clsicos (crisp sets) que solo permiten dos opciones, la pertenencia o no de un elemento
a dicho conjunto la present como una forma de procesar informacin permitiendo pertenencias
parciales a unos conjuntos que en contraposicin a los clsicos los denomin Conjuntos Difusos
(fuzzy sets), el concepto de conjunto difuso fue expuesto por Lofti Zadeh en un paper hoy clsico
en la literatura de la lgica difusa en el ao de 1965, el artculo se titula "Fuzzy Sets" y fue
publicado en la revista Information and Control. El mismo Zadeh publica en 1971 el artculo,
"Quantitative Fuzzy Semantics", en donde Introduce los elementos formales que acabaran
32

componiendo el cuerpo de la doctrina de la lgica difusa y sus aplicaciones tal como se conocen en
la actualidad.
6.4 Qu es la lgica difusa?
La lgica difusa es una metodologa que proporciona una manera simple y elegante de
obtener una conclusin a partir de informacin de entrada vaga, ambigua, imprecisa, con ruido o
incompleta, en general la lgica difusa imita como una persona toma decisiones basada en
informacin con las caractersticas mencionadas. Una de las ventajas de la lgica difusa es la
posibilidad de implementar sistemas basados en ella tanto en hardware como en software o en
combinacin de ambos.
6.5 Conjuntos difusos

El concepto clave para entender cmo trabaja la lgica difusa es el de conjunto difuso, se
puede definir un conjunto difuso de la siguiente manera.
Teniendo un posible rango de valores al cual llamaremos U, por ejemplo U=Rn, donde Rn es un
espacio de n dimensiones, a U se le denominara Universo de Discurso. En U se tendr un conjunto
difuso de valores llamado F el cual es caracterizado por de una funcin de pertenencia uf tal que
uf:U->[0, 1], donde uf(u) representa el grado de pertenencia de un u que pertenece a U en el
conjunto difuso F.

Por ejemplo supongamos que se desea representar con conjuntos difusos la variable altura
de una persona, en este caso el universo de discurso ser el rango de posibles valores de la altura
que tenga un persona adulta, se escoger un rango entre 140 cm y 200 cm, valores por fuera de
este rango son posibles pero son muy escasos. El universo de discurso U = [140, 200], para
denominar los conjuntos difusos se suelen trabajar con etiquetas lingsticas similares a las que se
usan de manera coloquial por ejemplo, en la vida diaria decimos que una persona es Muy Baja
(MB), Baja (B), Mediana (M), Alta (Alta) y Muy Alta (MA)

ETIQUETA RANGO
MB [140,160]
B [160, 170]
M [170, 180]
A [180, 190]
MA [190, 200]

33


FIGURA 6: conjuntos difusos para la altura de una persona.
6.6 Operaciones entre conjuntos difusos
De manera similar a la que entre los conjuntos clsicos se realizan operaciones entre ellos,
en conjuntos difusos se puede hacer lo mismo, pero debido a la naturaleza diferente de ellos la
formulacin de estas operaciones es algo especial.
En la figura 7, se muestran dos conjuntos difusos los cuales nos servirn para definir las
operaciones fundamentales que entre ellos se pueden realizar.

FIGURA 7: Conjuntos difusos en donde se definirn las operaciones.
6.6.1 Interseccin
La idea intuitiva de interseccin heredada de los conjuntos clsicos expresa que el
conjunto interseccin de dos conjuntos A y B, se define como los elementos que estn en el
conjunto A Y en el conjunto B; de esta manera la interseccin entre conjuntos se puede entender
como una operacin tipo AND entre los mismos.

FIGURA 8: Interseccin de conjuntos difusos.

Grficamente se sabe que el valor x=4.5 tiene un nivel de pertenencia de 0.8 al conjunto A
y de 0.2 al conjunto B, y el valor de pertenencia de x= 4.5 a la interseccin (zona sombreada) se
desea expresar como una operacin entre estos valores se observa que de estos dos valores, el
que "toca" la zona sombreada es el de 0.2 por lo que de manera intuitiva se puede afirmar que el
34

valor de pertenencia del valor dado a la interseccin de los conjuntos A y B es el valor mnimo de
los valores de pertenencia del dicho valor a los conjuntos de manera individual, de manera
matemtica lo anterior se puede expresar as:

6.6.2 Unin
La idea intuitiva de unin heredada de los conjuntos clsicos expresa que el conjunto
unin de dos conjuntos A y B, se define como los elementos que estn en el conjunto A OR estn
en el conjunto B. de esta manera la interseccin entre conjuntos se puede entender como una
operacin tipo OR entre los mismos.

FIGURA 9: unin entre dos conjuntos difusos.
Grficamente se sabe que el valor x=4.5 tiene un nivel de pertenencia de 0.8 al conjunto A
y de 0.2 al conjunto B, y el valor de pertenencia de x= 4.5 a la unin (zona sombreada) se desea
expresar como una operacin entre estos valores se observa que de estos dos valores, el que
"toca" la zona sombreada es el de 0.8 por lo que de manera intuitiva se puede afirmar que el valor
de pertenencia del valor dado a la unin de los conjuntos A y B es el valor mximo de los valores
de pertenencia de dicho valor a los conjuntos de manera individual, de manera matemtica lo
anterior se puede expresar as:


6.6.3 Complemento

En conjuntos clsicos se define el complemento como el conjunto de los elementos que le
faltan a un conjunto para ser igual al conjunto universo. De la misma manera en conjuntos difusos
se habla del complemento como el conjunto formado por los valores de pertenencias que le
permitiran al conjunto obtener el valor mximo de pertenencia posible, siendo 1 el valor mximo
de pertenencia que un conjunto difuso puede suministrar, este conjunto se podra formar
restando le a 1 los valores de pertenencia del conjunto difuso al que se desea encontrar el
complemento.

35

Grficamente esto se visualiza as:

FIGURA 10: Complemento de dos conjuntos difusos.
6.7 Sistema de lgica difusa Mamdani

FIGURA 11: Sistema tipo Mandami.
En un sistema difuso tipo Mamdani se distinguen las siguientes partes:
Fuzzificador: La entrada de un sistema de lgica difusa tipo Mamdani normalmente es un
valor numrico proveniente, por ejemplo, de un sensor; para que este valor pueda ser
procesado por el sistema difuso se hace necesario convertirlo a un "lenguaje" que el
mecanismos de inferencia pueda procesar. Esta es la funcin del fuzzificador, que toma los
valores numricos provenientes del exterior y los convierte en valores "difusos" que
pueden ser procesados por el mecanismo de inferencia. Estos valores difusos son los
niveles de pertenencia de los valores de entrada a los diferentes conjuntos difusos en los
cuales se ha dividido el universo de discurso de las diferentes variables de entrada al
sistema.
Mecanismo de inferencia difusa: Teniendo los diferentes niveles de pertenencia arrojados
por el fuzzificador, los mismos deben ser procesados para general una salida difusa. La
tarea del sistema de inferencia es tomar los niveles de pertenencia y apoyado en la base
de reglas generar la salida del sistema difuso.
Base de reglas difusas: La base de reglas son la manera que tiene el sistema difuso de
guardar el conocimiento lingstico que le permiten resolver el problema para el cual ha
sido diseado. Estas reglas son del tipo IF-THEN. Una regla de la base de reglas o base de
conocimiento tiene dos partes, el antecedente y la conclusin. En un sistema difuso tipo
36

Mamdani tanto el antecedente como el consecuente de las reglas estn dados por
expresiones lingsticas.
Defuzzificador: La salida que genera el mecanismo de inferencia es una salida difusa, lo
cual significa que no puede ser interpretada por un elemento externo (por ejemplo un
controlador) que solo manipule informacin numrica. Para lograr que la salida del
sistema difuso pueda ser interpretada por elementos que solo procesen informacin
numrica, hay que convertir la salida difusa del mecanismos de inferencia; este proceso lo
realiza el fuzzificador.

La salida del mecanismo de inferencia es un conjunto difuso resultante, para generar la
salida numrica a partir de estos conjuntos existen varias opciones como el Centro de
Gravedad, los Centros Promediados entre otros.















37

7. ALGORITMOS GENTICOS
7.1 Introduccin
El algoritmo gentico es una tcnica de bsqueda basada en la teora de la evolucin de
Darwin, que ha cobrado tremenda popularidad en todo el mundo durante los ltimos aos. Se
presentarn aqu los conceptos bsicos que se requieren para abordarla, as como unos sencillos
ejemplos que permitan a los lectores comprender cmo aplicarla al problema de su eleccin.
En los ltimos aos, la comunidad cientfica internacional ha mostrado un creciente
inters en una nueva tcnica de bsqueda basada en la teora de la evolucin y que se conoce
como el algoritmo gentico. Esta tcnica se basa en los mecanismos de seleccin que utiliza la
naturaleza, de acuerdo a los cuales los individuos ms aptos de una poblacin son los que
sobreviven, al adaptarse ms fcilmente a los cambios que se producen en su entorno. Hoy en da
se sabe que estos cambios se efectan en los genes de un individuo (unidad bsica de codificacin
de cada uno de los atributos de un ser vivo), y que sus atributos ms deseables (i.e., los que le
permiten adaptarse mejor a su entorno) se transmiten a sus descendientes cuando ste se
reproduce sexualmente.
Un investigador de la Universidad de Michigan llamado John Holland era consciente de la
importancia de la seleccin natural, y a fines de los 60s desarroll una tcnica que permiti
incorporarla a un programa. Su objetivo era lograr que las computadoras aprendieran por s
mismas. A la tcnica que invent Holland se le llam originalmente "planes reproductivos", pero
se hizo popular bajo el nombre "algoritmo gentico" tras la publicacin de su libro en 1975.
Una definicin bastante completa de un algoritmo gentico es la propuesta por John Koza:
"Es un algoritmo matemtico altamente paralelo que transforma un conjunto de objetos
matemticos individuales con respecto al tiempo usando operaciones modeladas de acuerdo al
principio Darwiniano de reproduccin y supervivencia del ms apto, y tras haberse presentado de
forma natural una serie de operaciones genticas de entre las que destaca la recombinacin
sexual. Cada uno de estos objetos matemticos suele ser una cadena de caracteres (letras o
nmeros) de longitud fija que se ajusta al modelo de las cadenas de cromosomas, y se les asocia
con una cierta funcin matemtica que refleja su aptitud. "
7.2 Definiciones
Los Algoritmos Genticos son mtodos adaptativos que pueden usarse para resolver
problemas de bsqueda y optimizacin. Estn basados en el proceso gentico de los organismos
vivos. A lo largo de las generaciones, las poblaciones evolucionan en la naturaleza de acorde con
los principios de la seleccin natural y la supervivencia de los ms fuertes, postulados por Darwin.
Por imitacin de este proceso, los Algoritmos Genticos son capaces de ir creando soluciones para
problemas del mundo real. La evolucin de dichas soluciones hacia valores ptimos del problema
depende en buena medida de una adecuada codificacin de las mismas.

38

Un algoritmo gentico consiste en una funcin matemtica o una rutina de software que
toma como entradas a los ejemplares y retorna como salidas cules de ellos deben generar
descendencia para la nueva generacin.

Versiones ms complejas de algoritmos genticos generan un ciclo iterativo que
directamente toma a la especie (el total de los ejemplares) y crea una nueva generacin que
reemplaza a la antigua una cantidad de veces determinada por su propio diseo. Una de sus
caractersticas principales es la de ir perfeccionando su propia heurstica en el proceso de
ejecucin, por lo que no requiere largos perodos de entrenamiento especializado por parte del
ser humano, principal defecto de otros mtodos para solucionar problemas, como los Sistemas
Expertos.

Los objetivos que perseguan John Holland y sus colegas de la Universidad de Michigan
cuando concibieron los algoritmos genticos, eran dos:
Abstraer y explicar rigurosamente el proceso adaptativo de los sistemas naturales.
Disear sistemas artificiales que retuvieran los mecanismos ms importantes de los
sistemas naturales.

En este sentido, podemos decir que los algoritmos genticos son Algoritmos de bsqueda
basados en los mecanismos de seleccin natural y gentica natural. Combinan la supervivencia de
los ms compatibles entre las estructuras de cadenas, con una estructura de informacin ya
aleatorizada, intercambiada para construir un algoritmo de bsqueda con algunas de las
capacidades de innovacin de la bsqueda humana. Bsicamente, el Algoritmo Gentico funciona
como sigue: en cada generacin, se crea un conjunto nuevo de criaturas artificiales (cadenas)
utilizando bits y partes ms adecuadas del progenitor. Esto involucra un proceso aleatorio que no
es, en absoluto, simple. La novedad que introducen los Algoritmos Genticos es que explotan
eficientemente la informacin histrica para especular sobre nuevos puntos de bsqueda,
esperando un funcionamiento mejorado.

7.3 El algoritmo gentico simple
El Algoritmo Gentico Simple, tambin denominado Cannico, se representa en la figura 3.
Como se vera a continuacin, se necesita una codificacin o representacin del problema que
resulte adecuada al mismo. Adems se requiere una funcin de ajuste o adaptacin al problema,
la cual asigna un nmero real a cada posible solucin codificada. Durante la ejecucin del
algoritmo, los padres deben ser seleccionados para la reproduccin, a continuacin dichos padres
seleccionados se cruzaran generando dos hijos, sobre cada uno de los cuales actuara un operador
de mutacin. El resultado de la combinacin de las anteriores funciones sera un conjunto de
individuos (posibles soluciones al problema), los cuales en la evolucin del Algoritmo Gentico
formaran parte de la siguiente poblacin.


39


FIGURA 3: Pseudocdigo del algoritmo gentico simple.
7.4 Problemtica
Los principios bsicos de los Algoritmos Genticos fueron establecidos por Holland, y se
encuentran bien descritos en varios textos. Goldberg, Davis, Michalewicz, Reeves. En la naturaleza
los individuos de una poblacin compiten entre s en la bsqueda de recursos tales como comida,
agua y refugio. Incluso los miembros de una misma especie compiten a menudo en la bsqueda de
un compaero. Aquellos individuos que tienen ms xito en sobrevivir y en atraer compaeros
tienen mayor probabilidad de generar un gran nmero de descendientes. Por el contrario
individuos poco dotados producirn un menor nmero de descendientes. Esto significa que los
genes de los individuos mejor adaptados se propagarn en sucesivas generaciones hacia un
nmero de individuos creciente. La combinacin de buenas caractersticas provenientes de
diferentes ancestros, puede a veces producir descendientes "sper individuos", cuya adaptacin
es mucho mayor que la de cualquiera de sus ancestros. De esta manera, las especies evolucionan
logrando unas caractersticas cada vez mejor adaptadas al entorno en el que viven.

Los Algoritmos Genticos usan una analoga directa con el comportamiento natural.
Trabajan con una poblacin de individuos, cada uno de los cuales representa una solucin factible
a un problema dado. A cada individuo se le asigna un valor o puntuacin, relacionado con la
bondad de dicha solucin. En la naturaleza esto equivaldra al grado de efectividad de un
organismo para competir por unos determinados recursos. Cuanto mayor sea la adaptacin de un
individuo al problema, mayor ser la probabilidad de que el mismo sea seleccionado para
reproducirse, cruzando su material gentico con otro individuo seleccionado de igual forma. Este
cruce producir nuevos individuos descendientes de los anteriores los cuales comparten algunas
de las caractersticas de sus padres. Cuanto menor sea la adaptacin de un individuo, menor ser
la probabilidad de que dicho individuo sea seleccionado para la reproduccin, y por tanto de que
su material gentico se propague en sucesivas generaciones.
40

De esta manera se produce una nueva poblacin de posibles soluciones, la cual reemplaza
a la anterior y verifica la interesante propiedad de que contiene una mayor proporcin de buenas
caractersticas en comparacin con la poblacin anterior. As a lo largo de las generaciones las
buenas caractersticas se propagan a travs de la poblacin. Favoreciendo el cruce de los
individuos mejor adaptados, van siendo exploradas las reas ms prometedoras del espacio de
bsqueda. Si el Algoritmo Gentico ha sido bien diseado, la, poblacin converger hacia una
solucin ptima del problema.
7.5 Codificacin
Se supone que los individuos (posibles soluciones del problema) pueden representarse
como un conjunto de parmetros (que se denominarn genes), los cuales agrupados forman una
ristra de valores (a menudo referida como cromosoma). Si bien el alfabeto utilizado para
representar los individuos no debe necesariamente estar constituido por el {0, 1}, buena parte de
la teora en la que se fundamentan los algoritmos genticos utiliza dicho alfabeto.
7.5.1 Fenotipo
En trminos biolgicos, el conjunto de parmetros representando un cromosoma
particular se denomina fenotipo. El fenotipo contiene la informacin requerida para construir un
organismo, el cual se refiere como fenotipo. Los mismos trminos se utilizan en el campo de los
algoritmos genticos. La adaptacin al problema de un individuo depende de la evaluacin del
genotipo. Esta ltima puede inferirse a travs del fenotipo, es decir, puede ser computada a partir
de un cromosoma, usando la funcin de evaluacin.
7.5.2 Funcin de adaptacin
Debe ser diseada para cada problema de manera especfica. Dado un cromosoma
particular, la funcin de adaptacin le asigna un nmero real, que se supone refleja el nivel de
adaptacin al problema del individuo representado por el cromosoma.
7.5.3 Fase reproductiva
Durante la fase reproductiva se seleccionan los individuos de la poblacin para cruzarse y
producir descendientes, que constituirn una vez mutados, la siguiente generacin de individuos.
La seleccin de padres se efecta al azar usando un procedimiento que favorezca a los individuos
mejor adaptados, ya que a cada individuo se le asigna una probabilidad de ser seleccionado que es
proporcional a su funcin de adaptacin. Este procedimiento se dice que est basado en la ruleta
sesgada. Segn dicho esquema, los individuos bien adaptados se escogern probablemente varias
veces por generacin mientras que los pobremente adaptados al problema no se escogern ms
que de vez en cuando.
Una vez seleccionados dos padres, sus cromosomas se combinan, utilizando
habitualmente los operadores de cruce y mutacin. Las formas bsicas de dichos operadores se
describen a continuacin.
41

7.5.4 Operador de cruce
El operador de cruce toma dos padres seleccionados y corta sus ristras de cromosomas en
una posicin escogida al azar, para producir dos subristras iniciales y dos subristras finales.
Despus se intercambias las subristras finales producindose dos nuevos cromosomas completos.
Ambos descendientes heredan genes de cada uno de los padres. Este operador se conoce como
operador de cruce basado en un punto. Habitualmente el operador de cruce no se aplica todos los
pares de individuos que han sido seleccionados para emparejarse, sino que se aplica de manera
aleatoria, normalmente con una probabilidad comprendida entre 0.5 y 1.0. En el caso en que el
operador de cruce no se aplique, la descendencia se obtiene simplemente duplicando los padres.

FIGURA 4: Operador de cruce basado en un punto.
7.5.5 Operador de mutacin
El operador de mutacin se aplica a cada hijo de manera individual, consiste en la
alteracin aleatoria (normalmente con probabilidad pequea) de cada gen componente del
cromosoma. La figura 5 muestra la mutacin del quinto gen del cromosoma. Si bien puede en un
principio pensarse que el operador de cruce es ms importante que el operador de mutacin, ya
que proporciona una exploracin rpida del espacio de bsqueda, este ltimo asegura que ningn
punto del espacio de bsqueda tenga probabilidad cero de ser examinado, es yes de capital
importancia para asegurar la convergencia de los algoritmos genticos.

FIGURA 5: Operador de mutacin.
7.6 Ventajas y desventajas
No necesitan conocimientos especficos sobre el problema que intentan resolver.
Operan de forma simultnea con varias soluciones, en vez de trabajar de forma secuencial
como las tcnicas tradicionales.
Cuando se usan para problemas de optimizacin maximizar una funcin objetivo- resultan
menos afectados por los mximos locales (falsas soluciones) que las tcnicas tradicionales.
42

Resulta sumamente fcil ejecutarlos en las modernas arquitecturas masivamente
paralelas.
Usan operadores probabilsticos, en vez de los tpicos operadores determinsticos de las
otras tcnicas.
Pueden tardar mucho en converger, o no converger en absoluto, dependiendo en cierta
medida de los parmetros que se utilicen tamao de la poblacin, nmero de
generaciones, etc.
Pueden converger prematuramente debido a una serie de problemas de diversa ndole.
7. 7 Limitaciones de los algoritmos genticos
El poder de los Algoritmos Genticos proviene del hecho de que se trata de una tcnica
robusta, y pueden tratar con xito una gran variedad de problemas provenientes de diferentes
reas, incluyendo aquellos en los que otros mtodos encuentran dificultades. Si bien no se
garantiza que el Algoritmo Gentico encuentre la solucin ptima, del problema, existe evidencia
emprica de que se encuentran soluciones de un nivel aceptable, en un tiempo competitivo con el
resto de algoritmos de optimizacin combinatoria.

En el caso de que existan tcnicas especializadas para resolver un determinado problema,
lo ms probable es que superen al Algoritmo Gentico, tanto en rapidez como en eficacia. El gran
campo de aplicacin de los Algoritmos Genticos se relaciona con aquellos problemas para los
cuales no existen tcnicas especializadas. Incluso en el caso en que dichas tcnicas existan, y
funcionen bien, pueden efectuarse mejoras de las mismas hibridndolas con los Algoritmos
Genticos.

Vous aimerez peut-être aussi