SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
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
En el presente reporte se programa el método de
algoritmos genéticos con cruce parcial de Goldsberg,
mutación y selección por el método de ruleta para el
ordenamiento de personas en una sala de cine , se
presenta un análisis de la evolución de la aptitud de
la población conforme avanzan las generaciones y se
realizan análisis de convergencia en ambos métodos.
Palabras Clave: Algoritmos genéticos - Inteli-
gencia Artificial - Optimización estocástica
Índice
1. Introducción 1
2. Teoría 2
2.1. Método de Algoritmos genéticos . . . . . . . . 2
2.1.1. Resumen histórico . . . . . . . . . . . . 2
2.2. Algoritmo . . . . . . . . . . . . . . . . . . . . . 2
2.2.1. Diagrama de flujo . . . . . . . . . . . . 2
2.2.2. Descripción del algoritmo . . . . . . . . 2
2.3. Fitness . . . . . . . . . . . . . . . . . . . . . . . 3
2.3.1. Fitness puro . . . . . . . . . . . . . . . 3
2.3.2. Fitness estandarizado . . . . . . . . . . 3
2.4. Selección . . . . . . . . . . . . . . . . . . . . . . 3
2.4.1. Rueda de ruleta . . . . . . . . . . . . . . 3
2.5. Cruce de población . . . . . . . . . . . . . . . . 3
2.5.1. Cruce de un punto . . . . . . . . . . . . 3
2.5.2. Cruce parcial de Goldsberg . . . . . . . 3
2.6. Mutación . . . . . . . . . . . . . . . . . . . . . 4
3. Explicación del Código 4
4. Análisis de resultados 5
4.1. Gráficas de la evolución de los parámetros . . 6
4.1.1. Máximo comfort . . . . . . . . . . . . . 6
4.1.2. Comfort promedio . . . . . . . . . . . . 6
5. Conclusiones 7
6. Bibliografía 7
7. Apéndices 8
1. Introducción
Dentro de métodos numéricos se halla un conjunto de
técnicas que se basan en la inteligencia artificial. Este tipo
de técnicas están diseñadas para resolver problemas mucho
más complejos y sofisticados. La inteligencia artificial se
vale de métodos estocásticos, es decir, métodos aleatorios
controlados, para solucionar problemas complejos. Al invo-
lucrar variables aleatorias, la solución óptima nunca estará
asegurada y solo se podrían hablar de probabilidades. A
pesar de esto estas estrategias han sido utilizadas con gran
éxito en la física y la matemática computacional.
Algoritmos genéticos, no solo sirve para sistemas conti-
nuos, sino que también puede ser utilizado en variables dis-
cretas con restricciones muy específicas. Un ejemplo de esto
el el famoso problema del viajero. En dicho problema hay
que modificar el método de cruce tradicional, para evitar
que aparezcan soluciones fuera de las restricciones dadas.
Se hará una optimización social en base a una serie de sim-
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 un
símil a la física de partículas.
1
2 TEORÍA
2. Teoría
2.1. Método de Algoritmos genéticos
2.1.1. Resumen histórico
En los años 1970, de la mano de John Henry Holland,
surgió una de las líneas más prometedoras de la inteligen-
cia artificial, la de los algoritmos genéticos . Son llamados
así porque se inspiran en la evolución biológica y su base
genético-molecular. Estos algoritmos hacen evolucionar una
población de individuos sometiéndola a acciones aleatorias
semejantes a las que actúan en la evolución biológica (mu-
taciones y recombinaciones genéticas), así como también a
una Selección de acuerdo con algún criterio, en función del
cual se decide cuáles son los individuos más adaptados, que
sobreviven, y cuáles los menos aptos, que son descartados.
Es incluido dentro de los algoritmos evolutivos, que incluyen
también las estrategias evolutivas, la programación evoluti-
va y la programación genética. Dentro de esta última se han
logrado avances curiosos:
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
cambio) se puede demostrar que el algoritmo converge en
probabilidad al óptimo. En otras palabras, al aumentar el
número de iteraciones, la probabilidad de tener el óptimo
en la población tiende a 1 (uno).
2.2. Algoritmo
El algoritmo básico usado se describe en el siguiente dia-
grama de flujo:
2.2.1. Diagrama de flujo
Genera po-
blación inicial
Inicio
Calcular
comfort
Siguiente
generación
Criterio
de conver-
gen-
cia=true
Resultado
Fin
Rueda
de ruleta
PMX
Goldsberg
Mutación
N
N-n
N-n
n
no
Sí
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.
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
cuando se alcance la solución óptima, pero ésta general-
mente se desconoce, por lo que se deben utilizar otros
2
2.3 Fitness 2 TEORÍA
criterios de detención. Normalmente se usan dos crite-
rios: correr el AG un número máximo de iteraciones
(generaciones) o detenerlo cuando no haya cambios en
la población. Mientras no se cumpla la condición de tér-
mino se hace lo siguiente:
Selección Después de saber la aptitud de cada cromo-
soma se procede a elegir los cromosomas que serán cru-
zados en la siguiente generación. Los cromosomas con
mejor aptitud tienen mayor probabilidad de ser selec-
cionados.
Recombinación La recombinación es el principal ope-
rador genético, representa la reproducción sexual, opera
sobre dos cromosomas a la vez para generar dos descen-
dientes donde se combinan las características de ambos
cromosomas padres.
Mutación modifica al azar parte del cromosoma de
los individuos, y permite alcanzar zonas del espacio de
búsqueda que no estaban cubiertas por los individuos
de la población actual.
Reemplazo una vez aplicados los operadores genéticos,
se seleccionan los mejores individuos para conformar la
población de la generación siguiente
2.3. Fitness
2.3.1. Fitness puro
Es la medidad de ajuste natural al problema. El valor de
bondad de un individuo i en un tiempo t es:
r(i, t) =
Nc
X
j=1
|s(i, j) − c(i, 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.
2.3.2. Fitness estandarizado
El ajuste es:
s(i, t) =

r(i, t) : minimización
rmax − r(i, t) : maximización
(2)
En casos de maximización se resta de rmax el fitness pu-
ro. En casos de minimización se emplea el fitness puro. Por
lo tanto, en una generación t , un individuo i será siempre
mejor que j si se verifica s(i, t)  s(j, t)
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.
El algoritmo de rueda de ruleta es el siguiente:
sumF = suma de todos los fitness
sumR = rand(0, 1)sumF
sumP = 0, j = 0
Repetir
j = j + 1
sumP = sumP + fitness_j
Hasta (sumP ≥ sumR)
Seleccionado= j
Las áreas asignadas para los individuos buenos son pro-
porcionalmente mayores pero hay tantos individuos medio-
cres que su área total es muy significativa. La selección no
favorece suficientemente a los buenos individuos.
2.5. Cruce de población
2.5.1. Cruce de un punto
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-
mentos diferenciados en cada uno de ellos: la cabeza y la
cola. Se intercambian las colas entre los dos individuos pa-
ra generar los nuevos descendientes. De esta manera ambos
descendientes heredan información genética de los padres,
tal y como puede verse en la figura
Figura 1: Esquema de cruce de un punto
2.5.2. Cruce parcial de Goldsberg
El cruce parcial implementado en este reporte es el de
Goldsberg, que consiste en hacer dos cortes en el cromosoma
del padre y de la madre, los cortes se intercambian entre si,
y luego se halla la relación que existe entre los demás genes
para intercambiar el resto de la información. Lo anterior se
ilustra en la figura 2:
Figura 2: Esquema de cruce parcial (PMX)
3
F3019. Modelación de Sistemas Físicos 4 ITESM Campus Monterrey
El cruce usado se ilustra en la figura 3, en el corte to-
mado de la madre se buscan sus valores en el cromosoma
del padre, y estos valores se intercambian con los valores del
corte del padre. De manera igual se hace el cambio de genes
en la madre.
Figura 3: Esquema de cruce parcial modificado
2.6. Mutación
Con la probabilidad de mutación, se muta a los hijos
cambiando posiciones en los cromosomas. Si no hay muta-
ción, se hacen copia de los parientes. La mutación cambia
uno de los valores de un bit de un cromosoma, introdu-
ciendo un factor de diversificación evitando la obtención de
óptimos locales.
3. Explicación del Código
Se consideraron los siguientes aspectos en la selección de
parámetros:
Se usaron de 500 a 1000 generaciones en la convergencia
del método.
Se uso una población de 20 a 40 individuos.
El número de personas es de 20.
La probabilidad de mutación se escogió de 0.002 .
La probabilidad de cruce se decidió tomar de 0.75 .
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
repeticiones del mejor individuo.
El factor de mutación se tomo de 0.02.
El número de mutaciones se tomo de uno.
La función fitness es la suma de la simpatía que hay en-
tre dos individuos para todos los individuos presentes en la
sala:
for i=1:popsize,
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
for j=1:num_people −3; cost(i)= cost(i)+...
fa3*simpatias(pop(i,j), pop(i,j+3)); end
for j=1:num_people −4; cost(i)= cost(i)+...
fa4*simpatias(pop(i,j), pop(i,j+3)); end
end
Donde fa1 , fa2 , fa3 y fa4 son los factores de cercanía que
existen entre las personas.
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.5
La población se inicializo de manera aleatoria con los siguien-
tes comandos:
popsize= [10 20 30 40 50]; num_people= 20;
num_pasos=num_pasos(2) ;
popsize= popsize(5) ;
pop = zeros(popsize,num_people);
pop(1,:) = (1:num_people);
for k = 2:popsize ;
pop(k,:) = randperm(num_people);
end
El código de rueda de ruleta se baso en la implementada por
Haupt (2004) 1
. Al aplicar rueda de ruleta se calcularon los
pesos(prob) y se creó una función de distribución de probabi-
lidad odds, posteriormente se giro la ruleta y se determinan
los índices(newin) de los padres seleccionados. El número de
individios que se seleccionan es del 50 %
totalfit=sum(cost);
prob=cost/ totalfit;
prob=cumsum(prob);
rns=sort(rand(popsize,1));
fitin=1; newin=1;
while newin≤0.5*popsize
if fitin size(pop,2);
newin=popsize; fitin= popsize−1 ;
end
if (rns(newin)prob(fitin))
pop(newin,:)=pop(fitin,:);
newin=newin+1; fitin=fitin+1;
else
newin=newin+1; fitin=fitin+1;
end
end
1Haupt 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
F3019. Modelación de Sistemas Físicos 5 ITESM Campus Monterrey
M es el número de cruces y keep es la cantidad de individuos
que se decide que pasen de generación en generación.
El cruce parcial de Goldsberg se baso en http://read.pudn.
com/downloads110/sourcecode/math/457248/MATLAB%E9%
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
se modifico de manera sugerida por 2
. El algoritmo consiste
en crear dos cadenas , uno de la madre y uno del padre,
posteriormente se buscan los genes de la cadena de la madre
en el padre y se intercambian con los genes en la cadena del
padre:
for ii= corte1: corte2
hijo1(ii)=...
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)));
hijo2(find(temp_madre==temp_padre(ii)))=...
temp_madre(ii);
ii=ii+1;
end
Para validar los hijos se uso el comando repval crea-
do por Sheppard (2007) http://www.mathworks.com/
matlabcentral/newsreader/view_thread/30051 y si no
cumplen la condición se dejan los cromosomas intactos.
Se crean dos hijos(hijo1, hijo2) nuevos cada vez que se manda
llamar la función PMX_5(padre,madre) en cada generación.
La mutación se implementó intercambiando dos personas
aleatorias 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;
end
El número de mutaciones por generación nmut es proporcio-
nal a la razón de mutación mut_rate y al número de bits en
el cromosoma Nt.
El criterio de convergencia inicial y final se tomo en base al
número de veces que se repite el valor máximo de comfort
alcanzado a lo largo de las generaciones:
[RV, NR, POS, IR]=repval(maxc(1:ii));
if ¬isempty(NR); NR = NR(end) ; end
if NRceil(0.04*num_pasos)  (maxc(ii)− maxc(ii−3))6= 0 ;
num_gen(kk)=ii; kk=kk+1; end
if NRceil(0.45*num_pasos) ;
break
else end
Donde num_gen cuenta la generación donde se observan los
primeros criterios de convergencia.
4. Análisis de resultados
La ruleta usada tiene la distribución de la siguiente figura:
Figura 4: Comfort máximo num_pasos = 500 ,popsize = 20.
En la tabla 2 se muestra el comfort máximo donde se cumple el criterio de convergencia final y el mejor individuo asociado
para 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 15
En la siguiente tabla se muestra para distintos valores población el número de generación donde se observan los primeros
criterios de convergencia:
2Göktürk Ücóluk (1997). Genetic Algorithm Solution of the TSP Avoiding Special Crossover and Mutation. Cycle p. 57-62 . Ankara, Turkey
5
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 137
En 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 17
Finalmente , 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 1326
4.1. Gráficas de la evolución de los paráme-
tros
4.1.1. Máximo comfort
La convergencia del método se ilustra en las siguientes gráficas
tomando tamaños de población de 20 y 50 respectivamente:
Figura 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
por el usuario.
Figura 6: Comfort máximo num_pasos = 700 ,popsize = 50.
4.1.2. Comfort promedio
Finalmente se ilustra el comportamiento del comfort prome-
dio a lo largo de las generaciones:
6
F3019. Modelación de Sistemas Físicos 7 ITESM Campus Monterrey
Figura 7: Comfort promedio num_pasos = 500 ,popsize =
20.
5. Conclusiones
En conclusión, se pudo modelar el problema de los asientos de
cine con algoritmos genéticos, se codifico el problema como un
problema de permutación. No obstante se requieren más si-
mulaciones para afinar el comfort final , de acuerdo al criterio
de convergencia final , el número de valores repetidos del má-
ximo comfort alcanzado si se logra. Correr el programa PMX
requiere mucho tiempo , no obstante es muy robusto respecto
a las entradas. El programa PMX_5 sigue la sugerencia de
Göktürk Ücóluk que evita tener que hallar la relación de ma-
peo entre los cromosomas, por lo que es más fácil de extender
el programa a más genes.
Los valores de comfort alcanzados para distintos valores de
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.
[3] Haupt, Randy L. Genetic algorithms in electromagnetics.
New Jersey : Wiley, 2007.
[4] Mitchell, Melanie, An introduction to genetic algorithms.
Cambridge, Mass. : MIT Press, c1996
[5] Michalewicz, Zbigniew. Genetic algorithms + data struc-
tures = evolution programs. Berlin ;
[6] 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
[7] Göktürk Ücóluk (1997). Genetic Algorithm Solution of
the TSP Avoiding Special Crossover and Mutation. Cycle
p. 57-62 . Ankara, Turkey
[8] http://read.pudn.com/downloads110/sourcecode/
math/457248/MATLAB%E9%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
7
F3019. Modelación de Sistemas Físicos 8 ITESM Campus Monterrey
7. Apéndices
La 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

