Está en la página 1de 7

TEMA : INTELIGENCIA ARTIFICIAL

CURSO : INTELIGENCIA ARTIFICIAL

CARRERA PROFESIONAL : INGENIERÍA DE SISTEMAS

CICLO : IX

DOCENTE : ING. JORGE MORALES RIOS

INTEGRANTES : ALEXANDER ORTEGA GALVEZ

BAGUA – AMAZONAS - 2018

BAGUA-AMAZONAS-2014
ALGORITMOS GENETICOS
Los Algoritmos Genéticos (AGs) son métodos adaptativos que pueden usarse para resolver
problemas de búsqueda y optimización. Están basados en el proceso genético ´ de los
organismos vivos. A lo largo de las generaciones, las poblaciones evolucionan en la naturaleza
de acorde con los principios de la selección natural y la supervivencia de los más fuertes,
postulados por Darwin (1859). Por imitación de este proceso, los Algoritmos Genéticos ´ son
capaces de ir creando soluciones para problemas del mundo real. La evolución de dichas
soluciones hacia valores óptimos ´ del problema depende en buena medida de una adecuada
codificacion de las mismas.
Los principios básicos de los Algoritmos Genéticos ´ fueron establecidos por Holland (1975), y se
encuentran bien descritos en varios textos – Goldberg (1989), Davis (1991), Michalewicz (1992),
Reeves (1993)

PROGRAMACIÓN CUALITATIVA
Cualitativo: Son aquellos en los que se describen o se resuelven problemas de la vida cotidiana
pero siempre enmarcadas en tres estructuras fundamentales que son:

• Secuencias de acciones
• Decisión de acción
• Ciclos de acciones

Secuencia de Acción:
1. Colocar una nueva orden o una nueva acción después de la última que haya colocado.
2. Seguir una secuencia y orden en la ejecución de esas acciones.

Ejercicio:

Construir un algoritmo cualitativo para realizar una llamada a un número nuevo vía celular.

Proceso:

1. Marcar el número
2. Presionar el Botón llamar
3. Hablar
4. Terminar la llamada
5. Guardar número en la lista de contactos

Decisión de Acción:
Son condiciones que nos permite que podamos decidir cuál es el camino lógico a seguir para
resolver un problema eficientemente.
Expresar las decisiones de acción usando las palabras

• SI

CONDICION

ENTONCES

• SINO
• CONDICIÓN
Ejercicio: Mejorar el ejercicio anterior utilizando decisiones de acción
Proceso:
Marcar el número
Si
Se oyen varios tonos (número ocupado)
Entonces
Terminar la llamada
Sino
Hablar
Terminar llamada

Guardar número en la lista de contactos


Fin

Ciclo de Acción:
Son estructuras que nos permiten repetir una o varias acciones una cantidad definida de veces...
Expresar los ciclos de acción usando las palabras

Mientras/ Hasta o Repetir/Hasta,

Estos bloques establecerán la relación con una condición el inicio de un conjunto de acciones
que se repiten precisamente Mientras esa condición lo permita.
La estructura Mientras debe tener un finalizador que indique hasta donde llega el bloque de
acciones que se deben repetir.

Marcar el número

Si

Se no se oye tonos

Entonces

Repetir
Sino
Hablar
Terminar llamada
Guardar número en la lista de contactos
Fin

PROBLEMAS QUE SE RESUELVEN CON ALGORITMOS GENETICOS


ejemplo.

un problema difícil de resolver, pero fácil de entender es el problema de 3-SAT. El problema


consiste en que tienes expresiones como la siguiente:
y tienes que generar una tabla de valores que satisfaga la expresión. En este caso, basta con:

x1 = true,x3 = true
El tamaño del espacio de búsqueda de posibles soluciones está dado por 2n donde n es el
número de variables booleanas que intervienen en la expresión. Para n = 8, el espacio de
búsqueda es de tamaño 256, mientras que para n = 32 es de 4,294,967,296 (n = 64;
18,446,700,000,000,000,000).

soluciones:
public class Individuo{
BitSet genotype; ...
Individuo (int size) {Random rnd = new Random(java.util.Calendar.getTimeInMillis());
genotype = new BitSet(size); for (int i = 0; i < size; i++) {
if(rnd.nextDouble() > 0.5)
genotype.set(i);
}
} ...
}

Cada bit corresponde al valor de cada variable booleana xi:

genotype.get(i) == xi

Una de las formas de evaluar la solución es la siguiente:

 counter = 1
 Revisar si cada subexpresion de tipo:

(xi ∨ xj ∨ xk)

obtener como medida de desempeño a

Seleccionamos un par de individuos de la población, que serán en los que aplicaremos los
operadores genéticos.
La forma clásica de seleccionar un par de individuos es la selección de ruleta, esto es, tal como
en los concursos de la televisión, tenemos una ruleta dividida acorde con el desempeño de
cada individuo y luego le damos un par de vueltas para ver a quien escogeremos. En código:

class Poblation{ private Individuo population[]; ... public


Individuo select(){
double sum = 0.0, tope=0.0, suma=0.0; for(int i=0; i<population.length; i++)
sum+=population[i].getFitness();
tope = rnd.nextDouble()*sum; for(int i = 0; i<population.length; i++){
suma+=population[i].getFitness(); if (suma>=tope)
return population[i];
}
}
...
}

podemos aplicar los operadores genéticos. Tradicionalmente se aplican tres: elitismo, cruza y
mutacion.

