Introduccio´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: