Академический Документы
Профессиональный Документы
Культура Документы
CICLO : IX
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
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
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
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);
}
} ...
}
genotype.get(i) == xi
counter = 1
Revisar si cada subexpresion de tipo:
(xi ∨ xj ∨ xk)
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:
podemos aplicar los operadores genéticos. Tradicionalmente se aplican tres: elitismo, cruza y
mutacion.
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;
}
...
}
mucho tiempo para ser evaluadas, por lo que se asigna un individuo por procesador
disponible.
consultas Modelo
Población de Formulación de
del Contexto
Web Consultas Consultas Iniciales
Temático
Mutación
Determinación de la
Aptitud de las Consultas Recolección de
Palabras
Resultados de
resultados la Búsqueda Usuario