Más contenido relacionado

Destacado

Recomendações para a gestão de relações com a comunidade eficazes
Recomendações para a gestão de relações com a comunidade eficazesRecomendações para a gestão de relações com a comunidade eficazes
Recomendações para a gestão de relações com a comunidade eficazes
Jose M Leon H
 
19252442 materiales-de-construccion-ud-2
19252442 materiales-de-construccion-ud-219252442 materiales-de-construccion-ud-2
19252442 materiales-de-construccion-ud-2
Alfredo Gracida
 
zDCVwegtr
zDCVwegtrzDCVwegtr
zDCVwegtr
cmcomp
 
Insight Recent Demo
Insight Recent DemoInsight Recent Demo
Insight Recent Demo
reza-asad
 
Gane Dinero Extra en Internet
Gane Dinero Extra en InternetGane Dinero Extra en Internet
Gane Dinero Extra en Internet
Arfilior Ramirez
 
Imatge transparent impress
Imatge transparent impressImatge transparent impress
Imatge transparent impress
zOoRk
 
Presentacion luis lima
Presentacion luis limaPresentacion luis lima
Presentacion luis lima
Luis Lima
 
Modelo base na gestão de conflitos sociais
Modelo base na gestão de conflitos sociaisModelo base na gestão de conflitos sociais
Modelo base na gestão de conflitos sociais
Jose M Leon H
 

