58
TESIS Que presenta: Miriam Fernández Jiménez Para obtener el grado de: Maestra en Redes y Sistemas Integrados Director de Tesis: Dr. Efrén Mezura Montes Co-Director de Tesis: Dr. Edgar Alfredo Portilla Flores “OPTIMIZACIÓN DE UN MECANISMO DE CUATRO BARRAS USANDO EL ALGORITMO DE OPTIMIZACIÓN BASADO EN TORMENTA DE IDEAS Xalapa, Veracruz, México Diciembre, 2014

TESIS - Laboratorio Nacional de Informática Avanzada …emezura/util/files/thesis-Miriam.pdf · Índice de Tablas ... Figura 5.1 Datos agrupados alrededor de tres centroides

  • Upload
    vohuong

  • View
    219

  • Download
    0

Embed Size (px)

Citation preview

Página 1

TESIS

Que presenta: Miriam Fernández Jiménez

Para obtener el grado de: Maestra en Redes y Sistemas Integrados

Director de Tesis: Dr. Efrén Mezura Montes

Co-Director de Tesis: Dr. Edgar Alfredo Portilla Flores

“OPTIMIZACIÓN DE UN MECANISMO DE

CUATRO BARRAS USANDO EL ALGORITMO DE

OPTIMIZACIÓN BASADO EN TORMENTA DE

IDEAS “

Xalapa, Veracruz, México Diciembre, 2014

Página 2

Página 3

Dedicatoria

A mi hermanito: para que te sirva

de motivación y en un tiempo sea

yo quien este leyendo tu tesis.

Página 4

Agradecimientos

A mi madre, por ser un ejemplo de perseverancia y trabajo, eres una excelente

amiga y mi guerrera favorita, gracias por tu apoyo y creer siempre en mí.

A mi asesor el Dr. Efrén Mezura Montes por brindarme la oportunidad de

trabajar con él, por su dirección tan acertada y sobre todo por el tiempo

invertido en esta tesis.

Al Dr. Edgar Alfredo Portilla Flores por salvarme de las dudas surgidas en el

camino, por compartir sus conocimientos y avances en el tema.

A la Dra. Cora Beatriz Excelente Toledo por llenarme de ánimo y aportarme una

perspectiva adecuada para concluir este trabajo en tiempo y forma, gracias por

sus comentarios siempre oportunos.

Página 5

ÍNDICE

RESUMEN ............................................................................................... 7

Índice de Figuras ................................................................................... 8

Índice de Tablas ..................................................................................... 9

1. Introducción ......................................................................... 10

1.1 Descripción del problema ............................................................. 11

1.2 Hipótesis ......................................................................................... 12

1.3 Objetivo General ............................................................................ 12

1.4 Estructura del documento ............................................................ 13

2. Optimización ........................................................................ 14

2.1 Concepto de Optimización ........................................................ 14

2.3 Técnicas Metaheurísticas .......................................................... 16

2.4 Algoritmos de Optimización y una Clasificación .................... 19

2.4.1 Basados en Inteligencia Colectiva (o de enjambre) ............. 20

2.4.2 Basados en Física y Química ................................................. 21

2.4.3 Otros algoritmos: .................................................................... 21

2.4.4 Algoritmos Evolutivos ............................................................ 22

3. Mecanismos de cuatro Barras ............................................ 24

4. Algoritmo Brain Storm Optimization (BSO) ....................... 30

4.1 Proceso de Lluvia de ideas ....................................................... 30

4.2 Algoritmo Brain Storm Optimization ........................................ 33

4.2.1 Inicialización de la población ................................................. 35

Página 6

4.2.2 Clustering ................................................................................. 35

4.2.3 Alteración de centroides ......................................................... 36

4.2.4 Actualización de Individuos ................................................... 36

5. Metodología y Diseño de Experimentos ............................. 40

5.1 Valores Iniciales ......................................................................... 41

5.2 Procedimiento Realizado ........................................................... 42

6. Resultados y Discusión ....................................................... 46

6.1 Resultados .................................................................................. 47

6.2 Discusión..................................................................................... 51

6.3 Comparativa ................................................................................ 53

7. Conclusiones y Trabajo Futuro........................................... 55

Referencias ................................................................................... 56

Página 7

RESUMEN

En este trabajo se presenta la optimización de un mecanismo de cuatro barras

de tipo Manivela-Biela-Balancín que cuenta con un motor de corriente directa

como elemento impulsor del sistema.

Para realizar el proceso de optimización se utiliza el algoritmo llamado “Brain

Storming Optimization” (BSO), que resuelve problemas de optimización

basándose en una técnica grupal del ser humano para resolver problemas

llamada lluvia de ideas.

Los resultados obtenidos se comparan contra los encontrados por un algoritmo

del estado del arte en diseño mecatrónico basado en evolución diferencial.

El desempeño del algoritmo BSO muestra ser altamente competitivo con

respecto al del algoritmo basado en evolución diferencial, lo que muestra la

viabilidad de éste para resolver problemas complejos de diseño en ingeniería.

Página 8

ÍNDICE DE FIGURAS

Figura 2.1 Diagrama de flujo del comportamiento de un algoritmo evolutivo. .. 23

Figura 3.1 Modelo esquemático de un mecanismo de MBB. ........................... 25

Figura 3.2 Modelo esquemático de un motor de C.D. ...................................... 26

Figura 4.1 Diagrama de flujo del algoritmo BSO. ............................................. 34

Figura 5.1 Datos agrupados alrededor de tres centroides. .............................. 44

Página 9

ÍNDICE DE TABLAS

Tabla 4.1 Pasos en el proceso “Brainstorming” ................................................ 31

Tabla 4.2 Reglas de Osborn para la generación de ideas en el proceso

Brainstorming .................................................................................................... 32

Tabla 4.3 Pasos del algoritmo BSO. ................................................................. 39

Tabla 5.1 Conjunto de parámetros iniciales para el algoritmo BSO. ................. 41

Tabla 5.2 Ejemplo de una población inicial (conjunto de ideas). ...................... 43

Tabla 6.1 Conjunto de parámetros con los que se obtuvieron mejores

resultados. ........................................................................................................ 47

Tabla 6.2 Conjunto de resultados obtenidos en el primer problema de

optimización (maximización). Todas las soluciones son factibles. El mejor

resultado obtenido se encuentra en color rojo. ................................................. 48

Tabla 6.3 Datos estadísticos obtenidos del conjunto de resultados de la Tabla

6.2 para el primer problema de optimización (maximización). .......................... 49

Tabla 6.4 Conjunto de resultados obtenidos en el segundo problema de

optimización (minimización). Todas las soluciones son factibles. El mejor

resultado obtenido se encuentra en color rojo. ................................................. 50

Tabla 6.5 Datos estadísticos obtenidos del conjunto de resultados de la Tabla

6.4 para el segundo problema de optimización (minimización). ....................... 51

Tabla 6.6 Valores Obtenidos con Evolución Diferencial para el problema de

maximización. ................................................................................................... 53

Tabla 6.7 Valores Obtenidos con BSO para el problema de maximización. .... 54

Tabla 6.8 Valores Obtenidos con Evolución Diferencial para el problema de

minimización. .................................................................................................... 54

Tabla 6.9 Valores Obtenidos con BSO para el problema de minimización. ...... 54

Página 10

1. Introducción

En la vida cotidiana el ser humano siempre está buscando soluciones

más eficaces y rápidas para resolver sus problemas. La idea de hacer

más con menos siempre ha despertado un gran interés. Sin embargo,

existen problemas de la vida real donde los métodos exactos no son

viables, por lo que los métodos aproximados suelen ser una

alternativa válida para solucionarlos. La finalidad de este trabajo es

aplicar un algoritmo aproximado, basado en una de las formas que

los humanos resuelven problemas, en la resolución de un problema

mecatrónico de la vida real. En este capítulo se describe el problema,

se presenta una hipótesis así como el objetivo a cumplir.

Los problemas de optimización son comunes en el quehacer humano. Existen

técnicas matemáticas para resolverlos [1]. Sin embargo, existen instancias,

particularmente del mundo real, donde dichas técnicas no pueden ser

aplicadas, su empleo es complicado, o los resultados obtenidos no son

satisfactorios. De ahí que existan técnicas alternativas llamadas heurísticas

que, aunque no pueden garantizar encontrar la mejor solución existente,

proveen de soluciones altamente competitivas en un tiempo razonable [2].

Entre las opciones más conocidas de este tipo de técnicas se tienen a los

algoritmos evolutivos [3] y a la inteligencia colectiva [4]. Los primeros basan su

funcionamiento en emular la evolución natural y la supervivencia del más apto

para evolucionar soluciones de problemas de optimización y los segundos

resuelven la misma tarea pero emulando comportamientos sociales y

cooperativos de organismos simples como insectos. Actualmente han surgido

nuevas técnicas con inspiraciones diversas.

Los seres humanos son los animales más inteligentes del mundo, por lo tanto

un algoritmo de optimización basado en el comportamiento del ser humano y en

Página 11

