Inteligencia Artificial - Algoritmo Genético

 
Vista:

Algoritmo Genético

Publicado por raida (1 intervención) el 13/06/2006 19:27:54
Soy una joven estudiante de informática y me mandaron a realizar este ejercicio y tengo grandes dudas para resolverlo, si pudieran hacerme el favor de mandarme la respuesta le estaría muy agradecida.


El problema de la optimización de propósito general consiste en encontrar los valores óptimos de una determinada función a la cuál no se le exige el cumplimiento de ninguna característica específica, como podría ser que fuera una función lineal (como lo exige el método SIMPLES que se imparte en Investigación de Operaciones). Existen muchos métodos para este tipo de problemas entre los que están: los Algoritmos Genéticos, las Estrategias Evolutivas, los Escaladores de Colinas, la Búsqueda limitada por umbral, etc. Asuma que solo se trabajarán con funciones de 6 variables, y cada variable toma valores entre 0 y 9. Para todos estos métodos, suponga que existe una predicado llamado “funcion” que, dada una lista que representa un vector de soluciones, devuelve un valor de evaluación que se corresponde con la función que se desea maximizar. Por ejemplo, la función “producto” podría implementarse así:

funcion([], 1).
funcion([X|L], P):- funcion(L, P1), P is P1*X.

a) Implemente el método de optimización conocido como Algoritmo Genético que se inspira en el proceso evolutivo basado en la reproducción sexual. En este método se generan aleatoriamente un grupo de soluciones (asuma que son 50). Luego, de ellas se toma el 20% mejor (o sea, las 10 con mayor valor para la función a optimizar) y las combina utilizando el operador de cruzamiento para generar 40 soluciones nuevas. Para ello, repite 20 veces el siguiente proceso: Toma dos soluciones aleatoriamente entre las 10 mejores y realiza el cruzamiento. El cruzamiento produce dos nuevas soluciones tomando una sublista de una y otra sublista de la otra, de manera aleatoria. Por ejemplo, el cruzamiento de dos padres como los siguientes puede producir los siguientes hijos H1 y H2: cruzamiento([1,1,4,5,6,7], [2,3,1,1,1,1], H1, H2), produce: H1 = [1,1,1,1,1,1] y H2 = [2,3,4,5,6,7]. Esto se corresponde con el cruzamiento después de la variable número 2. Podría haberse escogido aleatoriamente otro punto de cruce que se correspondiera con las variables: 1, 3, 4 ó 5. Cuando se han generado las 40 soluciones nuevas estas, junto a las 10 mejores, forman lo que se llama “nueva generación”. Ahora, esta nueva generación de 50 soluciones vuelve a pasar por todo el proceso nuevamente: Se escogen las 10 mejores, se cruzan, etc. Permita que el usuario pueda seleccionar el número de generaciones que desea. Al final, devuelva la mejor solución encontrada durante toda la evolución.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Algoritmo Genético

Publicado por emlio placencia (1 intervención) el 17/07/2008 05:42:08
Hola, soy un joven que recién por curiosidad y sin ninguna relación con las esferas de mi vida cotidiana, estoy empezando a investigar sobre este interesante tema. Bueno, me considero un primate en esto, sin embargo me surgió esta pregunta, que a lo mejor ya en su planteamiento se encuentra errónea: al parecer cada solución algorítmica potencial o individuo trabaja de forma paralela a los demás para resolver el problema, es decir solo utiliza sus propios recursos internos sin nada que ver a otro hermano aleatoreo ¿Qué sucedería si los individuos de una población pudieran trabajar en conjunto o grupo utilizando las facultades de cada uno para formar una solución grupal mas acaba? Es decir, como la resolución de un problema llevado acabo por un grupo multidisciplinario de humanos donde los recursos internos de cada individuo se unen con el otro para formar una solución grupal multidimensional.
nexo* De esta pregunta me surge un esbozo que algo tiene que ver con "comunicación".
bueno me despido, espero con ansias su respuesta, muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Genético

Publicado por SOL (1 intervención) el 18/10/2009 20:13:10
Hola, tengo el mismo problema alquien que nos pueda ayudar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Algoritmo Genético

Publicado por Manuel Rigñack Mayan (1 intervención) el 21/10/2009 17:06:19
Hola estoy muy contento de haber encontrado este sitio ya que estoy trabajando con estos temas , me hace falta que me ayuden a resolver este problema que es utilizando el algoritmo Metaheurísticos Escalador de Colina.
La implementación del algoritmo es para aplicar al problema One Max
Recocido Simulado
One-Max: Tiene como objetivo maximizar el número de unos en una cadena, el problema original es para cadenas binarias[29], pero se trato para cadenas de enteros. Formalmente, se describe como: una cadena x = {x1, x2,..., xn}, xi toma valores de 0 a 9, y maximiza la siguiente ecuación
One-Max (Cadena) = Cantidad de unos que hay en una cadena.
Para definir el problema solamente se necesita decidir el tamaño n de la cadena, dado el valor de n el óptimo se encuentra cuando el número de unos en la cadena es n, es decir, el máximo de la función es la longitud de la cadena. La cantidad de variables se corresponde con la longitud de la cadena. Ejemplo: One-Max (3 1 1 0 1 0 2 1 3 0 4 0 1 1 1 0 1 0 0 1) = 9, n = 20, hay 9 posiciones ocupadas por "1".
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar