Your SlideShare is downloading. ×

A01213521 cine maximos

165

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
165
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Tarea 12: Asientos de cine M3019. Modelación de Sistemas Físicos Abraham Prado A01213521 Monterrey, Nuevo León. 27 de marzo del 2012 Resumen 4. Análisis de resultados 5 En el presente reporte se programa el método de 4.1. Gráficas de la evolución de los parámetros . . 6 algoritmos genéticos con cruce parcial de Goldsberg, mutación y selección por el método de ruleta para el 4.1.1. Máximo comfort . . . . . . . . . . . . . 6 ordenamiento de personas en una sala de cine , se presenta un análisis de la evolución de la aptitud de 4.1.2. Comfort promedio . . . . . . . . . . . . 6 la población conforme avanzan las generaciones y se realizan análisis de convergencia en ambos métodos. 5. Conclusiones 7 Palabras Clave: Algoritmos genéticos - Inteli- gencia Artificial - Optimización estocástica 6. Bibliografía 7Índice 7. Apéndices 81. Introducción 1 1. Introducción2. Teoría 2 2.1. Método de Algoritmos genéticos . . . . . . . . 2 Dentro de métodos numéricos se halla un conjunto de 2.1.1. Resumen histórico . . . . . . . . . . . . 2 técnicas que se basan en la inteligencia artificial. Este tipo de técnicas están diseñadas para resolver problemas mucho 2.2. Algoritmo . . . . . . . . . . . . . . . . . . . . . 2 más complejos y sofisticados. La inteligencia artificial se 2.2.1. Diagrama de flujo . . . . . . . . . . . . 2 vale de métodos estocásticos, es decir, métodos aleatorios controlados, para solucionar problemas complejos. Al invo- 2.2.2. Descripción del algoritmo . . . . . . . . 2 lucrar variables aleatorias, la solución óptima nunca estará 2.3. Fitness . . . . . . . . . . . . . . . . . . . . . . . 3 asegurada y solo se podrían hablar de probabilidades. A 2.3.1. Fitness puro . . . . . . . . . . . . . . . 3 pesar de esto estas estrategias han sido utilizadas con gran éxito en la física y la matemática computacional. 2.3.2. Fitness estandarizado . . . . . . . . . . 3 2.4. Selección . . . . . . . . . . . . . . . . . . . . . . 3 Algoritmos genéticos, no solo sirve para sistemas conti- 2.4.1. Rueda de ruleta . . . . . . . . . . . . . . 3 nuos, sino que también puede ser utilizado en variables dis- cretas con restricciones muy específicas. Un ejemplo de esto 2.5. Cruce de población . . . . . . . . . . . . . . . . 3 el el famoso problema del viajero. En dicho problema hay 2.5.1. Cruce de un punto . . . . . . . . . . . . 3 que modificar el método de cruce tradicional, para evitar 2.5.2. Cruce parcial de Goldsberg . . . . . . . 3 que aparezcan soluciones fuera de las restricciones dadas. Se hará una optimización social en base a una serie de sim- 2.6. Mutación . . . . . . . . . . . . . . . . . . . . . 4 patías y antipatías de un grupo de personas que irán al cine y se sentaran en una sola fila. Esto es puede verse como un3. Explicación del Código 4 símil a la física de partículas. 1
  • 2. 2 TEORÍA2. Teoría 2.2.1. Diagrama de flujo Genera po- Inicio blación inicial2.1. Método de Algoritmos genéticos Siguiente N Calcular generación comfort2.1.1. Resumen histórico Criterio de conver- Sí En los años 1970, de la mano de John Henry Holland, Resultado gen-surgió una de las líneas más prometedoras de la inteligen- cia=truecia artificial, la de los algoritmos genéticos . Son llamadosasí porque se inspiran en la evolución biológica y su basegenético-molecular. Estos algoritmos hacen evolucionar una nopoblación de individuos sometiéndola a acciones aleatoriassemejantes a las que actúan en la evolución biológica (mu- Ruedataciones y recombinaciones genéticas), así como también a n Fin de ruletauna Selección de acuerdo con algún criterio, en función delcual se decide cuáles son los individuos más adaptados, quesobreviven, y cuáles los menos aptos, que son descartados.Es incluido dentro de los algoritmos evolutivos, que incluyentambién las estrategias evolutivas, la programación evoluti-va y la programación genética. Dentro de esta última se han PMXlogrado avances curiosos: Goldsberg N-n Un algoritmo genético es un método de búsqueda dirigi-da basada en probabilidad. Bajo una condición muy débil(que el algoritmo mantenga elitismo, es decir, guarde siem-pre al mejor elemento de la población sin hacerle ningún Mutacióncambio) se puede demostrar que el algoritmo converge en N-nprobabilidad al óptimo. En otras palabras, al aumentar elnúmero de iteraciones, la probabilidad de tener el óptimoen la población tiende a 1 (uno). 2.2.2. Descripción del algoritmo Inicialización: Se genera aleatoriamente la población inicial, que está constituida por un conjunto de cromo- somas los cuales representan las posibles soluciones del problema. En caso de no hacerlo aleatoriamente, es im- portante garantizar que dentro de la población inicial, se tenga la diversidad estructural de estas soluciones para tener una representación de la mayor parte de la población posible o al menos evitar la convergencia pre- matura.2.2. Algoritmo Evaluación: A cada uno de los cromosomas de esta po- blación se aplicará la función de aptitud para saber qué tan buena es la solución que se está codificando. Condición de término El AG se deberá detener El algoritmo básico usado se describe en el siguiente dia- cuando se alcance la solución óptima, pero ésta general-grama de flujo: mente se desconoce, por lo que se deben utilizar otros 2
  • 3. 2.3 Fitness 2 TEORÍA criterios de detención. Normalmente se usan dos crite- sumF = suma de todos los fitness rios: correr el AG un número máximo de iteraciones (generaciones) o detenerlo cuando no haya cambios en sumR = rand(0, 1)sumF la población. Mientras no se cumpla la condición de tér- sumP = 0, j=0 mino se hace lo siguiente: Repetir Selección Después de saber la aptitud de cada cromo- soma se procede a elegir los cromosomas que serán cru- j =j+1 zados en la siguiente generación. Los cromosomas con mejor aptitud tienen mayor probabilidad de ser selec- sumP = sumP + f itness_j cionados. Hasta (sumP ≥ sumR) Recombinación La recombinación es el principal ope- rador genético, representa la reproducción sexual, opera Seleccionado= j sobre dos cromosomas a la vez para generar dos descen- dientes donde se combinan las características de ambos Las áreas asignadas para los individuos buenos son pro- cromosomas padres. porcionalmente mayores pero hay tantos individuos medio- cres que su área total es muy significativa. La selección no Mutación modifica al azar parte del cromosoma de favorece suficientemente a los buenos individuos. los individuos, y permite alcanzar zonas del espacio de búsqueda que no estaban cubiertas por los individuos de la población actual. 2.5. Cruce de población Reemplazo una vez aplicados los operadores genéticos, 2.5.1. Cruce de un punto se seleccionan los mejores individuos para conformar la población de la generación siguiente Es la más sencilla de las técnicas de cruce. Una vez se- leccionados dos individuos se cortan sus cromosomas por un punto seleccionado aleatoriamente para generar dos seg- 2.3. Fitness mentos diferenciados en cada uno de ellos: la cabeza y la 2.3.1. Fitness puro cola. Se intercambian las colas entre los dos individuos pa- ra generar los nuevos descendientes. De esta manera ambos Es la medidad de ajuste natural al problema. El valor de descendientes heredan información genética de los padres, bondad de un individuo i en un tiempo t es: tal y como puede verse en la figura Nc r(i, t) = |s(i, j) − c(i, j)| (1) j=1 Donde para cada caso j s(i, j) es el valor deseado , c(i, j) es el valor obtenido y Nc es el número de casos. Figura 1: Esquema de cruce de un punto 2.3.2. Fitness estandarizado El ajuste es: 2.5.2. Cruce parcial de Goldsberg r(i, t) : minimización s(i, t) = (2) rmax − r(i, t) : maximización El cruce parcial implementado en este reporte es el de En casos de maximización se resta de rmax el fitness pu- Goldsberg, que consiste en hacer dos cortes en el cromosoma ro. En casos de minimización se emplea el fitness puro. Por del padre y de la madre, los cortes se intercambian entre si, lo tanto, en una generación t , un individuo i será siempre y luego se halla la relación que existe entre los demás genes mejor que j si se verifica s(i, t) < s(j, t) para intercambiar el resto de la información. Lo anterior se ilustra en la figura 2: 2.4. Selección 2.4.1. Rueda de ruleta También denominado selección basada en rangos, con- siste en asignar a cada individuo una porción de la ruleta que es proporcional a su fitness. Luego, hacemos rodar la ruleta y el favorecido es seleccionado para ser padre en la próxima generación. Figura 2: Esquema de cruce parcial (PMX) El algoritmo de rueda de ruleta es el siguiente: 3
  • 4. F3019. Modelación de Sistemas Físicos 4 ITESM Campus Monterrey El cruce usado se ilustra en la figura 3, en el corte to- El número de personas es de 20. mado de la madre se buscan sus valores en el cromosoma del padre, y estos valores se intercambian con los valores del La probabilidad de mutación se escogió de 0.002 . corte del padre. De manera igual se hace el cambio de genes La probabilidad de cruce se decidió tomar de 0.75 . en la madre. La función de fitness no se modifico. El número de individuos que pasa a la siguiente gene- ración es del 50 El criterio de paro se tomo en base al número de pasos. El criterio de convergencia final se basa en el número de Figura 3: Esquema de cruce parcial modificado repeticiones del mejor individuo. El factor de mutación se tomo de 0.02. 2.6. Mutación El número de mutaciones se tomo de uno. Con la probabilidad de mutación, se muta a los hijos La función fitness es la suma de la simpatía que hay en- cambiando posiciones en los cromosomas. Si no hay muta- tre dos individuos para todos los individuos presentes en la ción, se hacen copia de los parientes. La mutación cambia sala: uno de los valores de un bit de un cromosoma, introdu- ciendo un factor de diversificación evitando la obtención de for i=1:popsize, óptimos locales. for j=1:num_people −1 ; cost(i)= cost(i)+ ... fa1*simpatias(pop(i,j), pop(i,j+1)); end for j=1:num_people −2; cost(i)= cost(i)+... fa2*simpatias(pop(i,j), pop(i,j+2)); end 3. Explicación del Código for j=1:num_people −3; cost(i)= cost(i)+... fa3*simpatias(pop(i,j), pop(i,j+3)); end Se consideraron los siguientes aspectos en la selección de for j=1:num_people −4; cost(i)= cost(i)+... fa4*simpatias(pop(i,j), pop(i,j+3)); end parámetros: end Se usaron de 500 a 1000 generaciones en la convergencia Donde fa1 , fa2 , fa3 y fa4 son los factores de cercanía que del método. existen entre las personas. Se uso una población de 20 a 40 individuos. Los parámetros iniciales del programa son: Cuadro 1: Parámetros sugeridos para el programa popsize num_pasos num_people mut_rate selection 20-50 700 20 0.15 0.5La población se inicializo de manera aleatoria con los siguien- individios que se seleccionan es del 50 %tes comandos: totalfit=sum(cost);popsize= [10 20 30 40 50]; num_people= 20; prob=cost/ totalfit;num_pasos=num_pasos(2) ; prob=cumsum(prob); popsize= popsize(5) ; rns=sort(rand(popsize,1));pop = zeros(popsize,num_people); fitin=1; newin=1;pop(1,:) = (1:num_people); while newin≤0.5*popsizefor k = 2:popsize ; if fitin >size(pop,2); pop(k,:) = randperm(num_people); newin=popsize; fitin= popsize−1 ; end end if (rns(newin)<prob(fitin)) pop(newin,:)=pop(fitin,:);El código de rueda de ruleta se baso en la implementada por newin=newin+1; fitin=fitin+1;Haupt (2004) 1 . Al aplicar rueda de ruleta se calcularon los elsepesos(prob) y se creó una función de distribución de probabi- newin=newin+1; fitin=fitin+1; endlidad odds, posteriormente se giro la ruleta y se determinan endlos índices(newin) de los padres seleccionados. El número de 1 Haupt R. L. & Haupt S. E.(2004) . Appendix II. Binary genetic algorithm. Practical genetic algorithms,second edition (211-219). Wiley-Interscience . A John Wiley & Sons , Inc., Publication 4
  • 5. F3019. Modelación de Sistemas Físicos 5 ITESM Campus MonterreyM es el número de cruces y keep es la cantidad de individuos el cromosoma Nt.que se decide que pasen de generación en generación. El criterio de convergencia inicial y final se tomo en base alEl cruce parcial de Goldsberg se baso en http://read.pudn. número de veces que se repite el valor máximo de comfortcom/downloads110/sourcecode/math/457248/MATLAB%E9% alcanzado a lo largo de las generaciones:81%97%E4%BC%A0%E7%AE%97%E6%B3%95PMX%E5%8F%98%E6%8D%A2%E7%9A%84%E6%BA%90%E4%BB%A3%E7%A0%81.m__.htm y [RV, NR, POS, IR]=repval(maxc(1:ii));se modifico de manera sugerida por 2 . El algoritmo consiste if ¬isempty(NR); NR = NR(end) ; enden crear dos cadenas , uno de la madre y uno del padre, if NR>ceil(0.04*num_pasos) & (maxc(ii)− maxc(ii−3))= 0 ;posteriormente se buscan los genes de la cadena de la madre num_gen(kk)=ii; kk=kk+1; end if NR>ceil(0.45*num_pasos) ;en el padre y se intercambian con los genes en la cadena del breakpadre: else endfor ii= corte1: corte2 Donde num_gen cuenta la generación donde se observan los hijo1(ii)=... primeros criterios de convergencia. temp_padre(find(temp_padre==temp_madre(ii))); hijo1(find(temp_padre==temp_madre(ii))) =... temp_padre(ii); hijo2(ii)=... temp_madre(find(temp_madre==temp_padre(ii))); 4. Análisis de resultados hijo2(find(temp_madre==temp_padre(ii)))=... temp_madre(ii);ii=ii+1; La ruleta usada tiene la distribución de la siguiente figura:endPara validar los hijos se uso el comando repval crea-do por Sheppard (2007) http://www.mathworks.com/matlabcentral/newsreader/view_thread/30051 y si nocumplen la condición se dejan los cromosomas intactos.Se crean dos hijos(hijo1, hijo2) nuevos cada vez que se mandallamar la función PMX_5(padre,madre) en cada generación.La mutación se implementó intercambiando dos personasaleatorias de individuo aleatorio:for ic = 1:nmut ;row1=ceil(rand*(popsize−1))+1;col1=ceil(rand*npar);col2=ceil(rand*npar);temp=pop(row1,col1);pop(row1,col1)=pop(row1,col2);pop(row1,col2)=temp;endEl número de mutaciones por generación nmut es proporcio- Figura 4: Comfort máximo num_pasos = 500 ,popsize = 20.nal a la razón de mutación mut_rate y al número de bits enEn la tabla 2 se muestra el comfort máximo donde se cumple el criterio de convergencia final y el mejor individuo asociadopara distintos valores de población y 700 generaciones: Tabla 2. Solución al problema de los asientos de cine con distintos tamaños de población f _sol popsize x_sol 1296 20 9 15 7 2 20 1 3 16 18 19 5 13 6 17 11 12 14 8 4 10 1254 30 17 18 2 14 3 4 8 19 12 1 5 9 7 20 16 11 13 15 6 10 1303 40 20 1 2 11 3 9 8 5 10 14 4 12 15 18 16 13 19 6 17 7 1326 50 9 4 8 12 14 10 18 7 16 20 1 13 19 17 5 6 2 11 3 15En la siguiente tabla se muestra para distintos valores población el número de generación donde se observan los primeroscriterios de convergencia: 2 Göktürk Ücóluk (1997). Genetic Algorithm Solution of the TSP Avoiding Special Crossover and Mutation. Cycle p. 57-62 . Ankara, Turkey 5
  • 6. F3019. Modelación de Sistemas Físicos 6 ITESM Campus Monterrey Tabla 3. Generaciones donde se observa convergencia inicial popsize num_gen 20 241 289 30 120 162 205 329 380 40 42 43 134 192 50 60 137En la tabla 4 se muestran valores de como fue evolucionando el mejor individuo con una población de 50 para 700 generaciones: Tabla 4. Evolución del mejor individuo para num_pasos = 700 y popsize = 50 3 4 8 12 14 10 7 18 16 20 1 13 19 17 5 6 9 11 2 15 3 4 8 12 14 10 18 7 16 20 1 13 19 17 5 6 9 11 2 15 5 14 8 20 4 12 3 9 13 7 11 6 17 1 15 2 10 18 19 16 6 18 3 19 11 2 1 9 20 14 15 12 8 4 10 17 5 13 7 16 9 4 8 12 14 10 18 7 16 20 1 13 19 17 5 6 2 11 3 15 10 4 8 14 6 5 20 7 1 15 12 13 2 18 3 19 9 16 11 17Finalmente , se tabulo la evolución del comfort máximo para distintos valores de población Tabla 5. Evolución del máximo comfort para diferentes tamaños de población popsize maxc_un 20 859 1040 1049 1061 1093 1110 1189 1221 1258 1296 30 0 1005 1021 1070 1126 1160 1178 1188 1241 1247 1254 40 0 967 983 1100 1147 1159 1210 1214 1225 1303 50 0 952 1074 1195 1238 1266 13264.1. Gráficas de la evolución de los paráme- tros4.1.1. Máximo comfortLa convergencia del método se ilustra en las siguientes gráficastomando tamaños de población de 20 y 50 respectivamente: Figura 6: Comfort máximo num_pasos = 700 ,popsize = 50. 4.1.2. Comfort promedioFigura 5: Comfort máximo num_pasos = 500 ,popsize = 20.En la gráfica de arriba no se implemento el criterio de con-vergencia final por lo que corre el número de pasos total dado Finalmente se ilustra el comportamiento del comfort prome-por el usuario. dio a lo largo de las generaciones: 6
  • 7. F3019. Modelación de Sistemas Físicos 7 ITESM Campus Monterrey población convergen al valor final deseado en el rango de 1296- 1326 sin tener que correr el número de generaciones impuesto por el usuario. El valor recomendado para ordenar a las personas en el cine es: (9 4 8 12 14 10 18 7 16 20 1 13 19 17 5 6 2 11 3 15) 6. Bibliografía [1] Guevara, E. : Optimización con Algoritmos Genéticos [Presentación de PowerPoint]. Recuperada de la base de datos del curso de Modelación de Sistemas Físicos en Blackboard. [2] R2011b MathWorks Documentation.Figura 7: Comfort promedio num_pasos = 500 ,popsize = [3] Haupt, Randy L. Genetic algorithms in electromagnetics.20. New Jersey : Wiley, 2007. [4] Mitchell, Melanie, An introduction to genetic algorithms. Cambridge, Mass. : MIT Press, c19965. Conclusiones [5] Michalewicz, Zbigniew. Genetic algorithms + data struc- tures = evolution programs. Berlin ;En conclusión, se pudo modelar el problema de los asientos de [6] Haupt R. L. & Haupt S. E.(2004) . Appendix II. Binarycine con algoritmos genéticos, se codifico el problema como un genetic algorithm. Practical genetic algorithms, secondproblema de permutación. No obstante se requieren más si- edition (211-219). Wiley- Interscience . A John Wiley &mulaciones para afinar el comfort final , de acuerdo al criterio Sons , Inc., Publicationde convergencia final , el número de valores repetidos del má-ximo comfort alcanzado si se logra. Correr el programa PMX [7] Göktürk Ücóluk (1997). Genetic Algorithm Solution ofrequiere mucho tiempo , no obstante es muy robusto respecto the TSP Avoiding Special Crossover and Mutation. Cyclea las entradas. El programa PMX_5 sigue la sugerencia de p. 57-62 . Ankara, TurkeyGöktürk Ücóluk que evita tener que hallar la relación de ma- [8] http://read.pudn.com/downloads110/sourcecode/peo entre los cromosomas, por lo que es más fácil de extender math/457248/MATLAB%E9%81%97%E4%BC%A0%E7%AE%97%el programa a más genes. E6%B3%95PMX%E5%8F%98%E6%8D%A2%E7%9A%84%E6%BA%Los valores de comfort alcanzados para distintos valores de 90%E4%BB%A3%E7%A0%81.m__.htm 7
  • 8. F3019. Modelación de Sistemas Físicos 8 ITESM Campus Monterrey7. ApéndicesLa matriz de simpatías:  −2 5 6 3 6 −1 −2 4 −3 4 5 3 0 −2 2 −2 2 5 7 7 5 6 5 2 −1 1 5 2 5 −1 2 7 −2 6 6 1 −2 3 2 2  4 −2 −3 2 6 −3 −1 7 7 4 4 5 2 3 6 6 −2 1 6 1   −2 −1 −3 6 4 3 4 4 0 1 1 7 5 0 5 1 4 2 −2 −1   6 4 −2 −2 6 7 6 3 3 1 1 3 5 6 4 −2 0 2 7 −1   −1 4 0 0 6 −2 −2 0 0 −1 −1 1 5 −2 4 3 4 4 6 5   3 5 −3 1 −2 −3 7 0 −1 −1 1 2 −1 2 6 6 4 4 3 4   2 2 1 3 1 6 −3 6 5 3 −3 6 2 4 −2 0 2 0 1 2   −1 1 0 6 7 −1 5 1 4 0 2 −3 6 0 0 −3 4 −2 0 5   −3 3 2 2 3 −3 5 5 0 3 0 −1 −2 1 −3 −2 2 5 4 2   5 6 6 1 6 5 −3 −2 3 6 7 2 6 2 5 −2 2 1 −3 3  5 4 0 4 2 −2 2 6 1 4 3 2 6 6 2 4 2 5 1 −1  1 2 0 2 −3 6 6 −3 −2 4 5 −2 −1 5 1 2 6 −1 6 3   −2 0 6 6 3 −2 0 6 −3 7 1 4 −2 −2 −1 4 1 −2 2 −2   3 4 0 2 −1 1 5 6 2 5 2 6 2 0 2 4 −2 6 2 −2   −1 1 −2 2 2 3 3 2 0 3 5 −2 5 1 0 3 −1 6 2 4   4 3 2 2 4 3 5 −2 0 6 7 1 2 6 −2 3 4 7 0 3   2 6 6 −1 3 4 5 −1 0 −2 2 0 1 1 −2 6 5 6 7 −1  0 5 1 −2 3 3 −3 4 −1 0 6 7 2 −1 −2 4 7 −3 7 1  6 6 4 −2 1 1 0 5 1 7 4 3 −2 3 1 6 −1 2 2 3 8

×