su creatividad para resolver problemas debería ser superior a los algoritmos

inspirados en el comportamiento colectivo de insectos como hormigas, abejas,

etc. [4]. Para este trabajo se ha seleccionado un algoritmo novedoso que se

basa en el proceso de lluvia de ideas o brainstorming [5], que es una técnica

grupal utilizada para generar ideas nuevas y brindar soluciones a un problema.

El algoritmo propuesto de BrainStrorming Optimization (BSO) se probará con el

fin de optimizar el diseño de un mecanismo de cuatro barras del tipo Manivela-

Biela-Balancín (MBB), el cual tiene acoplado un motor de corriente directa

(C.D.) al eje de entrada [6].

1.1 Descripción del problema

El mecanismo de cuatro barras es básico para el diseño de máquinas, por lo

que es necesario que se asegure que no falle cuando se encuentre operando.

Cada uno de los eslabones que componen al mecanismo de cuatro barras se

encuentra unido por articulaciones, las cuales le permiten realizar movimientos

dependiendo de su grado de libertad.

Cuando se cuenta con un motor de C.D. como elemento impulsor del sistema la

velocidad angular de entrada no es constante. El ciclo de trabajo de un

mecanismo como éstos, consta de varias posiciones, las cuales son afectadas

por diferentes cargas, por lo tanto es necesario implementar un sistema de

control que regule la velocidad de entrada al mecanismo con el fin de obtener

siempre la salida deseada para la que fue creado ese diseño mecánico. Los

detalles técnicos del problema se pueden encontrar en [6].

Para problemas como el que se plantea, la Ingeniería mecatrónica proporciona

un enfoque en el que el problema se visualiza como un conjunto de

subsistemas interactuando unos con otros para lograr un objetivo, recalcando la

Página 12

importancia de que los subsistemas se relacionen para asegurar un mejor

desempeño.

Sin embargo, existen problemáticas que únicamente pueden resolverse

utilizando un algoritmo de tiempo exponencial. Este tipo de problemas está

cobrando una mayor notoriedad en la actualidad y se vuelve necesario modelar

y resolver tareas como la optimización y el aprendizaje para aplicaciones donde

no se puede obtener una solución de manera analítica [7]. Es por ésto que se

aplican técnicas metaheurísticas a problemas de optimización [2] y se analizan

diferentes opciones para encontrar así, la que proporcione un resultado de

mejor calidad.

En este trabajo precisamente se pondrá a prueba la eficacia de un algoritmo

novedoso basado en el proceso humano de la lluvia o tormenta de ideas,

siguiendo la línea de que un algoritmo basado en una técnica humana para

resolver problemas proveerá una solución satisfactoria.

1.2 Hipótesis

BSO proveerá un mejor desempeño al resolver el problema mecatrónico

planteado en el presente trabajo con respecto a un algoritmo evolutivo,

evolución diferencial en este caso.

1.3 Objetivo General

Implementar el algoritmo de optimización BSO para el diseño óptimo de un

mecanismo de cuatro barras.

Página 13

1.4 Estructura del documento

Capítulo 1. Proyecto. En este capítulo se introduce al lector en lo que será el

proyecto general que se atiende en esta tesis, el problema que se ataca y la

propuesta de solución que se plantea.

Capítulo 2. Optimización. En este apartado se define el concepto de

optimización y los elementos que componen un problema de optimización.

Capítulo 3. Mecanismos de cuatro Barras. En esta parte del documento se

mencionarán los sistemas mecánicos y los mecanismos que los integran,

haciendo énfasis en aquellos de cuatro barras y en su proceso de diseño, tema

de estudio en esta tesis.

Capítulo 4. Algoritmo Brain Storm Optimization. En este capítulo se abordará

al algoritmo Brain Storm Optimization, se analizará su funcionamiento y sus

operadores, se revisará su pseudo código y finalmente se realizarán las

adaptaciones necesarias para resolver el problema planteado.

Capítulo 5. Metodología. En este capítulo se explicará el diseño experimental

para llegar a los resultados mostrados en el capítulo siguiente.

Capítulo 6. Resultados y Discusiones. En este capítulo se mostrarán los

resultados a los que se llegaron con la implementación del algoritmo y se

realizará un análisis de ellos.

Capítulo 7. Conclusiones. En este apartado se presentan las conclusiones de

esta tesis y el trabajo futuro.

Página 14

2. Optimización

Hace tiempo que el hombre busca, mejores maneras de realizar las

tareas cotidianas de la vida, que proporcionen el mejor resultado, el

que genere mayores ganancias, una mayor producción o aquel que

se traduzca en el menor consumo de tiempo, en la menor inversión

de dinero o el menor desperdicio de recursos.

Procesos de producción y administración, diseños de redes de

telecomunicación, problemas de distribución y envíos por mencionar

algunos, todos ellos tienen un factor común, el objetivo es maximizar

o minimizar un determinado valor, es decir, optimizarlo. Por ello se

llaman problemas de optimización.

Es importante hablar de la optimización también llamada programación

matemática, ya que este trabajo pretende optimizar un diseño mecánico. En

este apartado se abordarán los conceptos básicos del tema.

2.1 Concepto de Optimización

El proceso de optimización consiste en la búsqueda de la mejor solución para

un problema entre un conjunto de alternativas. Para efectos de este trabajo se

definirá optimizar como encontrar el valor de las variables que al mismo tiempo

que satisfacen las restricciones alcanzan el valor de calidad óptimo conocido

como función objetivo.

Página 15

Componentes de un problema de optimización:

Función objetivo: Es el propósito de la optimización. Es decir, es la

medida cuantitativa que indicará el desempeño o bondad del sistema, es

el valor que da la pauta para discriminar si el vector de variables de

decisión es el óptimo para maximizar o minimizar un problema.

Generalmente se trata de números enteros o reales, matemáticamente

se representa de la siguiente manera:

Variables de decisión: Es el vector de parámetros de entrada que

afectan el valor de la función objetivo.

El vector de n variables se representa de la siguiente manera [8]:

Restricciones: Aportan realismo a la optimización, están definidas por

las características y/o requisitos en la vida real de los componentes de

un sistema. Se traducen como limitaciones que las variables deben

satisfacer, cuando se presentan significa que no cualquier solución es

posible o factible. Las restricciones pueden ser expresadas en forma de

ecuaciones de igualdad o desigualdad respectivamente [8]:

En un problema de optimización numérica, optimizar equivale a resolver una

ecuación de este tipo:

ó

)(max xfx

)(min xfx

xnxxx ,,2,1

nixi ,...,2,1,

0),...,( 1 nxxg

0),...,( 1 nxxh

)(xf

x

Página 16

2.2 Problemas Tratables e Intratables

El esfuerzo necesario para resolver un problema de forma eficiente puede variar

enormemente, es por ello que surge la siguiente clasificación de los problemas

computacionales:

Tratables: Problemas para los cuales existe un algoritmo de solución

que se ejecuta en tiempo polinomial, también conocidos como problemas

P (de orden polinomial).

Intratables Problemas para los que no se conoce ningún algoritmo de

complejidad polinomial, también llamados problemas NP (de orden no

determinístico polinomial).

En un problema de optimización, lo deseable es encontrar no solamente una

solución, sino la mejor solución, sin embargo existen problemas que

únicamente pueden resolverse utilizando un algoritmo de tiempo exponencial o

incluso, puede ser que no exista algoritmo alguno, por lo cual, al tener este tipo

de información puede optarse por la búsqueda o aplicación de técnicas

metaheurísticas existentes, que si bien no garantizan una solución óptima, si

pueden proporcionar una buena solución.

2.3 Técnicas Metaheurísticas

La palabra heurística se deriva de la palabra griega heuriken que significa

“descubrir”. También dio origen a la exclamación eureka, (aquella que hizo

famosa Aquímedes) cuyo significado es “lo encontré”.

Así definieron Bartholdi y Platzman el concepto de heurística [11]:

Página 17

“Una heurística puede verse como un procesador de información que,

deliberadamente, pero juiciosamente, ignora cierta información. Ignorando

información, una heurística se libra de gran parte del esfuerzo que debió

haberse requerido para leer los datos y hacer cálculos con ellos. Por otra parte,

la solución producida por tal heurística, es independiente de la información

ignorada, y de este modo no se ve afectada por cambios en tal información.

Idealmente, se busca ignorar información que resulta muy caro colectar y

mantener, esto es, computacionalmente caro de explotar y mantener, y que

contribuye en poco a la precisión de la solución.”

El propósito de una función heurística es el de guiar el proceso de búsqueda en

la dirección más provechosa sugiriendo qué camino tomar cuando hay más de

uno disponible. Se podrían comparar con guías de turismo, por un lado pueden

sugerir las rutas más interesantes pero por otro lado, podrían omitir lugares de

interés para algunas personas. Los métodos heurísticos normalmente están

inspirados en la intuición o en la naturaleza y no están diseñados para ningún

problema en particular.

Una técnica metaheurística es un procedimiento de búsqueda que tampoco

garantiza la obtención de la solución óptima y que se basa en la aplicación de

algunas reglas sencillas, pero a diferencia de un método heurístico, la

búsqueda será orientada con el fin de evitar óptimos locales. Estas técnicas se

han vuelto muy recurridas sobretodo en problemas de optimización ya que son

simples, efectivas y sobre todo por su mejor desempeño.

El funcionamiento de una metaheurística se podría resumir de la siguiente

manera: se comienza con un conjunto de soluciones potenciales, aunque no las

mejores, a partir de este conjunto se obtiene una o más que satisfacen algún

Página 18

criterio y se vuelve a comenzar el proceso hasta llegar a alguna condición de

paro previamente definida.

Las técnicas metaheurísticas comparten algunas características que se enlistan

a continuación [17]:

Son aproximadas, es decir no garantizan encontrar la mejor solución.

Son ciegas, es decir debe indicárseles cuando detenerse, ya que ellas no

saben si han logrado una solución óptima.

En ocasiones aceptan soluciones relativamente malas, o al menos no

mejores que la anterior, lo que se considera un paso intermedio para

llegar a una región de soluciones no explorada. Esta característica se

compara con escalar una montaña, donde hay tanto cimas como

abismos, las “malas” soluciones serían el equivalente a posicionarse en

el fondo de la montaña, pero es solamente desde ese lugar que se

puede llegar a una cima más alta incluso de la que se ha descendido.

Son generales, pensadas para implementarse en cualquier problema de

optimización, lo único que se requiere es tener una representación

adecuada del problema, una función objetivo y un mecanismo para

moverse en el espacio de búsqueda.

Bajo ciertas condiciones, asintóticamente convergen con una solución

óptima.

Estas técnicas permiten resolver problemas complejos de una manera sencilla y

obtener soluciones suficientemente buenas en tiempos razonables.

Página 19

2.4 Algoritmos de Optimización y una Clasificación

Hay problemas de optimización del mundo real que a menudo son problemas

NP y por lo tanto se vuelven muy difíciles de resolver. Para este tipo de

problemas no se conocen algoritmos eficientes. Como resultado, muchos

problemas tienen que ser resueltos por ensayo y error utilizando diversas

técnicas de optimización. Cada vez se desarrollan nuevos algoritmos para tratar

de hacer frente a estos problemas de optimización difíciles.

La naturaleza ha inspirado a muchos investigadores de muchas maneras. Hoy

en díamuchos de los nuevos algoritmos son inspirados en la naturaleza o bio-

inspirados. Entre los algoritmos bio-inspirados, una clase especial de algoritmos

se han desarrollado inspirándose en la inteligencia colectiva (o de enjambre).

De hecho, los algoritmos basados en la inteligencia de enjambre se encuentran

entre los más populares. Entre los ejemplos más conocidos se encuentran la

optimización basada en la colonia de hormigas y la optimización de enjambre

de partículas.

Sin embargo, no todos los algoritmos se basan en los sistemas biológicos.

Muchos algoritmos se han desarrollado con base en sistemas físicos y

químicos. A continuación se presenta una clasificación de algoritmos basada en

la metáfora en la que se inspiran [12]:

Página 20

2.4.1 Basados en Inteligencia Colectiva (o de enjambre)

La inteligencia colectiva o de enjambre (SI por su equivalente en inglés Swarm

Intelligence), se refiere a la conducta cooperativa que surge de la interacción de

múltiples agentes; sostiene que la inteligencia se deriva de la interacción de los

individuos en un mundo social. Además, este modelo de inteligencia se puede

aplicar de manera efectiva a los sistemas de inteligencia artificial [18].

Todos los algoritmos basados en SI usan conjuntos de agentes muy simples,

inspirados en el comportamiento colectivo de los insectos sociales, como las

hormigas, termitas, abejas y avispas, así como de otros animales sociales como

bandadas de pájaros o peces. Mientras que cada ser puede ser considerado

como poco inteligente, todo el sistema de múltiples individuos puede mostrar un

comportamiento auto-organizado y por lo tanto puede comportarse como una

especie precisamente de inteligencia colectiva.

Los algoritmos basados en SI se encuentran entre los más populares y

ampliamente utilizados. Hay muchas razones de tal popularidad, una de las

razones es que los algoritmos basados en SI normalmente comparten

información entre múltiples agentes, de modo que se autoorganizan, y

aprenden durante cada iteración. Entre los algoritmos más conocidos de esta

clasificación se encuentran:

Optimización basada en colonias de hormigas

Colonia artificial de abejas

Optimización basada en enjambre de abejas

Algoritmo de enjambre de partículas

Una lista más completa de algoritmo puede ser vista en [12].

Página 21

2.4.2 Basados en Física y Química

No todos los algoritmos metaheurísticos son bio-inspirados, debido a que sus

fuentes de inspiración a menudo provienen de la física y la química. Para los

algoritmos que no son bio-inspirados, la mayoría se han desarrollado mediante

la imitación de ciertas leyes físicas y / o químicas, incluyendo las cargas

eléctricas, la gravedad, los sistemas fluviales, etc.

Entre algunos ejemplos podemos mencionar:

Hoyo negro [19]

Optimización de la fuerza central [20]

Optimización electro-magnética [21]

Búsqueda gravitacional [22]

2.4.3 Otros algoritmos:

Cuando los investigadores desarrollan nuevos algoritmos, algunos pueden

buscar inspiración fuera de la naturaleza. En consecuencia, algunos algoritmos

no son bio-inspirado o basado en la química-física /, a veces es difícil ubicar a

algunos algoritmos en las tres categorías, debido a que ellos se han

desarrollado mediante el uso de varias características de diferentes fuentes,

como social, emocional, etc.

Podemos mencionar:

Optimización basada en anarquía de la sociedad [23]

Brain Storming Optimization. [5]

Página 22

2.4.4 Algoritmos Evolutivos

Los Algoritmos Evolutivos (EAs) se han popularizado como métodos robustos y

efectivos para la resolución de problemas de optimización. Un algoritmo

evolutivo de basa en una población, cada individuo dentro de esa población

representa una solución en potencia al problema.

Emulando el proceso de selección natural, el cual asegura la supervivencia del

más fuerte o mejor adaptado, un algoritmo evolutivo tiene mecanismos para

asegurarse que a través de las generaciones los mejores individuos sean los

sobrevivientes. Para determinar si un individuo es mejor que otro, se evalúa

cada uno de acuerdo a la función objetivo del problema, dando como resultado

un valor llamado “aptitud”, así que el individuo con la mejor aptitud (mayor o

menor, según el problema sea de maximización o minimización

respectivamente) será el elegido.

Estos algoritmos cuentan con operadores de variación como la recombinación y

mutación, cuyo objetivo es ir refinando la búsqueda de una solución, de manera

que la población se dirige hacia áreas que representen mejor soluciones a un

problema.

Los algoritmos evolutivos más populares son: la programación evolutiva (Fogel,

1962), los algoritmos genético (Holland, 1975), estrategias evolutivas

(Rechenberg, 1973), y la programación genética (Koza, 1992), los cuales han

sido inspirados en la evolución biológica. [5]

Página 23

A continuación se muestra la Figura 2.1 que incluye el diagrama de flujo del

comportamiento general de los algoritmos evolutivos y que de alguna manera

engloba el funcionamiento de un algoritmo bio-inspirado.

Figura 2.1 Diagrama de flujo del comportamiento de un algoritmo evolutivo.

GENERAR NUEVA

POBLACIÓN

CRITERIOS DE

OPTIMIZACIÓN

ALCANZADOS?

SOLUCIÓN

INICIO

POBLACIÓN INICIAL

EVALUACIÓN DE LA FUNCIÓN OBJETIVO

MEJOR INDIVIDUO

SELECCIÓN

COMBINACIÓN /

MUTACIÓN

Página 24

3. Mecanismos de cuatro Barras

El presente capítulo aborda los puntos más importantes para

comprender el problema mecatrónico planteado en el presente

trabajo. Contiene su modelo matemático así como sus diagramas

correspondientes. Se han tomado los elementos más relevantes a

modo de dar un contexto del problema. Para una lectura más a

detalle consultar [16]

En esta sección se describe brevemente el enfoque dinámico de diseño para un

mecanismo de cuatro barras del tipo Manivela-Biela-Balancín (MBB) el cual

tiene acoplado un motor de corriente directa (C.D.) al eje de entrada.

El mecanismo de cuatro barras, en sus diferentes configuraciones, es uno de

los mecanismos más utilizados en la maquinaria industrial. Una de las

principales suposiciones en el diseño de dicho mecanismo es la que establece

que su velocidad angular de entrada es constante, lo que no siempre se cumple

cuando un motor de C.D. es el elemento impulsor del sistema [14]. Lo anterior

se puede explicar cuando se estudia el ciclo de trabajo del mecanismo de

cuatro barras, en cada ciclo se tienen posiciones en las que la inercia del

mecanismo varía tales como: posiciones de volquete, posiciones de máximo y

mínimo ángulo de transmisión o posiciones de bloqueo debido a ajustes

imprecisos en las articulaciones de los eslabones [15]. En dichas posiciones, la

carga “vista” por el motor de impulsión varía y por consecuencia también

cambia el par aplicado por el motor al sistema mecánico. Por lo tanto,

implementar un sistema de control que regule la velocidad de entrada al

sistema mecánico es de gran importancia para el buen funcionamiento del

Página 25

mismo, no olvidando que la salida del sistema debe cumplir con los

requerimientos para los cuales se diseñó dicho sistema mecánico.

A continuación se presentan las funciones objetivo y restricciones del sistema

MBB de manera general, sin embargo, se puede consultar a detalle en el

reporte [16]. En la Figura 3.1 es presentado el Modelo esquemático de un

mecanismo de MBB, donde:

Figura 3.1. Modelo esquemático de un mecanismo de MBB.

y i son los círculos sombreados que indican la posición de los centros de

masa de cada eslabón.

mi y Ji representan la masa y el momento de inercia con respecto al

centroide del i-ésimo eslabón respectivamente.

Li representa la longitud del eslabón.

i es la coordenada para el eslabón en cuestión.

k y C Representan a un resorte torsional y a un amortiguador con

constantes de rigidez y amortiguamiento respectivamente, y son los

Página 26

elementos de carga del mecanismo.

Figura 3.2 Modelo esquemático de un motor de C.D.

La Figura 3.2 muestra el esquema de un motor de C.D. con caja de engranes

en la salida del mismo. Los parámetros descriptivos del sistema eléctrico son:

L y R representan la inductancia y la resistencia de armadura

respectivamente,

i(t) es la corriente de entrada

u(t) es el voltaje de entrada.

J es el momento de inercia combinado debido al eje de salida y a la

caja de engranes de salida,

B representa el coeficiente de amortiguación viscosa debido a

posibles fricciones de los rodamientos,

TL es una carga mecánica constante debida a la fricción en las

escobillas, fricción entre engranes o fricción seca en los

rodamientos.

Tm y Vb Representan al torque magnético y a la fuerza electromotriz del

motor, respectivamente.

Página 27

Con el propósito de establecer el problema de diseño óptimo como un problema

de optimización, sea el vector de variables de diseño:

Por lo tanto el problema del MBB consiste en optimizar:

[ ]

Con 2 funciones objetivos que se optimizan de manera separada ( )

donde:

es el desplazamiento del balancín y se requiere un valor lo más grande

posible para maximizar la transferencia de energía del motor de entrada

hacia el mecanismo de cuatro barras.

Donde:

Página 28

Donde y se calculan de acuerdo a la configuración del mecansmo

de cuatro barras:

Caso a) :