Destacado (20)

Recomendações para a gestão de relações com a comunidade eficazes
Recomendações para a gestão de relações com a comunidade eficazesRecomendações para a gestão de relações com a comunidade eficazes
Recomendações para a gestão de relações com a comunidade eficazes
 
Bienvenidos a mi blog
Bienvenidos a mi blogBienvenidos a mi blog
Bienvenidos a mi blog
 
19252442 materiales-de-construccion-ud-2
19252442 materiales-de-construccion-ud-219252442 materiales-de-construccion-ud-2
19252442 materiales-de-construccion-ud-2
 
Rc fredy carpintero
Rc fredy carpinteroRc fredy carpintero
Rc fredy carpintero
 
Colegio "manuel j calle"
Colegio "manuel j calle"Colegio "manuel j calle"
Colegio "manuel j calle"
 
Chiste
ChisteChiste
Chiste
 
Bombero con problema con las matematicas
Bombero con problema con las matematicas Bombero con problema con las matematicas
Bombero con problema con las matematicas
 
Pres Prueba
Pres   PruebaPres   Prueba
Pres Prueba
 
zDCVwegtr
zDCVwegtrzDCVwegtr
zDCVwegtr
 
Insight Recent Demo
Insight Recent DemoInsight Recent Demo
Insight Recent Demo
 
