Table Of ContentIntroduccio´n a Matlab(cid:13)R para Resolver Problemas de Ingenier´ıa
Aplicando Algoritmos Gen´eticos
Norberto Hern´andez Romero,
Joselito Medina Mar´ın,
Juan Carlos Seck Tuoh Mora
Octubre 2012
Directorio:
Mtro. Humberto Augusto Veras Godoy
Rector
Mtro. Adolfo Pontigo Loyola
Secretario General
L.A.E. Jorge A. del Castillo Tovar
Coordinacio´n de Extensio´n y Cultura
´
Dr. Orlando Avila Pozos
Director del Instituto de Ciencias B´asicas e Ingenier´ıa (ICBI)
Dr. Juan Alberto Acosta
Secretario del ICBI
M. en C. Carlos Mart´ınez Espinosa
Coordinador de Extensio´n del ICBI
Mtro. Joel Montesinos Hern´andez
´
Jefe del Area Acad´emica de Ingenier´ıa
Comit´e editorial ICBI:
Dra. Rosa Icela Beltra´n Hern´andez
Dra. Eva Selene Hern´andez Gress
Dra. Leticia Esperanza Herna´ndez Cruz
Dra. Mar´ıa del Consuelo Cuevas Cardona
Dr. Rub´en Alejandro Mart´ınez Avendan˜o
Dr. Jos´e Guadalupe Alvarado Rodr´ıguez
Dr. Joel Sua´rez Cansino
Contenido
1 Introducci´on 7
1.1 Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Relevancia de Matlab(cid:13)R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Relevancia de los Algoritmos Gen´eticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 Optimizaci´on en Ingenier´ıa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 Relevancia del Problema de Empacado en Contenedores . . . . . . . . . . . . . . . . . . . . . 9
1.6 Organizaci´on y Enfoque del Libro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2 Fundamentos de Programaci´on en Matlab(cid:13)R 11
2.1 Introducci´on a Matlab(cid:13)R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Operadores Aritm´eticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3 Operadores Relacionales y L´ogicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 Constantes, Tipos de Datos y Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.5 Funciones Matem´aticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5.1 Funciones Trigonom´etricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5.2 Funciones Exponenciales y Logar´ıtmicas . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5.3 Funciones Matem´aticas Especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.6 Vectores y Matrices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.6.1 Operaciones con Vectores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.6.2 Operaciones con Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.7 Archivos Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.7.1 Graficaci´on 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.7.2 Graficaci´on 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.8 Control de Flujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.8.1 Estructura if −elseif −else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.8.2 Estructura for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.8.3 Estructura while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.9 Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.9.1 Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.9.2 Graficaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.9.3 Secuencia if −elseif −else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.9.4 Ciclo for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.9.5 Ciclo while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3 Principios de Algoritmos Gen´eticos 41
3.1 Algoritmos Evolutivos Computacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.1.1 Definici´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.2 Algoritmos Gen´eticos Binarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.2.1 Poblaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5
6
3.2.2 Codificaci´on/Decodificaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.2.3 Funci´on Costo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.2.4 Selecci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2.5 Cruce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.2.6 Mutaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.2.7 Algoritmo Gen´etico Binario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.3 Pruebas y Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4 Problema de Empacado en Contenedores 59
4.1 Descripci´on del Problema de Empacado en Contenedores . . . . . . . . . . . . . . . . . . . . 59
4.2 Relevancia del Problema de Empacado en Contenedores . . . . . . . . . . . . . . . . . . . . . 61
4.3 Representaci´on Gen´etica del Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.3.1 Representaci´on Basada en Contenedores . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.3.2 Representaci´on Basada en Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.3.3 Representaci´on Basada en Grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.4 Operaciones Gen´eticas para la Representaci´on Basada en Grupos . . . . . . . . . . . . . . . . 64
4.4.1 Cruce de Cromosomas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.5 Mutaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.6 Funci´on de Ajuste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.7 Implementaci´on del Algoritmo Gen´etico en Matlab(cid:13)R . . . . . . . . . . . . . . . . . . . . . . . 66
4.7.1 Inicializaci´on de Soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.7.2 Evaluaci´on de Soluciones con la Funci´on de Ajuste . . . . . . . . . . . . . . . . . . . . 68
4.7.3 Selecci´on de Mejores Soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.7.4 Cruce de Soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.7.5 Mutaci´on de Soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.7.6 Implementaci´on Integrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.8 Apuntes Finales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5 Conclusiones 79
5.1 Resultados en la Soluci´on del Problema de Empacado en Contenedores . . . . . . . . . . . . . 79
5.2 Ventajas de Matlab(cid:13)R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.3 Ventajas y Limitaciones de los Algoritmos Gen´eticos . . . . . . . . . . . . . . . . . . . . . . . 80
5.3.1 Ventajas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.3.2 Desventajas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.4 Trabajo Futuro Relacionado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Cap´ıtulo 1
Introduccio´n
1.1 Objetivo General
Estematerialbibliogr´aficofueelaboradoconlafinalidaddemostrarlaaplicaci´ondeMatlab(cid:13)R eneldesarrollo
de metodolog´ıas no convencionales en el campo de la optimizaci´on de sistemas discretos.
A pesar de la existencia de herramientas matem´aticas en el campo de la optimizaci´on, su aplicaci´on
en entornos reales es una tarea que requiere un amplio conocimiento formal en el ´area y experiencia en
su aplicaci´on. Adem´as, si se requiere automatizar el proceso de optimizaci´on pueden utilizarse software de
aplicaci´on general que pudieran no llegar a cubrir las necesidades del problema. Por otro lado, si se desea
desarrollarunaaplicaci´onalamedidaparaelproblemadeoptimizaci´on,senecesitacontarconconocimientos
en lenguajes de programaci´on de alto nivel.
En cambio, con la aparici´on de heur´ısticas alternas a los m´etodos cl´asicos de optimizaci´on, es posible
encontrarsolucionesaceptablesaproblemasencontradosenlarealidad,sinnecesidaddedesarrollarmodelos
matema´ticos demasiado complejos. Una de estas alternativas de optimizaci´on son los Algoritmos Gen´eticos
(AG), cuya implementaci´on no requiere de conocimientos matem´aticos profundos y pueden encontrar solu-
ciones aceptables del problema.
1.2 Relevancia de Matlab(cid:13)R
Los algoritmos gen´eticos pueden ser programados f´acilmente en cualquier lenguaje de programaci´on. Sin
embargo, uno de los que m´as se est´a utilizando actualmente en las ´areas de la ingenier´ıa es Matlab(cid:13)R.
Matlab(cid:13)R esunsoftwaredec´alculonum´ericoqueofreceunambientepararealizaroperacionesaritm´eticas
y vectoriales en l´ınea de comandos. Adem´as, ofrece un entorno de programaci´on de scripts que facilitan la
implementaci´on de c´odigos para la soluci´on de problemas de gran envergadura.
Matlab(cid:13)R ha sido utilizado en la implementaci´on de algoritmos de optimizaci´on, y en particular en la
implementaci´on de algoritmos gen´eticos, debido a su facilidad de programaci´on y su poder de c´omputo en
el manejo de vectores y matrices. Adem´as, ofrece herramientas para graficar funciones o series de datos en
2 y 3 dimensiones, lo que permite analizar los resultados de la optimizaci´on de forma visual. Este software
de c´alculo num´erico cuenta con un conjunto de funciones predefinidas para realizar operaciones matriciales,
para que el usuario no invierta tiempo en la programaci´on de tales operaciones.
Adem´as, en este software se incluyen m´odulos adicionales llamados “toolbox”, los cuales contienen
entornos para el desarrollo de aplicaciones m´as espec´ıficas. Entre estos “toolbox” se encuentran Simulink –
utilizadoenlasimulaci´ondesistemasdin´amicosendiferentesdominios;SymbolicMath–paraeldesarrollode
operacionesconmatem´aticasimb´olica;Optimization–ofrecealgoritmosdeoptimizaci´onest´andar;Statistics
–proporcionaalgoritmosyherramientasparaorganizar,analizarymodelarconjuntosdedatos;entremuchos
otros, que facilitan el desarrollo de aplicaciones robustas.
7
8 CAP´ITULO 1. INTRODUCCIO´N
1.3 Relevancia de los Algoritmos Gen´eticos
Los AG tienen un gran impacto como medios de optimizaci´on de procesos industriales, biol´ogicos, qu´ımicos,
modelos matem´aticos, etc., debido que trabajan con funciones lineales, no lineales, discretas, no suaves,
probabil´ısticas y no necesitan de la existencia de derivada de la funci´on objetivo [15], as´ı las razones por las
cuales los AG pueden tener ´exito en este tipo de planteamiento son las siguientes:
1. Los AG trabajan con un conjunto de par´ametros codificados, no con los par´ametros de forma directa.
2. Los AG realizan una bu´squeda con un conjunto de individuos en todo el espacio factible no solo con
un punto.
3. Los AG usan la informaci´on de la funci´on objetivo, no con sus derivadas.
4. Los AG usan reglas de transici´on probabil´ıstica, no reglas deterministas.
5. Los AG son procedimientos robustos de optimizaci´on que pueden ser implementados en arquitecturas
de computo paralelo.
1.4 Optimizacio´n en Ingenier´ıa
Laoptimizaci´onpuedeplantearsecomoajustarlasentradasocaracter´ısticasdeunprocesoindustrial,modelo
matema´tico o experimento para lograr que la salida alcance un punto m´ınimo o m´aximo dependiendo de los
intereses. Si la salida es ganancia el objetivo es maximizar y si son p´erdidas la salida es minimizar.
Sielproblemaaoptimizarsepuedeplantearmedianteunmodelomatem´aticodescritoporf :X ⊆Rn →
R, donde X es el espacio de bu´squeda. As´ı el problema de optimizaci´on puede definirse como:
min f(X)X⊆Rn sujeto a Ck ≤0 (1.1)
DondeX ⊆Rn esunconjuntoenelespacioEuclidianodedimensi´onn,f(X)esunconjuntodenu´meros
reales, k es el nu´mero de restricciones y C proporciona la forma de la restricci´on y la restricci´on es una
k
funci´on que limita el espacio de bu´squeda, a esto se le llama problema de optimizaci´on restringido. Un
punto X se le llama punto factible si satisface todas las restricciones y al conjunto de todos los puntos
i
factibles se le llama conjunto factible de bu´squeda. En el caso donde las restricciones no se definen entonces
es un problema de optimizaci´on no restringido, por lo tanto, el dominio de la funci´on es el espacio factible
de bu´squeda. Los diferentes campos de la optimizaci´on puedes clasificarse por las propiedades de funci´on
objetivo, la forma de las restricciones, el dominio, naturaleza de la funci´on objetivo, etc. La siguiente tabla
muestra una clasificaci´on respecto de las diferentes t´ecnicas matem´aticas desarrolladas para la optimizaci´on
de funciones objetivo [22].
Hay un gran nu´mero de m´etodos para resolver eficazmente los problemas de optimizaci´on definidos en
la tabla 1 como se muestran en las siguientes referencias [12] [5] [2] [23] [7] [4] [6] [3]. Sin embargo, bajo
todos los supuestos que se realizan en la modelaci´on del problema es frecuente para ciertas aplicaciones de
laingenier´ıaqueelmodelonorepresentelarealidadyenotras, lafunci´onobjetivonopuedeserdefinidapor
una ecuaci´on algebraica o diferencial, debido a que la funci´on objetivo puede contener regiones en donde la
funci´on no es suave o no tiene derivada o la salida de la funci´on objetivo es una colecci´on de datos que se
obtienen de instrumentos de medici´on y por lo tanto, ante la ausencia de una funci´on objetivo no es posible
aplicar los t´ecnicas definidas en la Tabla 1 y como consecuencia esta es una de las razones para acudir a las
t´ecnicas computacionales evolutivas.
1.5. RELEVANCIA DEL PROBLEMA DE EMPACADO EN CONTENEDORES 9
Tabla 1.1: Herramientas anal´ıticas para la optimizaci´on de sistemas
Criterio de Tipo de problema Caracter´ısticas
clasificaci´on de optimizaci´on
Por la forma Lineal Funci´on objetivo y restricciones lineales.
de la funci´on No lineal Funci´on objetivo y restricciones no lineales,
con existencia de sus derivadas.
objetivo y/o sus Convexa Funci´on objetivo y conjunto de bu´squeda
representado por un conjunto convexo.
restricciones Estoc´astica Funci´on objetivo con ruido.
Por el espacio Continuo Variables discretas en la funci´on
objetivo y restricciones.
de bu´squeda Discreto Variables reales en la funci´on
objetivo y restricciones.
H´ıbrido Variables reales y discretas
en la funci´on objetivo y restricciones.
Por la naturaleza Din´amica Funci´on objetivo variante en el tiempo.
del problema Multiobjetivo Conjunto de funciones objetivo
1.5 Relevancia del Problema de Empacado en Contenedores
Con el fin de ejemplificar la aplicaci´on de AG implementados en Matlab(cid:13)R a problemas de ingenier´ıa, se
tomar´a el problema de empacado en contenedores. El problema consiste en empacar un conjunto de objetos
en la menor cantidad de empaques posibles, donde todos estos tienen una capacidad m´axima [8].
Este problema resulta de f´acil formulaci´on, sin embargo sus caracter´ısticas combinatorias hacen que su
soluci´on no sea sencilla, por lo que se requieren de t´ecnicas evolutivas y heur´ısticas para encontrar una
soluci´on satisfactoria para instancias del problema que tomen en cuenta decenas de objetos [11] [8].
Aplicaciones de este problema se pueden encontrar en la asignaci´on de tareas y m´aquinas en sistemas de
manufactura [20] [19], asignaci´on de tareas en microprocesadores [10] [18] [25] y la minimizaci´on de espacios
y balance en el empaque de mercanc´ıas en contenedores [26] [21] [16].
1.6 Organizacio´n y Enfoque del Libro
Este libro est´a enfocado a exponer los conceptos esenciales y aplicaciones de los algoritmos gen´eticos sin
tener que dominar a profundidad un lenguaje de programaci´on.
Es por esto que se ha elegido Matlab(cid:13)R como sistema computacional para implementar los ejemplos del
libro ya que permita una implementaci´on r´apida y f´acil de aprender, lo que nos permite concentrarnos en
los detalles y el uso de los algoritmos gen´eticos as´ı como de su aplicaci´on al problema de empacado en
contenedores, m´as que en las t´ecnicas de programaci´on.
El libro est´a organizado de la siguiente manera, el Cap´ıtulo 1 presenta los conceptos b´asicos acerca
del ambiente de trabajo de Matlab(cid:13)R as´ı como las instrucciones m´as importantes que se utilizar´an para la
implementaci´on de algoritmos gen´eticos. Esta parte contiene una gran variedad de ejemplos que permitir´an
allectorrealizarprogramasnotrivialesdemanerasencilla. ElCap´ıtulo2describeloslosconceptosb´asicosde
losalgoritmosgen´eticosbinarios. Seexplicanejemplosparalaoptimizaci´ondefuncionesysuimplementaci´on
utilizando las instrucciones vistas en el cap´ıtulo anterior. Por u´ltimo, el Cap´ıtulo 3 expone la aplicaci´on de
algoritmos gen´eticos al problema de empacado en contenedores. Se describe paso a paso la implementaci´on
tantodelageneraci´onaleatoriadesolucionescomodelaimplementaci´ondiscretadelosoperadoresgen´eticos
para la soluci´on del problema descrito anteriormente. Se muestran ejemplos de instancias del problema y su
10 CAP´ITULO 1. INTRODUCCIO´N
soluci´onparaejemplificaryanalizarelfuncionamientodelalgoritmogen´etico. Estosejemplofuerontomados
de recursos en l´ınea que son comu´nmente utilizados para validar algoritmos para el problema de empacado
en contenedores. Por u´ltimo, se presentan comentarios finales indicando otras direcciones en las cuales se
pueden aplicar los algoritmos gen´eticos para problemas discretos.
Description:2 Fundamentos de Programación en Matlab R. 11. 2.1 Introducción a .. Entre estos “ toolbox ” se encuentran Simulink – utilizado en la simulación de Los AG son técnicas de búsqueda y optimización basados en los principios de la genética y selección natural. Los AG están compuestos de