* (

)+

* (

)+

Caso b) :

(

)

(

)

Caso c) :

* (

)+

* (

)+

Página 29

es la función de mérito para calidad de funcionamiento (Angulo de

transmisión) cuyo valor óptimo es lo más cercano a 90° a lo largo de

toda la trayectoria.

(

)

(

)

Sujeto a:

Dónde:

*

+

*

+

Página 30

4. Algoritmo Brain Storm Optimization

(BSO)

Resumen: En los últimos años, se han desarrollado diversos

algoritmos basados en poblaciones con el fin de resolver problemas

de optimización. En este trabajo, se ha elegido un novedoso algoritmo

de optimización basado en la técnica grupal lluvia de ideas. Los

resultados experimentales muestran al BSO como un algoritmo muy

prometedor [9]. En este capítulo se analizará a detalle tal algoritmo.

Cuando un individuo tiene dificultades para resolver un problema, una de tantas

posibles opciones para encontrar una solución es recurrir a un grupo de

personas (preferentemente con área de conocimiento diferentes) y realizar una

tormenta o lluvia de ideas y es altamente probable que gracias a esta técnica,

se pueda encontrar una solución al problema planteado. Inspirado en este

proceso humano de generar ideas se propone en el año 2011 el algoritmo de

optimización Brain Storm Optimization [10].

4.1 Proceso de Lluvia de ideas

El proceso de lluvia de ideas es una técnica creativa ampliamente conocida de

la que se ha valido el ser humano para generar ideas de manera interactiva. El

“brainstorming”, también llamado lluvia, tormenta o torbellino de ideas fue

creado por Alex Osborn en los años 30 y publicado años después.

El objetivo principal de esta técnica es generar tantas ideas como sea posible

en un determinado tiempo, estas ideas se registran o consideran incluso

Página 31

aunque algunas de ellas pudieran parecer poco viables. En la Tabla 4.1 se

enlistan los pasos del proceso de lluvia de ideas.

Paso 1 Reunir un grupo de personas con áreas de conocimiento lo

más variado posible, con el fin de recopilar ideas diversas.

Paso 2 Generar el mayor número de ideas posibles respetando las

reglas de la Tabla 4.2.

Paso 3 Algunas personas, 3 ó 5 por ejemplo actuarán como

propietarios del problema, y cada uno elegirá una idea que

considera “mejor”.

Paso 4 Usar las ideas elegidas en el paso 3 y utilizarlas como punto

de partida para generar nuevas ideas, respetando una vez

más las reglas de la Tabla 4.2.

Paso 5 Una vez más los “propietarios” elegirán las mejores ideas, al

igual que en el paso 3.

Paso 6 Seleccionar un objeto al azar y utilizar sus funciones y

características como pistas, generar más ideas de acuerdo a

las reglas de la Tabla 4.2

Paso 7 Una vez más los “propietarios” elegirán las mejores ideas, al

igual que en el paso 3.

Paso 8 En este punto se habrá obtenido una buena solución

considerando o mezclando las ideas surgidas.

Tabla 4.1 Pasos en el proceso “Brainstorming”

La operación de recoger un objeto en el Paso 6 sirve para la generación de

ideas diversas. Puede ayudar al grupo de intercambio de ideas para apartarse

de las ideas generadas con anterioridad, por lo tanto, para evitar ser atrapado

por las ideas generadas previamente. Como consecuencia, el grupo de

Página 32

intercambio de ideas será más abierto de mente y generará más ideas

diferentes [10].

Los propietarios de problemas sirven para un propósito diferente. Al elegir

varias buenas ideas de las ideas generadas hasta ahora, los propietarios

buscan hacer que el grupo de participantes preste más atención a las mejores

ideas. Las ideas seleccionadas funcionan como puntos de atracción en el

proceso de generación de ideas.

Cabe hacer énfasis en dos operaciones muy importantes presentes en el

proceso de lluvia de ideas: divergencia y convergencia. “Brainstorming” le da

más peso a la cantidad que a la calidad, debido a que se utiliza como un

proceso divergente que estimula la creatividad y la innovación, para después

transformarse en un proceso convergente en el que las ideas generadas se

agrupan, se priorizan y son evaluadas.

Para garantizar la espontaneidad, que todas las alternativas posibles fluyan y

exista retroalimentación en el grupo, es de vital importancia apegarse a las

reglas presentadas en la Tabla 4.2 al momento de generar ideas:

Regla 1 Suspender críticas. No hay malas ideas.

Regla 2 Toda idea es bienvenida.

Regla 3 El desarrollo y combinación de ideas es deseable.

Regla 4 La cantidad es fundamental

Tabla 4.2 Reglas de Osborn para la generación de ideas en el proceso Brainstorming

Página 33

4.2 Algoritmo Brain Storm Optimization

Como se mencionó en la Sección 4.1, la técnica de lluvia de ideas plantea que

los participantes generen tantas ideas diversas como sea posible, en el

algoritmo BSO todas esas ideas generadas conforman a la población y cada

idea es una solución potencial al problema.

Como en cualquier otro algoritmo basado en población, el algoritmo BSO

comienza con la inicialización de la población n, para efectos de simplicidad, el

número de la población se mantiene constante en cada iteración. El proceso de

iteración comienza después de este punto.

Cada idea será evaluada de acuerdo a la función objetivo del problema

planteado, para posteriormente ser agrupadas en clusters utilizando el método

k-means, las mejores ideas son elegidas como centroides de cada cluster.

Después empieza el proceso de reemplazo, primero de un centroide y

posteriormente de todas y cada una de las ideas.

Esta mecánica - evaluación, agrupamiento y reemplazo – se estará repitiendo

hasta alcanzar la condición de paro previamente definida, ya sea un

determinado número de iteraciones o de evaluaciones. Finalmente la mejor idea

es elegida como la solución obtenida para el problema. [9]

El algoritmo BSO se compone de cuatro operadores básicos: inicialización de la

población, proceso de clustering, alteración de centroides y actualización de

Página 34

individuos. A continuación se describirá cada operador y se presenta en la

Figura 4.1 un diagrama de flujo del proceso básico del algoritmo BSO:

Figura 4.1 Diagrama de flujo del algoritmo BSO.

Iteración = 1

Inicialización de la población

Proceso de Clustering

Alteración de centroides

Actualización de individuos

INICIO

Iteración = Iteración + 1

Iteración <

MAX

FIN

Página 35