Gane Dinero Extra en Internet
Gane Dinero Extra en InternetGane Dinero Extra en Internet
Gane Dinero Extra en Internet
 
Imatge transparent impress
Imatge transparent impressImatge transparent impress
Imatge transparent impress
 
diapositiva de jhoana jimbo
diapositiva de jhoana jimbodiapositiva de jhoana jimbo
diapositiva de jhoana jimbo
 
Qué es la tecnología maria liñan
Qué es la tecnología maria liñanQué es la tecnología maria liñan
Qué es la tecnología maria liñan
 
Presentacion luis lima
Presentacion luis limaPresentacion luis lima
Presentacion luis lima
 
Acta de Constitución
Acta de ConstituciónActa de Constitución
Acta de Constitución
 
Presentación Sellos CACE 2013
Presentación Sellos CACE 2013Presentación Sellos CACE 2013
Presentación Sellos CACE 2013
 
Webquest
WebquestWebquest
Webquest
 
Blog podem calella 25 04-2015
Blog podem calella 25 04-2015Blog podem calella 25 04-2015
Blog podem calella 25 04-2015
 
Modelo base na gestão de conflitos sociais
Modelo base na gestão de conflitos sociaisModelo base na gestão de conflitos sociais
Modelo base na gestão de conflitos sociais
 

Similar a A01213521 cine maximos

Universidad_Autonoma_de_Queretaro_IMPLEM.pdf
Universidad_Autonoma_de_Queretaro_IMPLEM.pdfUniversidad_Autonoma_de_Queretaro_IMPLEM.pdf
Universidad_Autonoma_de_Queretaro_IMPLEM.pdf
arturoruizlopez1
 
Algoritmos GenéTicos
Algoritmos GenéTicosAlgoritmos GenéTicos
Algoritmos GenéTicos
ESCOM
 
Algoritmos geneticos
Algoritmos geneticosAlgoritmos geneticos
Algoritmos geneticos
YAn_dy
 
5 herramienta aprendizaje algoritmos geneticos entorno matlab
5 herramienta aprendizaje algoritmos geneticos entorno matlab5 herramienta aprendizaje algoritmos geneticos entorno matlab
5 herramienta aprendizaje algoritmos geneticos entorno matlab
Maje Gonzalez
 
Inteligencia Artificial Clase 5
Inteligencia Artificial Clase 5Inteligencia Artificial Clase 5
Inteligencia Artificial Clase 5
UNEFA
 