public class Poblation{ ...


public Individuo[] elitism(double percent){
int number = (int)(this.getSize()*percent); Individuo arr[]; arr = new
Individuo[number]; this.sort(); for(int i = 0; i<number; i++){
arr[i] = population[i];

Individuo{ ...
public Individuo crossover(Individuo e, double pc){
Individuo n;
BitSet nbs = this.getGenome(); BitSet obs = e.getGenome();
if(rnd.nextDouble()<pc){
for(int i = (nbs.length()/2); i<nbs.length(); i++){ nbs.set(i, obs.get(i));
} } n = new Individuo(nbs); return n;
}
...
}

public class Individuo{ ...


public Individuo mutate(double pm){
Individuo n;
BitSet bs = this.getGenome(); for(int i = 0; i<bs.length(); i++){
if (rnd.nextDouble()<pm){
bs.flip(i);
} } n = new Individuo(bs); return n;
}
...
}

mucho tiempo para ser evaluadas, por lo que se asigna un individuo por procesador
disponible.

SOLUCIÓN DE PROBLEMAS MEDIANTE BÚSQUEDA


El uso de contextos temáticos para seleccionar y filtrar información juega un papel fundamental
en los sistemas de recuperación de información basados en la tarea del usuario (e.g., [3, 8]).
Desafortunadamente, aprovechar la información del contexto durante la búsqueda en la Web
es una tarea difícil. Los buscadores actuales imponen un lımite a la longitud de las consultas, y
aun si se permitieran consultas largas las mismas podrían volverse demasiado específicas,
devolviendo muy pocos o ningún resultado. Esto dificulta la tarea de formular consultas
adecuadas para describir contextos temáticos. Una alternativa para evitar este problema es el
uso de ciertas sintaxis especiales provistas por algunos buscadores para la formulación de
consultas. Sin embargo, con la flexibilidad provista por estos mecanismos de formulación de
consultas, es posible que el vocabulario utilizado para describir el contexto difiera del usado
para indexar los recursos relevantes. La meta de nuestro trabajo de investigación es desarrollar
técnicas para refinar las consultas automáticamente y recolectar ´ recursos relevantes para el
contexto temático del usuario.
En este trabajo proponemos utilizar Algoritmos Genéticos (AGs) para abordar el problema de
reflejar contextos temáticos en las consultas formuladas a un buscador Web. Nuestra propuesta
se basa en nuevas técnicas incrementales que permiten evolucionar consultas útiles ligadas a
un contexto temático bajo análisis.

AG PARA LA BÚSQUEDA TEMÁTICA EN LA WEB


Los sistemas de recuperación de información basados en contextos temáticos monitorean
al usuario infieren sus necesidades de información y buscan recursos relevantes en la Web o
en otras fuentes electrónicas.
Tradicionalmente, tales sistemas encuentran documentos relevantes extendiendo las cónsul-
tas del usuario con palabras adicionales extraídas del contexto o formulando consultas
automáticamente, Existen varios sistemas que siguen este enfoque y que han alcanzado
resultados prometedores (e.g. [3, 9]).
Por otra parte, los AG han sido parte de diversas propuestas dentro del área de recuperación
de la información. Entre ellas cabe destacarse la aplicación de técnicas.
de AG para derivar mejores descripciones de documentos [6] y la optimización de consultas
utilizando AG para ponderar palabras [12, 2].
Podemos mencionar varias razones por las cuales los AG son apropiados para abordar el
problema de la búsqueda Web basada en contextos temáticos:

Búsqueda temática como un problema de optimización. ´ El problema de formular


buenas consultas para la búsqueda Web basada en contextos temáticos puede ser planteado
como un problema de optimización. El conjunto de búsqueda de este problema está dado por
el conjunto de posibles consultas que pueden ser presentadas a un buscador. La función objetivo
a ser optimizada toma como argumento una consulta y se define como la efectividad que posee
dicha consulta para la recuperación de material relevante cuando la misma es presentada a un
buscador.

Espacio de búsqueda con un gran número de dimensiones. El espacio de consultas


candidatas posee un gran número de dimensiones, donde cada palabra posible da lugar a una
nueva dimensión. Esta clase de problemas no son fáciles de resolver mediante métodos
analíticos, pero ´ pueden ser abordados con éxito mediante AG.

Soluciones suboptimas aceptables. En la búsqueda Web existen numerosos resultados


suboptimos que vale la pena explorar y por tal motivo este tipo de búsqueda admite la
formulación de consultas que no son óptimas. Generalmente los AG no garantizan la
identificacion de soluciones optimas, pero son altamente efectivos cuando se trata de encontrar
aquellas soluciones ´ cercanas a las óptimas
Soluciones múltiples. Múltiples conjuntos de páginas Web pueden considerarse resultados
satisfactorios para una búsqueda basada en un contexto temático. Por tal motivo, podría
interesarnos formular varias en lugar de una única consulta. Los AG pueden ser utilizados
naturalmente para problemas de optimización multimodal, devolviendo múltiples soluciones
globales.

consultas Modelo
Población de Formulación de
del Contexto
Web Consultas Consultas Iniciales
Temático
Mutación

Cruzamiento Banco de Modelado del


Motor de Mutación Contexto Temático
Búsqueda Selección

Determinación de la
Aptitud de las Consultas Recolección de
Palabras

Resultados de
resultados la Búsqueda Usuario