4.2.1 Inicialización de la población

A partir de la similaridad de los casos en la mayoría de los algoritmos basados

en la inteligencia colectiva, una idea dentro de la población se representa por un

vector, el cual es inicializado aleatoriamente con una distribución uniforme

dentro del espacio de solución (tomando en cuenta las restricciones) a través

de la siguiente fórmula:

Dónde:

y son los valores máximos y mínimos de la variable de

diseño

es un valor aleatorio uniformemente distribuido entre 0 y 1

Cada idea entonces es evaluada por la función objetivo, dando como resultado

un valor de aptitud, el cual indica la calidad de esta idea para ser considerada

como una solución competitiva al problema

4.2.2 Clustering

Clustering significa agrupar una serie de datos en conjuntos de objetos

similares, ya sea por sus funciones o atributos. Cada grupo llamado cluster

consiste en elementos que son similares entre ellos y diferentes a los objetos de

otros grupos[13].

)( minmaxmin

jjjj xxxx

maxxminx

x

Página 36

Formar clusters aporta simplicidad en el modelado de datos y desempeña un

papel importante en el descubrimiento de conocimiento y minería de datos,

tareas que requieren de una rápida y precisa partición de grandes grupos de

datos.

El número de clusters elegidos equivale al número de propietarios en el proceso

de lluvia de ideas, mientras que determinar el centroide de cada cluster se

equipara con la elección de los propietarios de lo que ellos consideren la mejor

solución.

4.2.3 Alteración de centroides

La alteración de centroides consiste elegir aleatoriamente un cluster, se toma su

centroide y se reemplaza por un nuevo individuo generado al azar. Cabe

resaltar que esta operación sólo se llevara a cabo cuando se cumpla una regla

que se verá más adelante al analizar a detalle todos los pasos del algoritmo

BSO.

4.2.4 Actualización de Individuos

Este paso irá tomando diversos caminos dependiendo de valores que se van

generando aleatoriamente, se establecen al principio del algorimo ciertos

parámetros y entonces se van comparando los valores aleatorios con estos

parámetros, lo que da resultado diversas combinaciones que pueden originar al

nuevo individuo:

Se trabaja con un sólo cluster (su centroide o un individuo al azar del

cluster)

Página 37

Se trabaja con dos clusters (la combinación de sus centroides o la

combinación de dos individuos al azar)

Después se agregan valores aleatorios, ruidos Gaussianos para ser exactos,

para generar individuos nuevos. La creación de un nuevo individuo se puede

representar por:

Dónde:

es la idea nueva

es la idea seleccionada para generar una nueva

es un vector con la función aleatoria Gaussiana con

desviación μ y varianza σ

es la contribución de cada valor del vector de números

aleatorios Gaussianos.

Para propósitos del algoritmo se calcula con la siguiente fórmula:

Dónde:

es la función de transferencia del logaritmo

sigmoide

es el máximo número de iteraciones

es la iteración actual

es el salto de paso elegido para el algoritmo

es un número aleatorio entre 0 y 1.

),(* nxx selectednew

()*)/)_max_*5.0((log randkiterationcurrentiterationsig

newx

selectedx

),( n

siglog

iterationmax_

iterationcurrent _

k

()rand

Página 38

En la Tabla 4.3 se definen todos los pasos a seguir en el algoritmo Brain Storm

Optimization donde se ha agregado la tercera columna a la tabla que indica la

correspondencia de cada paso con los pasos del proceso de lluvia de ideas

mostrado en la Tabla 4.1.

Paso 1

Inicialización

Generar aleatoriamente n soluciones potenciales ( ideas)

Paso 2

Agrupamiento

Agrupar n ideas en m clusters Equivalen al

propósito de los

pasos 3, 5 y 7

que es

seleccionar las

mejores ideas.

Paso 3

Evaluación

Evaluar las n ideas

Paso 4

Elección de

Centroides

Calificar las ideas y registrar las mejores como centro de

cada cluster.

Paso 5

Alteración de

centroide.

Generar aleatoriamente un valor entre 0 y 1.

a) Si el valor es más pequeño que una probabilidad pre determinada p5a : i. Aleatoriamente seleccionar un cluster. ii. Generar una nueva idea al azar que

reemplazará al centroide del cluster elegido.

Simula al paso

6, se asegura

la exploración

de áreas

nuevas.

Paso 6

Alteración de

individuos.

Para crear nuevos individuos:

a) Generar aleatoriamente un valor entre 0 y 1. b) Si el valor es menos que una probabilidad pre

determinada p6b i. Aleatoriamente seleccionar un cluster con

una probabilidad p6bi. ii. Generar un valor aleatorio entra 0 y 1. iii. Si este valor es menor que una probabilidad

predeterminada p6bii: 1. Seleccionar el centroide del cluster y

agregarle ruidos gaussianos para generar una nueva idea.

iv. De otro modo seleccionar al azar una idea

del cluster y agregar ruidos gaussianos para crear una idea nueva.

c) En caso contrario seleccionar dos clusters para trabajar. i. Generar un valor aleatorio. ii. Si este valor es menor que una

probabilidad pre determinada p6c, se combinarán los centroides de los dos cluster seleccionados y se les agregarán ruidos para generar una nueva idea.

Equivale la

generación de

ideas de los

pasos 2, 4 y 6

Página 39

iii. En caso opuesto elegir al azar una idea de cada cluster, se combinarán y posteriormente se les agregarán ruidos gaussianos para crear una nueva idea.

d) La idea nueva es evaluada y comparada con la existente, la mejor será guardada y la otra es eliminada.

Paso 7 Si se han generado n individuos nuevos, pasar al paso

siguiente, de otra manera, regresar a paso 6.

Paso 8 Si existe un número de iteraciones máximas y éste ha sido

alcanzado, se da por terminado el algoritmo; de otra

manera, regresar al paso 2.

Tabla 4.3 Pasos del algoritmo BSO.

Como se puede apreciar dentro de la Tabla 4.3., en 6.b y 6.c respectivamente,

una nueva idea puede ser inspirada en una sola idea existente o en una

combinación de dos ideas. Aunque en la vida real una solución podría ser

generada a partir de dos o más soluciones propuestas, el algoritmo solo

considera la combinación de dos de ellas para mantenerlo simple sin que tenga

un impacto en su eficiencia.

Al igual que en el proceso de lluvia de ideas, en el algoritmo de optimización

BSO se identifican las operaciones de divergencia en la actualización de

individuos y convergencia al crear los clusters, que son las dos operaciones

básicas implementadas en cada iteración [9].

La probabilidad mencionada en el paso 6.b.i es proporcional al número de

individuos en el cluster, es decir entre más individuos se encuentren agrupados

en un cluster, éste tendrá más probabilidad de ser seleccionado.

Página 40

5. Metodología y Diseño de

Experimentos

En este capítulo se presenta el procedimiento llevado a cabo para la

obtención de los resultados que se muestran en el apartado

correspondiente. Se eligió el lenguaje de programación java para

implementar el algoritmo BSO y se creó una función correspondiente

a cada paso del algoritmo.

Retomando el capítulo tres, que describe el funcionamiento de un mecanismo

de cuatro barras del tipo MBB, se enfatiza que lo que se pretende optimizar por

separado son dos funciones mérito, una de maximización correspondiente a la

generación de movimiento:

y una más para la calidad de funcionamiento :

(

)

(

)

Cabe resaltar que ambas funciones se han tratado de manera individual, es

decir se ha implementado el algoritmo BSO de manera independiente para cada

uno de ellos, dando como resultado dos programas en los que las diferencias

observadas consisten en la función empleada para evaluar la aptitud de cada

solución y en la manera de elegir la mejor idea al compararla con otra, en un

programa se elige la mayor mientras que en el otro la menor.

Página 41

5.1 Valores Iniciales

Para el propósito de validar la eficacia y utilidad del algoritmo propuesto BSO,

en este documento, se ha utilizado un conjunto de parámetros iniciales

sugeridos en [10], los cuales se fueron calibrando de manera manual para la

obtención del mejor resultado; el único parámetro alterado desde el comienzo

es el máximo número de iteraciones, que ha sido reemplazado por el número

máximo de evaluaciones, mientras que el primero cuenta el número de

generaciones evaluadas, el segundo contabiliza la evaluación de cada solución

de manera individual. El conjunto de parámetros iniciales se listan en la Tabla

5.1:

n

m Evaluación

Máxima

µ

100 5 0.2 0.8 0.4 0.5 20 50,000 0 1

Tabla 5.1 Conjunto de parámetros iniciales para el algoritmo BSO.

Donde

n es el tamaño de la población, es decir el número de

ideas con las que se trabajará

m es el número de clusters en los que se agrupará la

población

, ,

y

son las probabilidades que se utilizan en los pasos

, , y respectivamente del algoritmo BSO

es el salto de paso utilizado para modificar cada

idea

Página 42

Evaluación Máxima es el número máximo de evaluaciones y por lo tanto

la condición de paro del algoritmo

µ y σ son la media y la varianza empleados en la función

gaussiana