Implementacion Genetico AEB
Implementacion Genetico AEBImplementacion Genetico AEB
Implementacion Genetico AEB
edmodi
 
Apunte Algoritmos Geneticos
Apunte Algoritmos GeneticosApunte Algoritmos Geneticos
Apunte Algoritmos Geneticos
ESCOM
 

Similar a A01213521 cine maximos (20)

A Geneticos
A GeneticosA Geneticos
A Geneticos
 
A Geneticos
A GeneticosA Geneticos
A Geneticos
 
Artículo predicción mundial 2014 algoritmos geneticos
Artículo predicción mundial 2014   algoritmos geneticosArtículo predicción mundial 2014   algoritmos geneticos
Artículo predicción mundial 2014 algoritmos geneticos
 
Universidad_Autonoma_de_Queretaro_IMPLEM.pdf
Universidad_Autonoma_de_Queretaro_IMPLEM.pdfUniversidad_Autonoma_de_Queretaro_IMPLEM.pdf
Universidad_Autonoma_de_Queretaro_IMPLEM.pdf
 
68682 101665-1-pb
68682 101665-1-pb68682 101665-1-pb
68682 101665-1-pb
 
A G's
A G'sA G's
A G's
 
Algoritmos GenéTicos
Algoritmos GenéTicosAlgoritmos GenéTicos
Algoritmos GenéTicos
 
Algoritmos geneticos
Algoritmos geneticosAlgoritmos geneticos
Algoritmos geneticos
 
5 herramienta aprendizaje algoritmos geneticos entorno matlab
5 herramienta aprendizaje algoritmos geneticos entorno matlab5 herramienta aprendizaje algoritmos geneticos entorno matlab
5 herramienta aprendizaje algoritmos geneticos entorno matlab
 
Genetic Algorithms. Algoritmos Genéticos y cómo funcionan.
Genetic Algorithms. Algoritmos Genéticos y cómo funcionan.Genetic Algorithms. Algoritmos Genéticos y cómo funcionan.
Genetic Algorithms. Algoritmos Genéticos y cómo funcionan.
 
Inteligencia Artificial Clase 5
Inteligencia Artificial Clase 5Inteligencia Artificial Clase 5
Inteligencia Artificial Clase 5
 
Algoritmo Genético de Chu-Beasley Aplicado a la Resolución del Viaje del Caba...
Algoritmo Genético de Chu-Beasley Aplicado a la Resolución del Viaje del Caba...Algoritmo Genético de Chu-Beasley Aplicado a la Resolución del Viaje del Caba...
Algoritmo Genético de Chu-Beasley Aplicado a la Resolución del Viaje del Caba...
 
Algoritmos geneticos
Algoritmos geneticosAlgoritmos geneticos
Algoritmos geneticos
 
ALGORITMO GENETICO - II.pptx
ALGORITMO GENETICO - II.pptxALGORITMO GENETICO - II.pptx
ALGORITMO GENETICO - II.pptx
 
Implementacion Genetico AEB
Implementacion Genetico AEBImplementacion Genetico AEB
Implementacion Genetico AEB
 
Apunte Algoritmos Geneticos
Apunte Algoritmos GeneticosApunte Algoritmos Geneticos
Apunte Algoritmos Geneticos
 
Algoritmos geneticos
Algoritmos geneticosAlgoritmos geneticos
Algoritmos geneticos
 
Algoritmo genetico1
Algoritmo genetico1Algoritmo genetico1
Algoritmo genetico1
 
Anatomía de un algoritmo genético en jenes
Anatomía de un algoritmo genético en jenesAnatomía de un algoritmo genético en jenes
Anatomía de un algoritmo genético en jenes
 
Algoritmos Genéticos_Inteligencia Artificial
Algoritmos Genéticos_Inteligencia ArtificialAlgoritmos Genéticos_Inteligencia Artificial
Algoritmos Genéticos_Inteligencia Artificial
 

Más de Abraham Prado

F3013 empr13 etica-2
F3013 empr13 etica-2F3013 empr13 etica-2
F3013 empr13 etica-2
Abraham Prado
 
F2004 formulas final_v4
F2004 formulas final_v4F2004 formulas final_v4
F2004 formulas final_v4
Abraham Prado
 
F2004 formulas final
F2004 formulas finalF2004 formulas final
F2004 formulas final
Abraham Prado
 
F3006 formulas final
F3006 formulas finalF3006 formulas final
F3006 formulas final
Abraham Prado
 
Formulario cuantica 2
Formulario cuantica 2Formulario cuantica 2
Formulario cuantica 2
Abraham Prado
 

Más de Abraham Prado (13)

F3008 cm sei
F3008 cm seiF3008 cm sei
F3008 cm sei
 
F3013 empr13 etica-2
F3013 empr13 etica-2F3013 empr13 etica-2
F3013 empr13 etica-2
 
F3006 poster final2
F3006 poster final2F3006 poster final2
F3006 poster final2
 
F2004 formulas final_v4
F2004 formulas final_v4F2004 formulas final_v4
F2004 formulas final_v4
 
F2004 formulas final
F2004 formulas finalF2004 formulas final
F2004 formulas final
 
F3006 formulas final
F3006 formulas finalF3006 formulas final
F3006 formulas final
 
Formulario cuantica 2
Formulario cuantica 2Formulario cuantica 2
Formulario cuantica 2
 
F3008 ppt fotoquim_nano
F3008 ppt fotoquim_nanoF3008 ppt fotoquim_nano
F3008 ppt fotoquim_nano
 
Cuasicristal5
Cuasicristal5Cuasicristal5
Cuasicristal5
 
F3006 poster white
F3006 poster whiteF3006 poster white
F3006 poster white
 
A01213521 diagramas
A01213521 diagramasA01213521 diagramas
A01213521 diagramas
 
Curriculum 1
Curriculum 1Curriculum 1
Curriculum 1
 
Nomenclatura química
Nomenclatura químicaNomenclatura química
Nomenclatura química
 

Último

Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
JonathanCovena1
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
lupitavic
 

Último (20)

CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperio
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 

A01213521 cine maximos

  • 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 En el presente reporte se programa el método de algoritmos genéticos con cruce parcial de Goldsberg, mutación y selección por el método de ruleta para el ordenamiento de personas en una sala de cine , se presenta un análisis de la evolución de la aptitud de la población conforme avanzan las generaciones y se realizan análisis de convergencia en ambos métodos. Palabras Clave: Algoritmos genéticos - Inteli- gencia Artificial - Optimización estocástica Índice 1. Introducción 1 2. Teoría 2 2.1. Método de Algoritmos genéticos . . . . . . . . 2 2.1.1. Resumen histórico . . . . . . . . . . . . 2 2.2. Algoritmo . . . . . . . . . . . . . . . . . . . . . 2 2.2.1. Diagrama de flujo . . . . . . . . . . . . 2 2.2.2. Descripción del algoritmo . . . . . . . . 2 2.3. Fitness . . . . . . . . . . . . . . . . . . . . . . . 3 2.3.1. Fitness puro . . . . . . . . . . . . . . . 3 2.3.2. Fitness estandarizado . . . . . . . . . . 3 2.4. Selección . . . . . . . . . . . . . . . . . . . . . . 3 2.4.1. Rueda de ruleta . . . . . . . . . . . . . . 3 2.5. Cruce de población . . . . . . . . . . . . . . . . 3 2.5.1. Cruce de un punto . . . . . . . . . . . . 3 2.5.2. Cruce parcial de Goldsberg . . . . . . . 3 2.6. Mutación . . . . . . . . . . . . . . . . . . . . . 4 3. Explicación del Código 4 4. Análisis de resultados 5 4.1. Gráficas de la evolución de los parámetros . . 6 4.1.1. Máximo comfort . . . . . . . . . . . . . 6 4.1.2. Comfort promedio . . . . . . . . . . . . 6 5. Conclusiones 7 6. Bibliografía 7 7. Apéndices 8 1. Introducción Dentro de métodos numéricos se halla un conjunto de técnicas que se basan en la inteligencia artificial. Este tipo de técnicas están diseñadas para resolver problemas mucho más complejos y sofisticados. La inteligencia artificial se vale de métodos estocásticos, es decir, métodos aleatorios controlados, para solucionar problemas complejos. Al invo- lucrar variables aleatorias, la solución óptima nunca estará asegurada y solo se podrían hablar de probabilidades. A pesar de esto estas estrategias han sido utilizadas con gran éxito en la física y la matemática computacional. Algoritmos genéticos, no solo sirve para sistemas conti- nuos, sino que también puede ser utilizado en variables dis- cretas con restricciones muy específicas. Un ejemplo de esto el el famoso problema del viajero. En dicho problema hay que modificar el método de cruce tradicional, para evitar que aparezcan soluciones fuera de las restricciones dadas. Se hará una optimización social en base a una serie de sim- 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 un símil a la física de partículas. 1
  • 2. 2 TEORÍA 2. Teoría 2.1. Método de Algoritmos genéticos 2.1.1. Resumen histórico En los años 1970, de la mano de John Henry Holland, surgió una de las líneas más prometedoras de la inteligen- cia artificial, la de los algoritmos genéticos . Son llamados así porque se inspiran en la evolución biológica y su base genético-molecular. Estos algoritmos hacen evolucionar una población de individuos sometiéndola a acciones aleatorias semejantes a las que actúan en la evolución biológica (mu- taciones y recombinaciones genéticas), así como también a una Selección de acuerdo con algún criterio, en función del cual se decide cuáles son los individuos más adaptados, que sobreviven, y cuáles los menos aptos, que son descartados. Es incluido dentro de los algoritmos evolutivos, que incluyen también las estrategias evolutivas, la programación evoluti- va y la programación genética. Dentro de esta última se han logrado avances curiosos: 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 cambio) se puede demostrar que el algoritmo converge en probabilidad al óptimo. En otras palabras, al aumentar el número de iteraciones, la probabilidad de tener el óptimo en la población tiende a 1 (uno). 2.2. Algoritmo El algoritmo básico usado se describe en el siguiente dia- grama de flujo: 2.2.1. Diagrama de flujo Genera po- blación inicial Inicio Calcular comfort Siguiente generación Criterio de conver- gen- cia=true Resultado Fin Rueda de ruleta PMX Goldsberg Mutación N N-n N-n n no Sí 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. 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 cuando se alcance la solución óptima, pero ésta general- 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- rios: correr el AG un número máximo de iteraciones (generaciones) o detenerlo cuando no haya cambios en la población. Mientras no se cumpla la condición de tér- mino se hace lo siguiente: Selección Después de saber la aptitud de cada cromo- soma se procede a elegir los cromosomas que serán cru- zados en la siguiente generación. Los cromosomas con mejor aptitud tienen mayor probabilidad de ser selec- cionados. Recombinación La recombinación es el principal ope- rador genético, representa la reproducción sexual, opera sobre dos cromosomas a la vez para generar dos descen- dientes donde se combinan las características de ambos cromosomas padres. Mutación modifica al azar parte del cromosoma de los individuos, y permite alcanzar zonas del espacio de búsqueda que no estaban cubiertas por los individuos de la población actual. Reemplazo una vez aplicados los operadores genéticos, se seleccionan los mejores individuos para conformar la población de la generación siguiente 2.3. Fitness 2.3.1. Fitness puro Es la medidad de ajuste natural al problema. El valor de bondad de un individuo i en un tiempo t es: r(i, t) = Nc X j=1 |s(i, j) − c(i, 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. 2.3.2. Fitness estandarizado El ajuste es: s(i, t) = r(i, t) : minimización rmax − r(i, t) : maximización (2) En casos de maximización se resta de rmax el fitness pu- ro. En casos de minimización se emplea el fitness puro. Por lo tanto, en una generación t , un individuo i será siempre mejor que j si se verifica s(i, t) s(j, t) 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. El algoritmo de rueda de ruleta es el siguiente: sumF = suma de todos los fitness sumR = rand(0, 1)sumF sumP = 0, j = 0 Repetir j = j + 1 sumP = sumP + fitness_j Hasta (sumP ≥ sumR) Seleccionado= j Las áreas asignadas para los individuos buenos son pro- porcionalmente mayores pero hay tantos individuos medio- cres que su área total es muy significativa. La selección no favorece suficientemente a los buenos individuos. 2.5. Cruce de población 2.5.1. Cruce de un punto 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- mentos diferenciados en cada uno de ellos: la cabeza y la cola. Se intercambian las colas entre los dos individuos pa- ra generar los nuevos descendientes. De esta manera ambos descendientes heredan información genética de los padres, tal y como puede verse en la figura Figura 1: Esquema de cruce de un punto 2.5.2. Cruce parcial de Goldsberg El cruce parcial implementado en este reporte es el de Goldsberg, que consiste en hacer dos cortes en el cromosoma del padre y de la madre, los cortes se intercambian entre si, y luego se halla la relación que existe entre los demás genes para intercambiar el resto de la información. Lo anterior se ilustra en la figura 2: Figura 2: Esquema de cruce parcial (PMX) 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- mado de la madre se buscan sus valores en el cromosoma del padre, y estos valores se intercambian con los valores del corte del padre. De manera igual se hace el cambio de genes en la madre. Figura 3: Esquema de cruce parcial modificado 2.6. Mutación Con la probabilidad de mutación, se muta a los hijos cambiando posiciones en los cromosomas. Si no hay muta- ción, se hacen copia de los parientes. La mutación cambia uno de los valores de un bit de un cromosoma, introdu- ciendo un factor de diversificación evitando la obtención de óptimos locales. 3. Explicación del Código Se consideraron los siguientes aspectos en la selección de parámetros: Se usaron de 500 a 1000 generaciones en la convergencia del método. Se uso una población de 20 a 40 individuos. El número de personas es de 20. La probabilidad de mutación se escogió de 0.002 . La probabilidad de cruce se decidió tomar de 0.75 . 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 repeticiones del mejor individuo. El factor de mutación se tomo de 0.02. El número de mutaciones se tomo de uno. La función fitness es la suma de la simpatía que hay en- tre dos individuos para todos los individuos presentes en la sala: for i=1:popsize, 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 for j=1:num_people −3; cost(i)= cost(i)+... fa3*simpatias(pop(i,j), pop(i,j+3)); end for j=1:num_people −4; cost(i)= cost(i)+... fa4*simpatias(pop(i,j), pop(i,j+3)); end end Donde fa1 , fa2 , fa3 y fa4 son los factores de cercanía que existen entre las personas. 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.5 La población se inicializo de manera aleatoria con los siguien- tes comandos: popsize= [10 20 30 40 50]; num_people= 20; num_pasos=num_pasos(2) ; popsize= popsize(5) ; pop = zeros(popsize,num_people); pop(1,:) = (1:num_people); for k = 2:popsize ; pop(k,:) = randperm(num_people); end El código de rueda de ruleta se baso en la implementada por Haupt (2004) 1 . Al aplicar rueda de ruleta se calcularon los pesos(prob) y se creó una función de distribución de probabi- lidad odds, posteriormente se giro la ruleta y se determinan los índices(newin) de los padres seleccionados. El número de individios que se seleccionan es del 50 % totalfit=sum(cost); prob=cost/ totalfit; prob=cumsum(prob); rns=sort(rand(popsize,1)); fitin=1; newin=1; while newin≤0.5*popsize if fitin size(pop,2); newin=popsize; fitin= popsize−1 ; end if (rns(newin)prob(fitin)) pop(newin,:)=pop(fitin,:); newin=newin+1; fitin=fitin+1; else newin=newin+1; fitin=fitin+1; end end 1Haupt 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 Monterrey M es el número de cruces y keep es la cantidad de individuos que se decide que pasen de generación en generación. El cruce parcial de Goldsberg se baso en http://read.pudn. com/downloads110/sourcecode/math/457248/MATLAB%E9% 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 se modifico de manera sugerida por 2 . El algoritmo consiste en crear dos cadenas , uno de la madre y uno del padre, posteriormente se buscan los genes de la cadena de la madre en el padre y se intercambian con los genes en la cadena del padre: for ii= corte1: corte2 hijo1(ii)=... 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))); hijo2(find(temp_madre==temp_padre(ii)))=... temp_madre(ii); ii=ii+1; end Para validar los hijos se uso el comando repval crea- do por Sheppard (2007) http://www.mathworks.com/ matlabcentral/newsreader/view_thread/30051 y si no cumplen la condición se dejan los cromosomas intactos. Se crean dos hijos(hijo1, hijo2) nuevos cada vez que se manda llamar la función PMX_5(padre,madre) en cada generación. La mutación se implementó intercambiando dos personas aleatorias 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; end El número de mutaciones por generación nmut es proporcio- nal a la razón de mutación mut_rate y al número de bits en el cromosoma Nt. El criterio de convergencia inicial y final se tomo en base al número de veces que se repite el valor máximo de comfort alcanzado a lo largo de las generaciones: [RV, NR, POS, IR]=repval(maxc(1:ii)); if ¬isempty(NR); NR = NR(end) ; end if NRceil(0.04*num_pasos) (maxc(ii)− maxc(ii−3))6= 0 ; num_gen(kk)=ii; kk=kk+1; end if NRceil(0.45*num_pasos) ; break else end Donde num_gen cuenta la generación donde se observan los primeros criterios de convergencia. 4. Análisis de resultados La ruleta usada tiene la distribución de la siguiente figura: Figura 4: Comfort máximo num_pasos = 500 ,popsize = 20. En la tabla 2 se muestra el comfort máximo donde se cumple el criterio de convergencia final y el mejor individuo asociado para 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 15 En la siguiente tabla se muestra para distintos valores población el número de generación donde se observan los primeros criterios de convergencia: 2Gö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 137 En 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 17 Finalmente , 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 1326 4.1. Gráficas de la evolución de los paráme- tros 4.1.1. Máximo comfort La convergencia del método se ilustra en las siguientes gráficas tomando tamaños de población de 20 y 50 respectivamente: Figura 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 por el usuario. Figura 6: Comfort máximo num_pasos = 700 ,popsize = 50. 4.1.2. Comfort promedio Finalmente se ilustra el comportamiento del comfort prome- dio a lo largo de las generaciones: 6
  • 7. F3019. Modelación de Sistemas Físicos 7 ITESM Campus Monterrey Figura 7: Comfort promedio num_pasos = 500 ,popsize = 20. 5. Conclusiones En conclusión, se pudo modelar el problema de los asientos de cine con algoritmos genéticos, se codifico el problema como un problema de permutación. No obstante se requieren más si- mulaciones para afinar el comfort final , de acuerdo al criterio de convergencia final , el número de valores repetidos del má- ximo comfort alcanzado si se logra. Correr el programa PMX requiere mucho tiempo , no obstante es muy robusto respecto a las entradas. El programa PMX_5 sigue la sugerencia de Göktürk Ücóluk que evita tener que hallar la relación de ma- peo entre los cromosomas, por lo que es más fácil de extender el programa a más genes. Los valores de comfort alcanzados para distintos valores de 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. [3] Haupt, Randy L. Genetic algorithms in electromagnetics. New Jersey : Wiley, 2007. [4] Mitchell, Melanie, An introduction to genetic algorithms. Cambridge, Mass. : MIT Press, c1996 [5] Michalewicz, Zbigniew. Genetic algorithms + data struc- tures = evolution programs. Berlin ; [6] 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 [7] Göktürk Ücóluk (1997). Genetic Algorithm Solution of the TSP Avoiding Special Crossover and Mutation. Cycle p. 57-62 . Ankara, Turkey [8] http://read.pudn.com/downloads110/sourcecode/ math/457248/MATLAB%E9%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 7
  • 8. F3019. Modelación de Sistemas Físicos 8 ITESM Campus Monterrey 7. Apéndices La 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