5.2 Procedimiento Realizado

Como se mencionó en el Capítulo 4, el primer paso es la inicialización de la

población o conjunto de ideas, el concepto de población se refiere al conjunto

de soluciones potenciales y, cada solución a su vez, está conformada por un

vector de variables de diseño, retomando una vez más el capítulo tres, el vector

de variables de diseño es:

Por lo tanto cada idea o solución contiene cinco valores, de los cuales cuatro

corresponden a las longitudes de los eslabones y el quinto representa el ángulo

de transmisión.

Los cinco valores, son creados al azar con una distribución uniforme pero

respetando las restricciones de diseño del problema MBB, y así a través de las

iteraciones del algoritmo, cada idea se irá evaluando, comparando y

modificando, prevaleciendo siempre las mejores. En la Tabla 5.2 se muestra

una población inicial conformada por 10 ideas a manera de ejemplo:

Página 43

L1 L2 L3 L4 ϴ1

Idea 1 0.2794673048 0.0878704052 0.2573591906 0.1232602764 -0.1111583758

Idea 2 0.2981377429 0.3504121817 0.2984285506 0.4185568358 -0.6908904402

Idea 3 0.2042088396 0.1426708879 0.4318334500 0.1644453398 -0.3567284782

Idea 4 0.1042788092 0.0980779500 0.4089662154 0.4980388154 -0.0894746227

Idea 5 0.4700919755 0.1220947158 0.1460646155 0.4292798053 -0.7662183467

Idea 6 0.1314028793 0.2797982744 0.4115757266 0.1856829238 0.6798111118

Idea 7 0.1930142010 0.1055750120 0.4737310044 0.0857538024 -0.1573590726

Idea 8 0.0848756843 0.1398641674 0.1513241291 0.4112656620 -0.7384073765

Idea 9 0.4984497466 0.3036698362 0.3587193824 0.3441162389 0.3614340874

Idea 10 0.1059495896 0.0689321719 0.0676471799 0.1701527171 -0.4170782173

Tabla 5.2 Ejemplo de una población inicial (conjunto de ideas).

A continuación se procede a evaluar cada idea para obtener su aptitud y así

poder seleccionar las mejores como centroides de cada cluster, se

seleccionarán tantos centroides como se haya definido el parámetro m al inicio

del algoritmo.

Cabe mencionar que el algoritmo BSO fue diseñado para resolver problemas de

optimización sin restricciones, y considerando que los dos problemas a

resolverse incluyen restricciones, se agregaron los siguientes criterios para

comparar ideas (soluciones) [25] :

Entre dos ideas factibles, la que tenga mejor valor en la función de mérito

es seleccionada.

Entre una idea factible y otra no factible, se selecciona a la idea factible.

Entre dos ideas no factibles, la que tenga menor suma de violación de

restricciones es seleccionada.

Página 44

Las funciones mérito se encuentran codificadas en el lenguaje MATLAB, por lo

que fueron incluidas en una librería que se agregó al proyecto en Java para

poder invocar dichas funciones.

Una vez hecho ésto, y con el fin de colocar el resto de las ideas dentro del

cluster correspondiente, se calcula la distancia de las ideas a cada uno de los

centroides, el cluster más cercano será al que pertenece la idea. A manera de

ilustración se muestra la Figura 5.2 que representa un conjunto de datos

agrupados en tres clusters de diferentes colores, el punto negro es el centroide

cada cluster.

Figura 5.1 Datos agrupados alrededor de tres centroides.

Ya que se han conformado los clusters, se puede continuar con la alteración de

centroides, este paso depende de que se cumpla la condición 5a, por lo tanto

habrá iteraciones en las que se lleve a cabo y algunas en las que se omita.

Página 45

La alteración de individuos es un paso que siempre se lleva a cabo, siguiendo el

flujo del algoritmo BSO en algunas ocasiones se toma una idea y se modifica,

también habrá casos donde se combinen dos ideas creando una solución

temporal que será modificada. En ambos casos, la nueva idea se compara con

la original y se conserva la mejor evaluada. Esto se hace con todas y cada una

de las ideas de la población y cada evaluación es contabilizada, ya que este

contador es la condición de paro del algoritmo. Después de evaluar cada idea,

la población ya no es la misma, así que se vuelve a iniciar el proceso de

clustering y todos los pasos subsecuentes hasta llegar al número de

evaluaciones máximas, dónde se espera obtener una solución satisfactoria al

problema.

Página 46

6. Resultados y Discusión

En esta sección se muestran los resultados obtenidos por el algoritmo

BSO. Se ha realizado un análisis del impacto de la calibración

(aumento/disminución) de cada parámetro en los resultados, lo cual

ha permitido manipularlos con la intención de elegir un conjunto de

parámetros que brinde un mejor desempeño del algoritmo.

.

El algoritmo se ejecutó treinta veces con cada conjunto de parámetros, se eligió

ese número de ejecuciones porque es el usualmente adoptado para comparar

algoritmos bio-inspirados. Se analizaron los cambios que provoca el aumento o

disminución en cada uno de los parámetros, a modo de calibrar el algoritmo y

obtener un mejor resultado.

Al final de cada ejecución el algoritmo ofrece una mejor solución encontrada,

esta solución fue almacenada y así sucesivamente con cada ejecución, de

estas treinta soluciones se identificaba la mejor, la peor y se calcularon algunos

valores estadísticos, como son el promedio, la mediana y la varianza, hasta

finalmente elegir el conjunto de parámetros con los mejores resultados y cuyo

comportamiento además fue bastante robusto, es decir, todas las ejecuciones

brindaron un resultado estable. Todas las soluciones obtenidas fueron factibles

y la varianza fue menor que con otros conjuntos de parámetros.

Página 47

6.1 Resultados

Después de haber calibrado manualmente los parámetros, se seleccionaron

aquellos que brindaron un mejor resultado, el conjunto de parámetros se

muestra a continuación en la Tabla 6.1:

Tabla 6.1 Conjunto de parámetros con los que se obtuvieron mejores resultados.

Una razón más para elegir estos parámetros es que permitieron que el

algoritmo se comportara de manera robusta, es decir, a lo largo de todas las

ejecuciones, la varianza entre la función de aptitud en cada ejecución ha sido

menor que con otro conjunto de parámetros.

Después de resolver el primer problema de optimización con los parámetros de

la Tabla 6.1, se obtuvieron las soluciones que se presentan en la Tabla 6.2.

Evaluaciones: 50000

K: 30

p5a: 0.65

p6b: 0.75

p6bii: 0.25

p6c: 0.4

ideas: 100 y clusters: 5

Página 48

Tabla 6.2 Conjunto de resultados obtenidos en el primer problema de optimización (maximización). Todas las soluciones son factibles. El mejor resultado obtenido se encuentra en color rojo.

Corrida p1 p2 p3 p4 teta1 f.obj

1 0.49996415 0.124819829 0.49996421 0.21953928 -0.1881153 1.52053038

2 0.46347742 0.123933391 0.46347751 0.22550996 -0.21167712 1.42191928

3 0.46091618 0.111196204 0.46091623 0.19287495 -0.17791621 1.56356607

4 0.39700076 0.101327318 0.39700078 0.1800021 -0.19511195 1.49070873

5 0.48397725 0.127270547 0.48397758 0.22947229 -0.20543627 1.44764042

6 0.42844804 0.120086323 0.42844811 0.22517251 -0.23160797 1.34159132

7 0.45978372 0.12749509 0.45978375 0.23728001 -0.22671115 1.36106859

8 0.4749513 0.104158453 0.47495142 0.17503666 -0.15329553 1.66789879

9 0.40958773 0.05661672 0.40958778 0.0874589 -0.08376817 1.99910696

10 0.48678905 0.099204887 0.4867891 0.16352404 -0.13727202 1.73634607

11 0.49167138 0.112430002 0.49167154 0.19133391 -0.16412781 1.62529688

12 0.48173922 0.134685255 0.48173928 0.25209515 -0.23044261 1.34621159

13 0.49670925 0.123901707 0.49670933 0.21790432 -0.18715736 1.52073309

14 0.4700652 0.09073854 0.47006521 0.14776836 -0.1259499 1.78128563

15 0.49496222 0.136188001 0.49496233 0.25215236 -0.22330523 1.37470965

16 0.43190159 0.115353302 0.43190161 0.20975667 -0.2112216 1.42378568

17 0.49999325 0.127871179 0.49999332 0.2273697 -0.19578697 1.48793008

18 0.47859701 0.135691878 0.47859701 0.25661985 -0.23713764 1.31979185

19 0.3516045 0.086338741 0.35160464 0.15080266 -0.18316836 1.54188366

20 0.45066818 0.120635821 0.45066837 0.21964264 -0.21208246 1.42023851

21 0.42283574 0.084524998 0.42283585 0.1386457 -0.1350944 1.75446002

22 0.46331076 0.105918246 0.46331086 0.18034133 -0.16214145 1.62347911

23 0.48935879 0.137378933 0.48935885 0.25789736 -0.23236344 1.33860088

24 0.47221509 0.118868281 0.47221514 0.20983006 -0.19067473 1.5095853

25 0.49543631 0.114179056 0.49543634 0.19481463 -0.16601054 1.61670707

26 0.48349379 0.097632102 0.48349385 0.16052787 -0.13688835 1.74564439

27 0.4984191 0.131594687 0.49841926 0.23777573 -0.20690043 1.4415888

28 0.43316221 0.113190531 0.43316237 0.20341391 -0.20317157 1.45705526

29 0.41131106 0.108663465 0.41131114 0.1964077 -0.20712187 1.44063926

30 0.48607084 0.130699144 0.48607087 0.23858263 -0.21383807 1.41307524

Página 49

Finalmente, en la Tabla 6.3 se muestran las estadísticas obtenidas de los

resultados de la Tabla 6.2.

Tabla 6.3 Datos estadísticos obtenidos del conjunto de resultados de la Tabla 6.2 para el primer problema de optimización (maximización).

Para el problema de minimización se utilizaron los mismos parámetros que para

el problema de maximización, lo que muestra la baja sensibilidad del algoritmo

al resolver diferentes instancias del problema mecatrónico (ver Tabla 6.1).

En la Tabla 6.4 se presentan los resultados de las ejecuciones del problema de

minimización.

Mejor 1.999106961

Peor 1.319791852

Promedio 1.524435952

Mediana 1.489319404

Varianza 0.025020211

Página 50

Tabla 6.4 Conjunto de resultados obtenidos en el segundo problema de optimización (minimización). Todas las soluciones son factibles. El mejor resultado obtenido se encuentra en

color rojo.

A continuación se muestran en la Tabla 6.5 las estadísticas derivadas de las

ejecuciones de la función de minimización.

Corrida p1 p2 p3 p4 teta1 f.obj

1 0.49957044 0.050000087 0.49957045 0.2741357 -0.27853271 0.22228729

2 0.49999777 0.050000059 0.49999778 0.24276056 -0.24517297 0.20668106

3 0.49871239 0.050000063 0.49871246 0.26513622 -0.26947672 0.21723212

4 0.49999999 0.050000035 0.49999999 0.22327689 -0.21566097 0.2036936

5 0.49999985 0.050000003 0.49999995 0.26497184 -0.2686038 0.21637024

6 0.49999965 0.050000085 0.49999967 0.24437835 -0.24687766 0.20717707

7 0.49935732 0.050000056 0.49935733 0.23589511 -0.23822604 0.20527493

8 0.49750936 0.050000011 0.49750938 0.26611714 -0.27117296 0.21853002

9 0.49999149 0.050000112 0.49999152 0.2945144 -0.29989757 0.23756508

10 0.46014432 0.050000077 0.46014434 0.21385108 -0.22433752 0.22172524

11 0.47732117 0.050000031 0.47732117 0.21750152 -0.22491332 0.21358014

12 0.4999998 0.050000025 0.49999982 0.22280415 -0.21759964 0.20369625

13 0.48069561 0.050000039 0.48069566 0.21992983 -0.22637558 0.21205322

14 0.49999958 0.050000042 0.49999961 0.23942679 -0.24165889 0.20576926

15 0.48472891 0.050000011 0.48472894 0.25973039 -0.27141944 0.22267784

16 0.49999943 0.05000009 0.49999952 0.30777783 -0.31400318 0.24970236

17 0.49983428 0.050000047 0.49983438 0.29196567 -0.29728563 0.23552279

18 0.47058721 0.050000054 0.47058724 0.24472775 -0.26276552 0.22353916

19 0.49999983 0.050000076 0.49999987 0.24469324 -0.24711257 0.20727781

20 0.4999998 0.050000002 0.49999983 0.22307318 -0.21704992 0.20369425

21 0.49999983 0.050000048 0.49999985 0.2606946 -0.26408643 0.21404775

22 0.49038675 0.050000012 0.49038676 0.23103015 -0.23470877 0.20859907

23 0.49548322 0.050000097 0.49548323 0.21353513 -0.20664979 0.20629629

24 0.46670755 0.050000039 0.46670759 0.21650421 -0.22681096 0.21854341

25 0.49999987 0.050000009 0.49999989 0.22862951 -0.22733258 0.20392717

26 0.49999981 0.050000075 0.49999985 0.24794331 -0.25032961 0.20839438

27 0.49577534 0.050000022 0.49577536 0.22368821 -0.22387079 0.20547865

28 0.4902182 0.050000041 0.49021821 0.23398427 -0.24062562 0.20923772

29 0.49999893 0.050000011 0.49999895 0.23107544 -0.23247348 0.20418947

30 0.49970063 0.050000031 0.49970064 0.26047509 -0.2640136 0.21410559

Página 51

Tabla 6.5 Datos estadísticos obtenidos del conjunto de resultados de la Tabla 6.4 para el segundo problema de optimización (minimización).

6.2 Discusión

De acuerdo a los experimentos preliminares realizados para obtener valores

adecuados para los parámetros del algoritmo BSO, pareciera que el valor inicial

k es el que ocasiona un mayor cambio en los resultados. Es importante recordar

que k se relaciona con el salto o tamaño de paso y se traduce en la velocidad

con que el algoritmo converge, es decir la rapidez con la que todas las ideas

(soluciones) comienzan a coincidir.

El tamaño de paso es usualmente un parámetro sensible en los algoritmos bio-

inspirados y parece ser que para BSO también se presenta tal fenómeno. Lo

que parece funcionar mejor es promover valores de k que favorezcan tamaños

de paso pequeños y acotados por los límites inferiores y superiores de las

variables de diseño del problema de optimización.

Un aspecto importante a considerar en BSO es el manejo de la diversidad, al

igual que el proceso humano de lluvia de ideas recomienda que participen

personas con conocimientos diferentes que generen el mayor número de ideas

posibles, el algoritmo funcionará mejor cuando las ideas se encuentren

dispersas durante la mayor parte del proceso de búsqueda y en cuanto a la

Mejor 0.203693595

Peor 0.249702362

Promedio 0.214228974

Mediana 0.210645471

Varianza 0.000122274

Página 52

modificación de ideas, es preferible combinar las de dos clusters diferentes que

combinar dos ideas del mismo cluster, ya que éstas tienden a ser parecidas.

La probabilidad P5a promueve la diversidad en el algoritmo, pues brinda la

posibilidad de generar un nuevo centroide de manera aleatoria y por lo tanto

trasladar un cluster de un lugar a otro, explorando así áreas nuevas donde

pueda buscarse y en el mejor de los casos encontrarse una solución mejor. Por

lo tanto es recomendable que P5a contenga valores relativamente altos,

recordando que las probabilidades pueden tomar valores entre 0 y 1, el valor

recomendado para P5a es 0.65; un valor más cercano a 1 provocaría el

constante movimiento de los clusters pero sin darles el tiempo necesario para

realizar una explotación satisfactoria de la región analizada.

P6b es el parámetro del que depende si se trabajará con un solo cluster o la

unión de ambos, por lo que representa la posibilidad de combinar ideas de

diferentes clusters, lo cual pareciera ser deseable. Sin embargo, trabajar con un

solo cluster ha brindado mejores resultados en el algoritmo para los problemas

de optimización resueltos en este trabajo de tesis. En contraste con P5a, que se

encarga de encontrar nuevos zonas sin explorar, P6b permite explotar zonas ya

conocidas, incluso combinando información de dos zonas ya exploradas más no

necesariamente explotadas.

P6bii controla la generación de una nueva idea a partir de un centroide o de una

solución aleatoriamente seleccionada de ese cluster. Una vez más, para

promover la diversidad es mejor derivar la nueva idea a partir de la escogida de

manera aleatoria en el cluster, pero que no sea el centroide, por lo cual se

recomienda que esta probabilidad sea baja. El valor seleccionado para el

algoritmo es de 0.25.

Página 53

Un valor alto del parámetro P6c indica que se generará una idea nueva a partir

de la combinación de dos centroides. En el caso contrario (un valor bajo)

implica que se usarán dos soluciones escogidas aleatoriamente, una por cada

cluster. Lo recomendable en este caso para favorecer diversidad sería que la

idea nueva se generara a partir de la combinación de dos ideas escogidas

aleatorias, una de cada cluster, por lo que para este parámetro también se

recomienda que tenga un valor bajo.

Como se ha analizado, los valores de los parámetros se enfocaron en promover

la diversidad, es decir la exploración de nuevas zonas para evitar óptimos

locales y así omitir alguna buena solución. Esto lleva a pensar que el algoritmo

BSO, al menos para el tipo de problemas de optimización aquí resueltos, tiende

a converger prematuramente si no se controlan adecuadamente sus

parámetros.

6.3 Comparativa

Con anterioridad, se ha tratado de resolver el problema mecatrónico objeto de

interés en el presente trabajo mediante un algoritmo evolutivo llamado evolución

diferencial [16], obteniendo una aptitud de 1.60251619 en el conjunto de datos

reportado como el mejor obtenido usando también 50,000 evaluaciones. A

continuación en la Tabla 6.7 se presentan los valores sugeridos tanto para las

longitudes de los cuatro eslabones (p1 a p4), como para el ángulo (p5).

Tabla 6.6 Valores Obtenidos con Evolución Diferencial para el problema de maximización.

p1 p2 p3 p4 p5 Func_obj

0.49999999984790 0.11671204534865 0.49999999985041 0.20000000004315 -0.16931779839141 1.60251619195312

Página 54

En cambio BSO ofrece una aptitud de 1.99910696 y sugiere las siguientes

longitudes y ángulo (ver Tabla 6.7):

Tabla 6.7 Valores Obtenidos con BSO para el problema de maximización.

Retomando el Capítulo 3, la función de maximización representa el

desplazamiento del balancín, y precisamente lo ideal es que éste sea lo más

grande posible con el fin de maximizar la transferencia de energía de entrada

del motor, como se puede apreciar en las Tablas 6.6 y 6.7, BSO aporta un

resultado considerablemente mejor que la evolución diferencial.

La aptitud obtenida mediante evolución diferencial para la función de

minimización del problema mecatrónico es de 0.20369337, y las

correspondientes medidas para las longitudes de los eslabones y el ángulo de

dicho problema se aprecian en la Tabla 6.8:

Tabla 6.8 Valores Obtenidos con Evolución Diferencial para el problema de minimización.

Mientras que la aptitud obtenida con BSO es de 0.20369359, en este caso, los

dos algoritmos ofrecen una solución muy similar, por lo que en este caso

particular no se puede decir que uno se comporte mejor que el otro (ver Tabla

6.9).

Tabla 6.9 Valores Obtenidos con BSO para el problema de minimización.

p1 p2 p3 p4 p5 Func_obj

0.40958772876021 0.05661671985166 0.40958778149574 0.08745890030250 -0.08376817167463 1.99910696096319

p1 p2 p3 p4 p5 func_obj

0.50000000000000 0.05000000000000 0.50000000000000 0.22335685188079 -0.21660995419566 0.20369337272871

p1 p2 p3 p4 p5 func_obj

0.49999998507702 0.05000003511475 0.49999998943171 0.22327689282280 -0.21566097005284 0.20369359524221

Página 55

7. Conclusiones y Trabajo Futuro

En este trabajo se implementó el algoritmo BSO para optimizar el diseño de un

mecanismo de cuatro barras. El algoritmo se adaptó para poder resolver dos

problemas de optimización con restricciones usando tres reglas de factibilidad

encontradas en la literatura especializada. Se realizó un análisis empírico para

determinar valores adecuados de los parámetros del algoritmo, donde se

concluyó que tales valores deben apuntar a mantener diversidad en la mayor

parte del proceso de optimización y así evitar caer en óptimos locales.

Finalmente, se compararon los resultados obtenidos contra los reportados por

otros autores usando el algoritmo de evolución diferencial, considerando un

número similar de evaluaciones. De dicha comparación se concluyó que BSO

fue capaz de obtener mejores resultados en el problema de maximización de la

transferencia de energía del sistema e igualar los resultados en el problema de

minimización que tiene que ver con la calidad del funcionamiento del sistema.

Es importante remarcar que evolución diferencial es un algoritmo evolutivo

altamente competitivo, por lo que es meritorio que un algoritmo relativamente

nuevo como BSO provea de resultados iguales, e incluso mejores, con respecto

a los obtenidos con dicho algoritmo evolutivo.

Finalmente, quedan aspectos que no fueron atendidos y que dejan un espacio

abierto para futuros trabajos, tales como la calibración de parámetros con

herramientas especializadas como iRace [24], así como aplicar una técnica

diferente para formar clusters. Finalmente se pretende utilizar diferentes

distribuciones para generar números aleatorios en la conformación de nuevas

ideas.

Página 56

Referencias

[1] A. Ravindran, K.M. Ragsdell, and G.V Reklaitis, Engineering Optimization,

Methods and Applications, Wiley, 2006.

[2] Z. Michalewicz and D.B. Fogel, How to Solve It: Modern Heuristics, Springer,

2nd Edition, 2004.

[3] A.E. Eiben and J.E. Smith, Introduction to Evolutionary Computing, Springer,

2003.

[4] A.P. Engelbrecht, Fundamentals of Computational Swarm Intelligence, Wiley,

2005.

[5] Y. Shi, An Optimization Algorithm Based on Brainstorming Process,

International Journal of Swarm Intelligence Research, 2(4):35-62, 2011.

[6] C. Morales-Cruz, R.A. Suárez-Santillán, B. Hernández-Ocaña, E. Mezura-

Montes, E.A. Portilla-Flores, M.G. Villarreal-Cervantes, Optimización del

mecanismo de entrada de una Transmisión de Variación Continua comparando

Evolución Diferencial y Forrajeo de Bacterias Modificado, en Memorias del 10o

Congreso Nacional de Mecatrónica, Puerto Vallarta, México, pp. 61-65, ISBN:

978-607-95347-6-9, Noviembre 2011.

[7] E.A. Portilla-Flores, E. Mezura-Montes, J. Álvarez Gallegos, C.A. Coello

Coello, C.A. Cruz-Villar and M.G. Villareal-Cervantes, Parametric

Reconfiguration Improvement in Non-Iterative Concurrent Mechatronic Design

Using an Evolutionary-Based Approach, Engineering Applications of Artificial

Intelligence, 24(5):757-771, 2011.

[8] Ma. Guadalupe Martínez-Peñaloza, Un estudio empírico de dos algoritmos

evolutivos para clustering multi-objetivo , Universidad Veracruzana, Pp 20-21.

Página 57

[9] Yuhui Shi, Jingqian Xue, Yali Wu, Multi-Objective Optimization Based on

Brain Storm Optimization Algorithm, International Journal of Swarm Intelligence

Research, 4(3), 1-21, July-September 2013

[10] Yuhui Shi, Brain Storm Optimization Algorithm, Y. Tan et al. (Eds.): ICSI

2011, Part I, LNCS 6728, pp. 303–309, 2011.

[11] Carrillo Higueras, Franz Joaquín, Una heurística robusta para la

planificación de la producción: desarrollo y aplicación a un caso real, 2008

[12] Iztok Fister Jr., Xin-She Yang, Iztok Fister, Janez Brest, Duˇsan Fister, A

Brief Review of Nature-Inspired Algorithms for Optimization,

ELEKTROTEHNIˇSKI VESTNIK 80(3): 1–7, 2013. ENGLISH EDITION

[13] Ajith Abraham, Swagatam Das, and Sandip Roy, Swarm Intelligence

Algorithms for Data Clustering, Soft Computing for Knowledge Discovery and

Data Mining 2008, pp 279-313

[14] Tao J., Sadler J.P., “Constant Speed Control of a Motor Driven Mechanism

System”, Mechanism and Machine Theory, Vol. 30, No. 5, pp. 737-748, 1995.

[15] J. E. Shigley, J.J. Uicker Jr., Teoría de máquinas y mecanismos, Mc Graw

Hill, México, 1994.

[16] Portilla Flores Edgar Alfredo, Diseño óptimo de un mecanismo de cuatro

barras: un enfoque dinámico, 2013

[17] Habib Youssef, Sadiq M. Sait, HakimAdiche, Evolutionary algorithms,

simulated annealing and tabu search: a comparative study, Engineering

Applications of Artificial Intelligence 14 (2001) 167–181

[18] Kennedy James , Eberhart Rusell C., Swarm Intelligence, Academic Press,

2001

[19] Abdolreza Hatamlou. Black hole: A new heuristic optimization approach for

data clustering. Information Sciences, 2012.

Página 58

[20] Richard A Formato. Central force optimization: A new metaheuristic with

applications in applied electromagnetics. Progress In Electromagnetics

Research, 77:425–491, 2007.

[21] Erik Cuevas, Diego Oliva, Daniel Zaldivar, Marco Pérez-Cisneros, and

Humberto Sossa. Circle detection using electromagnetism optimization.

Information Sciences, 182(1):40–55, 2012.

[22] Esmat Rashedi, Hossein Nezamabadi-Pour, and Saeid Saryazdi.Gsa: a

gravitational search algorithm. Information sciences, 179(13):2232–2248, 2009.

[23] H Shayeghi and J Dadashpour. Anarchic society optimization based pid

control of an automatic voltage regulator (avr) system. Electrical and Electronic

Engineering, 2(4):199–207, 2012.

[24] Manuel López-Ibáñez, Jérémie Dubois-Lacoste, Thomas Stützle, and

Mauro Birattari. The irace package, Iterated Race for Automatic Algorithm

Configuration. Technical Report TR/IRIDIA/2011-004, IRIDIA, Université libre de

Bruxelles, Belgium, 2011.

[25] Kalyanmoy Deb. An Efficient Constraint Handling Method for Genetic

Algorithms. Computer Methods in Applied Mechanics and Engineering, Vol. 186,

No. 2/4, pp. 311--338, 2000.