Beruflich Dokumente
Kultur Dokumente
SDMAG
NDICE 1. INTRODUCCIN
1.1 1.2 1.3 SNTESIS DIMENSIONAL DE MECANISMOS . . . . . . OPTIMIZACIN. MTODOS HEURSTICOS . . . . . . EL ALGORITMO GENTICO . . . . . . . . . . . . . . Pg. 3 4 5
2. TRABAJO PREVIO
2.1 2.2 MTODOS COMPUTACIONALES . . . . . . . . . . . . COMPUTACIN EVOLUTIVA . . . . . . . . . . . . . . 8 9
4. METODOLOGA EMPLEADA
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 COORDENADAS NATURALES . . . . . . . . . . . . . TIPOS DE BARRA Y ECUACIONES DE RESTRICCIN . CODIFICACIN . . . . . . . . . . . . . . . . . . . . MONTAJE DE LAS ECUACIONES DE RESTRICCIN . . EL PROBLEMA DE ENSAMBLAJE . . . . . . . . . . . CORRELACIN TEMPORAL Y REAJUSTE . . . . . . . . DIMENSIONES DEPENDIENTES . . . . . . . . . . . . ANLISIS FINO. . . . . . . . . . . . . . . . . . . . REDONDEO DE LAS DIMENSIONES FINALES . . . . . 15 16 19 21 22 23 24 24 25
SDMAG
SDMAG
SDMAG
SDMAG
Evaluacin de la Poblacin: en la naturaleza hay individuos ms hbiles que otros para sobrevivir. El grado de adaptacin (o fitness) informa de la aptitud de un individuo en el contexto de la poblacin en la que se halla. La medida del fitness es tarea de la funcin de evaluacin particular de cada problema de optimizacin. Encontrar dicha funcin y el modo de evaluarla implican un cierto conocimiento del problema a tratar. Su evaluacin puede no ser sencilla (puede incluso cambiar en cada generacin) y es, de hecho, lo que en la mayora de los casos consume ms tiempo en la ejecucin de un algoritmo gentico. Seleccin: una vez calificados todos los individuos de una generacin, el algoritmo debe, al igual que lo hace la naturaleza, seleccionar a los individuos mejor calificados, mejor adaptados al medio. De cmo se realice la seleccin, depender del tipo de AG que estemos considerando. Algunos de los tipos ms comunes son: -AGS: AG Simple, en el que los individuos son seleccionados con probabilidad proporcional a su calificacin. -AGE: AG Elitista. Cierto nmero de los mejores individuos es mantenido en la poblacin. -AG de Seleccin Determinista: Se intenta enfatizar la variedad gentica reforzando el cruzamiento entre individuos predefinidos. La estrategia particular de cruce determina el modelo. As se tienen por ejemplo, los modelos de Nietzsche y de Vasconcelos [8] En cualquier caso, se debe cuidar la seleccin para no caer en una convergencia prematura del algoritmo. Cruzamiento: en la naturaleza el cdigo gentico de los padres de un individuo se mezcla para producir gametos, cuyo contenido gentico es hbrido, es decir, una mezcla. De esta manera es posible que un individuo legue a sus descendientes las caractersticas mezcladas de sus propios padres. Dentro del algoritmo, si estas caractersticas heredadas le confirieron a sus ancestros una alta aptitud de supervivencia, entonces este individuo ser, con alta probabilidad, un individuo exitoso en su poblacin. En un AG, el cruzamiento slo es una forma de intercambiar la informacin contenida en los cromosomas de los individuos a hibridar. Dependiendo del modo de efectuar dicho intercambio se hablar de cruzamiento en un punto, en dos puntos y de cruzamiento uniforme. Mutacin: Algunas veces, muy pocas de hecho, la ADN-polimerasa (la enzima encargada de replicar el cdigo gentico), se equivoca y produce una mutacin, una alteracin accidental en el cdigo gentico de los seres vivos. En un AG, el proceso de mutacin es necesario para generar nuevos individuos, que exploren regiones del dominio del problema que probablemente no se han visitado an. Una vez conocidos algunos aspectos comunes de todo AG, puede concluirse que el problema a resolver slo determina la funcin de evaluacin y la manera de codificar las soluciones posibles (la semntica de los cdigos genticos de los individuos). El resto de los subprocesos que constituyen el algoritmo son independientes y universalmente aplicables.
SDMAG
Para fijar conceptos, se expone a continuacin el esquema del Algoritmo Gentico Simple (AGS) propuesto por Holland [7] y retomado posteriormente por Goldberg [9]. Se ha supuesto, por sencillez un alfabeto binario para los cromosomas: 1. Decidir cmo codificar el dominio del problema. 2. Generar un conjunto aleatorio (poblacin inicial) de N posibles soluciones codificadas del problema. A sta se le llamar la poblacin actual. 3. Calificar cada posible solucin (individuo) de la poblacin actual. 4. Seleccionar dos individuos de la poblacin actual con una probabilidad proporcional a su calificacin. 5. Lanzar una moneda al aire (con probabilidad Pc cae cara). 6. Si cay cara, mezclar los cdigos de los dos individuos seleccionados para formar dos hbridos, a los que llamaremos nuevos individuos. 7. Si cay cruz, llamamos a los individuos seleccionados nuevos individuos. 8. Por cada bit de cada nuevo individuo lanzar otra moneda al aire (con probabilidad Pm cae cara). 9. Si cae cara, cambiar el bit correspondiente por su complemento. 10. Si cae cruz, el bit permanece inalterado. 11. Incluir a los dos nuevos individuos en la poblacin futura. 12. Si la poblacin futura tiene ya N individuos, llamarla poblacin actual y regresar al paso 3, a menos que se cumpla alguna condicin de terminacin. 13. Si no, regresar al paso 4. El trmino lanzar una moneda al aire se usa para nombrar un experimento de Bernoulli (aquel en el que pueden ocurrir exclusivamente dos eventos: uno con probabilidad p y otro con probabilidad 1-p). Es decir, el lanzamiento de una moneda extraa en la que no necesariamente ambas caras son equiprobables. Al tipo de seleccin proporcional usado en el paso 4 se le conoce tambin como mtodo de seleccin por ruleta. Se suman las calificaciones de todos los individuos de la poblacin y se hace corresponder la longitud de la circunferencia a dicha suma. Luego se asignan longitudes parciales en funcin de cada calificacin individual. De esta forma al girar dicha ruleta imaginaria, la lengeta se parar con mayor probabilidad en las zonas correspondientes a los individuos ms aptos.
SDMAG
En lo referente a la Sntesis Dimensional de Mecanismos se han usado con xito RN y AG, no disponindose de ninguna informacin relativa a trabajos realizados usando FL y SE. Los trabajos realizados con RN se han encaminado a aprovechar la capacidad de interpolacin de una red neuronal. Se han aplicado al tipo Sntesis de Trayectoria. Para ello se ha entrenado una RN para un mecanismo concreto (4 barras), usando una batera apropiada de casos resueltos. La red obtenida se usa posteriormente de manera inversa. As, se le suministra la curva deseada y sta encuentra las relaciones que deben tener las dimensiones del mecanismo que mejor describe la trayectoria prescrita. Se usan Descriptores de Fourier para extraer la informacin de la trayectoria (que debe ser cerrada). Para ms informacin consltese [10]. En cuanto al uso de AG aplicados al problema que nos ocupa aqu, los trabajos conocidos se han centrado en el estudio del mecanismo de 4 barras. Se han propuesto tcnicas de Evolucin Diferencial (ED), que introducen mtodos de seleccin ms novedosos que los de los AG tradicionales. Los trabajos previos realizados mediante la aplicacin de estas tcnicas evolutivas (AG y ED) se detallan con mayor profusin en el siguiente apartado.
SDMAG
Y C rcy rcx r3 r4
x1
r2
r1
y1 X
Para ello, usaron los 9 valores cromosmicos mostrados (x1, y1, 1, r1, r2, r3, r4, rcx, rcy), codificados como nmeros reales. Para la mayora de los ejemplos ilustrados, se us una poblacin de 100 individuos. Se utiliz una estrategia de evolucin diferencial como medio de seleccin y cruzamiento. Cada nuevo individuo propuesto (V) se calcul de la forma: V = Xbest + F(Xr1 Xr2) donde Xbest es el mejor individuo, Xr1 y Xr2 dos individuos elegidos al azar y F un nmero real entre 0.4 y 0.6 que controla la perturbacin introducida. El nuevo individuo se acepta si resulta ser mejor que los individuos que lo generaron.
SDMAG
La mutacin se realiza barriendo toda la poblacin y eligiendo cromosomas a mutar en funcin de una cierta probabilidad especificada. El nuevo cromosoma mutado es el resultado de sumar o restar una cantidad aleatoriamente elegida dentro del rango de variacin correspondiente a dicho cromosoma. Basndose en el trabajo iniciado por J. A. Cabrera, A. Simn y M. Prado, se implementan sus resultados en un programa informtico desarrollado dentro de su mismo departamento. Se trata del programa WinMecC* (uso bajo licencia remunerada), que en su versin 4.0 inclua un mdulo para la sntesis de generacin de trayectorias y funciones. Los responsables del mencionado programa son F. Nadal, A. Bataller y A. Simn. Otros trabajos se han centrado en problemas ms especficos de sntesis, como el realizado por Kerr-Jia Lu y Sridhar Kota, del Departamento de Ingeniera Mecnica de la Universidad de Mchigan. Bajo el ttulo Compliant Mechanism Synthesis for Shape-Change Applications, sus autores han planteado la sntesis de estructuras deformables adaptativas. Ms concretamente buscaron optimizar el perfil de las alas de un avin para minimizar el consumo de combustible, conjugando el uso de estrategias evolutivas junto con otras tcnicas diversas.
(*) WinMecC es un programa de simulacin de mecanismos planos con un grado de libertad, que ha sido desarrollado por el rea de Ingeniera Mecnica de la Universidad de Mlaga con las ltimas herramientas de programacin orientadas a objetos y con un objetivo fundamentalmente docente. La aplicacin realiza el anlisis cinemtico y dinmico de mecanismos planos con cualquier nmero de eslabones. La versin actual (4.3) no incluye el mdulo de sntesis mencionado.
10
SDMAG
11
SDMAG
POBLACIN INICIAL
EVALUACIN
CRITERIO DE PARO
ELITISMO
FIN
CRUCE Y MUTACIN
POBLACIN FUTURA
Conocida la topologa del mecanismo podemos caracterizar a ste mediante sus dimensiones caractersticas (xi). Sea Dim la cantidad total de las mismas. De esta forma es posible representar un mecanismo concreto mediante un vector formado por sus dimensiones: X = {x1, x2, ..., xDim} Del total de dimensiones del mecanismo (Dim) puede haber algunas cuyos valores sean conocidos, y por tanto no deberan ser considerados al construir un conjunto de soluciones factibles. Por contra, habr otras cuyos valores sern precisamente los que queremos optimizar mediante el proceso evolutivo. Sea Evol (EvolDim) el total de dichas dimensiones, a las cuales llamaremos dimensiones evolutivas. Definimos unos rangos de variacin (Ri) para cada una de las variables evolutivas, obtenindose as un subespacio de bsqueda apropiado para el problema: Ri = {mni, mxi}, 1<i<Evol A continuacin se genera una poblacin inicial de N mecanismos de forma aleatoria. Para ello se eligen al azar los valores de cada dimensin evolutiva dentro de sus rangos establecidos.
12
SDMAG
La poblacin inicial (j=0) estar constituida por N vectores de dimensin Evol cada uno: MecActij=0 = {c1i, c2i, ..., cEvoli},donde 1<i<N, mnk<ck i<mxk, 1<k<Evol Llamamos poblacin actual a dicha poblacin. Evaluamos la poblacin actual. Para ello se ensambla cada mecanismo de la poblacin en cada una de las posiciones prescritas. A cada mecanismo se le asigna un valor de aptitud o fitness: Fi, 1<i<N El valor de F depender del tipo de sntesis elegido: -Generacin de Trayectoria: F ser la suma de las distancias eucldeas entre las posiciones prescritas y las posiciones alcanzadas para todos los puntos de precisin. -Generacin de Movimiento: F ser la suma de las distancias eucldeas entre los puntos prescritos y alcanzados de la trayectoria ms las desviaciones angulares corregidas: distancia entre los extremos de los vectores que representan al segmento de rotacin prescrita en sus posiciones prescrita y alcanzada (suponiendo sus orgenes coincidentes). -Generacin de Funcin: si la barra de salida es una corredera, F es la suma de las distancias eucldeas entre posiciones prescritas y alcanzadas. Si la barra de salida no es una corredera, F ser la suma de las desviaciones angulares de las posiciones alcanzadas respecto de las prescritas. Los mecanismos que resultasen rotos obtendrn una penalizacin en funcin de su grado de rotura (nmero de posiciones prescritas no ensamblables). La obtencin de F se realiza como sigue: 1. Se calcula un Fip (provisional) para cada mecanismo, considerando slo sus posiciones NO rotas. 2. Se determina el mximo de los valores anteriores entre la poblacin (FMAX) 3. Se asigna un fitness definitivo (Fi, 1<i<N) a cada mecanismo. Si Pos es el nmero de posiciones prescritas y NROTi es el nmero de roturas: Si NROTi =0: Fi = Fip Si NROTi < Pos: Fi = Fip + NROTi FMAX Si NROTi = Pos: Fi = FMAX + NROTi FMAX Se ordena la poblacin de acuerdo a su aptitud (de menor a mayor valor de Fi). A continuacin se construye la Poblacin Futura: primero se almacenan en sta los mejores mecanismos (en un nmero igual a lite individuos). Despus se completa la poblacin con los hbridos resultantes tras el proceso de cruce y mutacin. Ntese que N debe ser tal que (Nlite) sea par.
13
SDMAG
El cruzamiento consiste en seleccionar 2 individuos procreadores entre la poblacin actual. stos darn lugar a 2 hbridos: 1. Seleccionar 2 progenitores (MecActP1 y MecActP2) mediante el mtodo de la ruleta. 2. Dichos individuos sern cruzados con probabilidad Pc (probabilidad de cruce). Si resulta que deben cruzarse, se obtendrn 2 hbridos (Hibr1 e Hibr2). Cada cromosoma k de cada hbrido ser: ck1=ckP2 con probabilidad p=0.5 (ck1=ckP1 en caso contrario), para el Hibr1 ck2=ckP1 con probabilidad p=0.5 (ck2=ckP2 en caso contrario), para el Hibr2 con 1<k<Evol En el caso de que no deban cruzarse: Hibr1=MecActP1 e Hibr2=MecActP2 La mutacin consiste en alterar los hbridos anteriores, tras lo que resultan los individuos mutados Mut1 y Mut2: 1. Se eligen 2 mecanismos al azar entre la poblacin actual (MA y MB). stos sern la fuente de ruido para la mutacin. 2. Cada cromosoma cki=1,2 de los hbridos cambiar su valor a c ki=1,2 con probabilidad Pm (probabilidad de mutacin) y conservar su valor con probabilidad 1-Pm: c ki=1,2= ckA + K(ckB - ckA), 1<k<Evol donde K (constante de mutacin) es un valor aleatorio entre 0 y Km En el caso de que algn c ki=1,2 no perteneciera Rk, esto es, estuviera fuera de rango, se tomar c ki=1,2= ckA como resultado de la mutacin. Los mecanismos resultantes tras la mutacin se introducen en la poblacin futura. Se realizan los procesos de cruce y mutacin hasta que se completa la llamada poblacin futura, tras lo cual se llama a sta poblacin actual, volvindose a repetir los pasos desde la evaluacin. Se incrementa el contador de generaciones transcurridas. Se repiten los pasos anteriores hasta que se completan el nmero de generaciones programadas, o mientras que no se cumpla el criterio de paro. El criterio de paro elegido consiste en comparar la diferencia entre el ajuste medio poblacional (FM) y el del mejor individuo (F0) de cada generacin con una determinada cota, o bien el propio ajuste del mejor individuo. Si llamamos FitCota a dicho valor, el algoritmo se detendr en uno de los siguientes casos: FM-F0<FitCota, o bien F0<FitCota El mejor individuo al trmino del algoritmo ser la solucin propuesta como ptima. La manera de implementar lo anterior, sobre todo en cmo se evalan los individuos de la poblacin, se expone en el siguiente apartado.
14
SDMAG
4. METODOLOGA EMPLEADA
Se detalla a continuacin cmo se ha implementado el AG de manera concreta. Puede que el lector califique algunas tcnicas o tratamientos utilizados como particularmente enrevesados o poco comunes. Se intentarn explicar stos con detalle, justificndolos en la medida de lo posible.
Podemos clasificar los PBs por su carcter: PBs Fijos: sern aquellos cuya posicin no vara en el movimiento del mecanismo. PBs Incgnita: aquellos cuyas posiciones son desconocidas a priori, necesitndose resolver las ecuaciones de restriccin del mecanismo para fijarlos en el plano. PBs Prescritos: aquellos cuyas posiciones estn prescritas en el movimiento, por pertenecer a la barra motora.
Tambin podemos hablar de PBs Libres: aquellos que no se conectan con ninguna otra barra distinta a la que pertenecen. Dichos puntos sern los habitualmente conocidos como Puntos de Inters o Puntos Trazadores en un problema de generacin de trayectoria o de movimiento.
15
SDMAG
16
SDMAG
A continuacin se muestra una figura aclaratoria con diversos ejemplos de tipos de barra, as como los convencionalismos adoptados.
54
L5,3
53
L5,2
3 2
21 31
5
L5,6 L5,1
55
L5,5
L5,7
52
51
BARRA 2 BIARTICULADA. EL PB21 ES FIJO Y EL PB22 SE CONECTA A OTRA BARRA. SE MUESTRA LA MANERA DE MEDIR SU NGULO ()
52
22=31
5 2
6
22=61
53
3 2
P1,4 32=41 P2,4
51
4
S 21
21
CORREDERA ARTICULADA MVIL 6. SE ARTICULA EN EL PB22 Y DESLIZA SOBRE EL SEGMENTO DE ORDEN 3 DE LA BARRA 5 (EL QUE VA DEL PB53 AL PB51)
CORREDERA ARTICULADA FIJA 4. SE ARTICULA EN EL PB32 Y DESLIZA SOBRE LA LNEA FIJA DEFINIDA POR P1,4 Y P2,4. SE MUESTRA CMO SE MIDE SU COORDENADA DE AVANCE "S"
43
23=51
42
5
41
2
21
22
CORREDERA RGIDA MVIL 5. SE UNE EN EL PB23 Y DESLIZA SOBRE EL SEGMENTO DE ORDEN 1 DE LA BARRA 4. SE MUESTRA LA MANERA DE MEDIR SU NGULO (), EL QUE VA DEL SEGMENTO DE MENOR ORDEN AL QUE PERTENECE EL PUNTO DE UNIN (L2,2) HASTA EL SEGMENTO DE DESLIZAMIENTO (L4,1)
22=31
32=41
4 2
P1,5 42=51 P2,5
DIR. DEL SEGMENTO DE DESLIZAMIENTO CORREDERA RGIDA MVIL 5. SE UNE EN EL PB42 Y DESLIZA SOBRE LA LNEA FIJA DEFINIDA POR P1,5 Y P2,5. SE MUESTRA LA MANERA DE MEDIR SU NGULO (), EL QUE VA DEL SEGMENTO DE MENOR ORDEN AL QUE PERTENECE EL PUNTO DE UNIN (L4,1) HASTA EL SEGMENTO DE DESLIZAMIENTO (EL QUE VA DEL P1,5 AL P2,5). SE MUESTRA TAMBIN CMO SE MIDE SU COORDENADA DE AVANCE "S"
5
S 21 DIR. DEL SEGMENTO DE UNIN
17
SDMAG
En cuanto a las ecuaciones de restriccin que se construyen para cada barra, se detallan a continuacin sus expresiones: Para cada barra articulada, se montarn tantas ecuaciones de restriccin como segmentos tenga. Las ecuaciones son del tipo longitud constante. Si el segmento k (de longitud Lk) va del punto bsico a al punto bsico b: (xb-xa)2+(yb-ya)2-Lk2=0 Para cada corredera articulada se ha de plantear una ecuacin que garantice que el punto bsico en el que se articula la misma (punto r) est sobre su recta de deslizamiento (definida por los puntos a y b): (xr-xa)(yb-ya)-(yr-ya)(xb-xa)=0 Para cada corredera rgida han de montarse dos ecuaciones, la primera (1) destinada a garantizar que el punto de unin de la corredera (punto u) est sobre su recta de deslizamiento. La segunda expresa la constancia del ngulo () entre el segmento de la barra articulada a la que se une (puntos ua y ub, de longitud Lu) y la lnea de deslizamiento (puntos da y db, de longitud Ld). La forma de plantear esta ltima depende del ngulo mencionado. Para ngulos en torno a 0 180 se plantear la ecuacin de la constancia de la componente z del producto vectorial (2PV) de los vectores que representan al segmento de unin y a la recta de deslizamiento. Para el resto de ngulos se plantear la ecuacin del producto escalar (2PE) entre los vectores mencionados. La razn de este planteamiento est en que dos vectores que formen un ngulo prximo a 0 180 no varan la proyeccin del uno sobre el otro si dicho ngulo vara una cantidad infinitesimal. Por lo tanto el producto escalar no se aplica en estos casos. Anlogamente, para un ngulo prximo a 90, si ste vara una pequea cantidad, la componente z del producto vectorial permanece constante, de ah que no se aplique el producto vectorial a estos casos. Ms concretamente el planteamiento seguido aqu es: si el coseno del ngulo pertenece a (0.99,0.99), esto es, para ngulos pertenecientes a (-8.11, 8.11)U(171.89, 188.11) aproximadamente, se plantea la ecuacin (2PV). En el resto de casos se formula la (2PE). Obviamente el valor 0.99 se ha tomado arbitrariamente. (xu-xda)(ydb-yda)-(yu-yda)(xdb-xda)=0 (xdb-xda)(xub-xua)+(ydb-yda)(yub-yua)-LdLucos()=0 (xub-xua)(ydb-yda)-(xdb-xda)(yub-yua)-LdLusen()=0 (1) (2PE) (2PV)
Segn sea el tipo de la barra motora, se realizan las siguientes consideraciones. Si la barra motora es una: BArt: la ecuacin correspondiente a su segmento de movimiento prescrito se deja sin montar. CArtF: su ecuacin no se monta. CRigF o CRigM: slo se monta la ecuacin de la constancia del ngulo de unin.
18
SDMAG
En cuanto a la manera de especificar la posicin de la barra motora, podra preguntarse por qu no se especifica sta mediante pares coordenados (como sera lgico pensar si se usan coordenadas naturales). La razn de usar ngulos en el caso de que la barra motora sea una barra articulada, y desplazamientos en el caso de que la barra motora sea una corredera, es la de facilitar la introduccin de los datos. El programa se encarga de calcular las coordenadas del punto prescrito en cada caso. De este modo, se ahorran clculos innecesarios al diseador.
4.3. CODIFICACIN
Ya se ha visto cmo se guardan los datos de una poblacin de mecanismos: slo se guardan las dimensiones evolutivas. Para determinar un mecanismo en una posicin concreta, es necesario especificar algo ms que sus dimensiones evolutivas. Primero, se va a dar cuenta de cules son las dimensiones de un mecanismo genrico como el de la figura, al que nos referiremos como mecanismo de ejemplo:
53 L52 L53
52=61
5 4
L6 ACR_4 (X_P1,7,Y_P1,7)
6
62=71
22=51
L51 32=41
(X_P2,7,Y_P2,7)
3
L2
L3
31 (X31,Y31)
21 (X21,Y21)
MECANISMO DE EJEMPLO
Se necesitan unas longitudes, unas coordenadas de los puntos fijos, unas coordenadas para los puntos de definicin de las rectas de deslizamiento de las correderas fijas, y los cosenos de los ngulos de unin de las correderas rgidas. En el ejemplo: Longitudes: L2 L3 L51 L52 L53 L6 Puntos Fijos: X21 Y21 X31 Y31 Puntos Rectas de Deslizamiento: X7P1 Y7P1 X7P2 Y7P2 Cosenos de Correderas Rgidas: cos(ACR4) Tambin se necesitar conocer la posicin de la barra motora, as como las posiciones de los PBs incgnita del problema. Si suponemos que la barra de entrada es la 2: Barra Motora: X22 Y22 Incgnitas: X32 Y32 X52 Y52 X53 Y53 X62 Y62
19
SDMAG
Dichos datos sern, junto con la topologa del mecanismo, la informacin necesaria para representar un mecanismo en una posicin concreta. De manera general, la estructura del vector de datos ser: { Barra Motora | Incgnitas | Dimensiones } Ntese que las incgnitas aparecen con un orden definido (de menor a mayor nmero de barra y de menor a mayor PB). Igualmente las dimensiones tambin mantienen un orden lgico en el vector de datos. De esta forma, siempre se sabe a qu posicin del vector ha de accederse para extraer un dato concreto. Una vez explicado esto, podemos dar a conocer cmo se codifica la topologa del mecanismo. Bsicamente, la informacin acerca de la conexin entre barras se almacena en una lista de listas, esto es, cada elemento de la lista es otra lista. Si el mecanismo tiene n barras (incluida la barra fija) la lista de topologa tendr n-1 listas, que correspondern a la barra 2, 3,..., n. Para cada barra, dependiendo de si sta es una barra articulada o una corredera, los elementos de su lista de definicin sern diferentes. As, para una: Barra Articulada: lista de pares. Cada par corresponde a la conexin de cada PB de la barra. El primer elemento del par corresponde a la barra de conexin, el segundo al PB de conexin. Corredera: cuatro elementos. El primero indica la barra de conexin, el segundo el PB de conexin, el tercero la barra de deslizamiento, el cuarto el orden del segmento de la barra anterior sobre el que la corredera se desliza (ya que dicha barra podra tener varios posibles segmentos de deslizamiento) Notar que la barra fija dispone de un nico PB, el PB11, y un nico segmento de deslizamiento, el 1. Para dar claridad a lo anterior, se muestra aqu la topologa del mecanismo de ejemplo: BArt 2 BArt 3 CRigM 4 BArt 5 BArt 6 CArtF 7 1 1 3 2 5 6 1 1 2 2 2 2 5 4 5 6 7 1 1 1 1 1 1 1
Ntese cmo el PB53 se conecta consigo mismo. De esta forma se indica que se trata de un PB libre, que posteriormente puede ser usado como punto trazador.
20
SDMAG
(*) Reverse Polish Lisp significa Lisp Polaco Inverso. Lisp es el acrnimo de List Proccesing (Procesado de Listas). Se trata de una tcnica para realizar operaciones en una pila y se basa en los trabajos del polaco Jan Lukasiewicz, quien cre la notacin de prefijo llamada Notacin Polaca
21
SDMAG
22
SDMAG
BMoti0: juego original de posiciones prescritas de la barra motora BMotij: posiciones de la barra motora en la generacin j IncBMot0: valor inicial del incremento de exploracin alrededor de la barra motora IncBMotij: incremento de exploracin en la generacin j (alrededor de la posicin BMotij) RedIncBMot: reduccin de IncBMotij
El reajuste tiene lugar segn los siguientes pasos, para la generacin j: 1. Se guardan copias de BMotij-1, IncBMotij-1, {MecAct} j-1, F j-1 con el propsito de restaurar las condiciones previas al intento de reajuste si ste no prosperara. 2. Se realizan, sobre el mejor mecanismo de la poblacin, dos evaluaciones adicionales a la BMotij-1 prescrita (las correspondientes a las posiciones "adelantada" y "retrasada" una j-1 j-1 cantidad IncBMoti en torno a BMoti ), guardndose las aproximaciones encontradas para cada una de ellas en cada uno de los Puntos de Precisin. Para cada Punto de j Precisin se comparan las 3 distancias observadas. Si hubo mejora se modifica BMoti j para dicho Punto de Precisin. En caso contrario se reduce el IncBMoti correspondiente. Ntese que estas mejoras parciales deben ser corroboradas en el total de la poblacin, ya que la aptitud es siempre relativa al contexto donde se determina, esto es, depende del resto de individuos coetneos. 3. Si hubo alguna posible mejora, se plantea si realmente son efectivas en el contexto del total de la poblacin. Para ello se evala y ordena la poblacin. Se compara el fitness del mejor mecanismo con el del mejor mecanismo antes de intentar el reajuste. Si fue mejor que ste ltimo, se abandona el reajuste sin restaurar nada. Sino, se va al paso 4. 4. No se produjo ninguna mejora global. Se restauran las copias guardadas en el paso 1, j j-1 salvo que IncBMoti = IncBMoti /RedIncBMot, persiguindose con esto una mayor finura en el reajuste de la siguiente generacin.
23
SDMAG
SDMAG
25
SDMAG
5. SDMAG
SDMAG es, como ya se habr podido adivinar, el acrnimo de Sntesis Dimensional de Mecanismos mediante Algoritmo Gentico. Tambin es el nombre dado al programa informtico donde se implementa todo lo expuesto con anterioridad en este documento. Aqu slo se van a resumir las caractersticas del programa. Para un mayor detalle deber consultarse, fuera de esta memoria, el Documento de Ayuda de SDMAG. SDMAG es un programa informtico escrito en Lenguaje C [14], por lo que se puede compilar y ejecutar en cualquier plataforma. Se ejecuta en modo consola, no requirindose ninguna capacidad grfica especfica en la mquina. Adems, con ayuda de un visor de archivos DXF [15] se podr obtener una representacin grfica completa de la salida del programa. El programa permite la creacin de una serie de archivos con los datos necesarios para resolver una sntesis. Una vez creados stos, se pueden modificar posteriormente. Para resolver el problema, el programa hace uso de dichos archivos y se generan otros con los datos relativos a la solucin encontrada. Ms concretamente, SDMAG escribe dos archivos. El primero es un fichero de texto donde se recogen las incidencias de la resolucin, las dimensiones del mecanismo sintetizado, las posiciones alcanzadas por aquel, as como las desviaciones de stas respecto de las originalmente prescritas. El segundo es creado a voluntad del usuario y se trata de un archivo DXF ASCII con la representacin de la solucin obtenida. ste se puede ver con cualquier programa capaz de procesar dichos archivos. No obstante, se ha intentado optimizar la representacin para su visualizacin con AutoCad. SDMAG se acompaa, adems de por la documentacin de ayuda mencionada ms arriba, por una batera de ejemplos que intentan ilustrar el uso del programa. A continuacin se muestra el diagrama de flujo general de resolucin de un problema de sntesis por SDMAG, permitiendo completar el conocimiento de cmo se han implementado los distintos mtodos expuestos en el apartado anterior.
26
SDMAG
ALGORITMO GENTICO
REDONDEO
ELITISMO
REPRESENTACIN GRFICA
CODIFICACIN
DIMENSIONES DEPENDIENTES
CRUCE Y MUTACIN
DIMENSIONES DEPENDIENTES
POBLACIN FUTURA
27
SDMAG
6. RESULTADOS Y CONCLUSIONES
A continuacin se presentan una serie de ejemplos con el objeto de mostrar la capacidad del programa. En primer lugar se propone la sntesis de una trayectoria cerrada (con 8 puntos de precisin) mediante un mecanismo de biela-manivela. En segundo lugar, otra sntesis de una trayectoria cerrada (con 24 puntos) mediante un cuadriltero articulado. Finalmente un problema de generacin de movimiento con un mecanismo de mayor complejidad. Pueden consultarse los datos de los ejemplos en la carpeta ejemplos/ del programa. El nombre del proyecto asociado aparecer indicado entre corchetes. En el Documento de Ayuda de SDMAG pueden consultarse ms ejemplos.
22=31 5 6 21 P1 7 4 3 2 33 1=9
4
32=41
P2
La barra motora es la 2, el punto trazador es el 33 y se pretende que ste pase por 8 puntos concretos. Para ello se definen las posiciones prescritas de la tabla siguiente (la posicin 9 cierra la trayectoria y es idntica a la 1). Las posiciones correspondientes a la barra motora se toman como estimacin y estn espaciadas en base a la separacin entre los distintos puntos prescritos. El programa reajustar dichas posiciones (se trata de una sntesis sin correlacin temporal).
Posicin 1 2 3 4 5 6 7 8 9 Barra motora 45 70 95 120 145 185 275 365 405 X33 26 23 20 17 14 10 20 30 26 Y33 16 16 16 16 16 13 7 13 16
Las dimensiones del prototipo (MP) y sus rangos de variacin se muestran a continuacin:
Punto Fijo X21 Y21 10 10 5 5 15 15 L2 10 10 20 Longitudes L31 L32 20 13 15 10 25 15 L33 9 10 15 XP1 0 0 0 Recta de Deslizamiento YP1 XP2 YP2 5 50 5 5 50 5 5 50 25
MP MN MX
28
SDMAG
Ntese que los nicos valores no evolutivos son XP1, YP1 y XP2 El mecanismo prototipo se ha elegido atendiendo a que ste pasa muy cercano al punto 1 para una posicin de la barra motora de 45 y a que tiene unas dimensiones con valores sencillos (enteros). Como estimacin inicial de las posiciones de los puntos incgnita del problema de ensamblaje se toman X32 = 30, Y32 = 5, X33 = 26 e Y33 = 16 La solucin calculada por el programa se muestra a continuacin. Las dimensiones del mecanismo se han redondeado a 3 decimales:
X21 7.537 Y21 5.598 L2 10.558 DIMENSIONES DEL MECANISMO SINTETIZADO L31 L32 L33 XP1 22.212 11.711 13.430 0.000 POSICIONES ALCANZADAS Barra Motora X33 Y33 61.349 26.000 15.998 79.227 23.006 16.246 96.077 19.988 16.177 113.192 17.027 15.838 131.146 14.243 15.201 168.751 9.997 13.002 294.572 19.980 7.075 6.552 30.003 12.999 61.347 26.000 15.998 Desviacin Total YP1 5.000 XP2 50.000 YP2 7.822
Punto 1 2 3 4 5 6 7 8 9
Desv. 0.002 0.246 0.178 0.165 0.835 0.004 0.077 0.003 0.002 1.511
29
SDMAG
A continuacin se muestran superpuestas, por claridad, slo las trayectorias prescrita y alcanzada:
4 5
1=9
6 8
La evolucin del ajuste o fitness (F) y el ajuste medio poblacional (FM) se muestran en la siguiente grfica:
25
20
F
FM
15
Fitness
10
0 Generaciones
30
SDMAG
10 9 8
Como mecanismo prototipo se va a usar uno obtenido de la siguiente forma: 1) Se parte de un mecanismo que genera una trayectoria en forma de lazo. La trayectoria generada por ste se muestra superpuesta con la de nuestro problema en la figura:
33
L33=20 PB42=(30,10)
22=31
31
SDMAG
2) Transformamos el mecanismo anterior y su trayectoria, hasta que sta y la curva pretendida se parecen razonablemente. Para tal fin: se realiza una simetra con eje vertical que pasa por el origen. Se reduce, con punto base el origen, un factor de 0.75. Se gira respecto al origen un ngulo de 75 en sentido positivo de giro. Se realiza un desplazamiento relativo (+36.4, +26.4):
32=41
33
L2=15
PB42=(23.332, 6.608)
Basndonos en la posicin mostrada en la figura anterior y suponiendo una distribucin uniforme de las posiciones de la barra motora, la trayectoria prescrita queda:
Pos 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 B. Mot. -105.000 -90.000 -75.000 -60.000 -45.000 -30.000 -15.000 0.000 15.000 30.000 45.000 60.000 75.000 90.000 105.000 120.000 135.000 150.000 165.000 180.000 195.000 210.000 225.000 240.000 255.000 X33 19.657 23.737 27.791 31.645 36.012 39.391 41.812 41.587 40.108 37.476 33.792 29.593 25.767 22.813 20.358 17.905 15.952 14.149 12.146 10.393 11.044 12.847 15.000 17.103 19.657 Y33 16.702 17.032 17.088 16.552 15.682 15.006 16.413 18.945 20.856 22.491 23.104 22.153 20.301 18.199 16.244 14.199 12.748 11.597 10.496 10.596 12.298 13.849 15.000 16.001 16.702
32
SDMAG
Las dimensiones y posiciones de los elementos del mecanismo prototipo (MP), as como sus rangos de variacin (MN, MX) se muestran a continuacin:
MP MN MX X21 Y21 X42 Y42 36.400 26.400 23.332 6.608 -100.000 -100.000 -100.000 -100.000 100.000 100.000 100.000 100.000 L2 15.000 10.000 40.000 L31 22.500 20.000 50.000 L32 22.500 0.001 40.000 L33 15.000 0.001 40.000 L4 30.000 20.000 50.000
Se plantea una sntesis de trayectoria sin correlacin temporal en [4bgt25pp_p]. Tras el reajuste se resuelve un nuevo problema en [4bgt25pp] usando los valores reajustados de la barra motora pertenecientes al problema anterior. A su vez, se disminuyen los rangos de variacin y la intensidad del reajuste. Como resultado final se tiene:
X21 54.730 Y21 25.666 DIMENSIONES DEL MECANISMO SINTETIZADO X42 Y42 L2 L31 L32 23.714 7.310 15.627 41.950 27.147 L33 30.001 L4 36.431
Pos 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
POSICIONES ALCANZADAS B. Mot. X33 Y33 248.909 19.646 16.761 263.571 23.698 16.668 278.482 27.613 16.079 294.530 31.481 15.426 316.271 36.022 15.114 335.442 39.151 15.639 354.879 41.211 16.907 16.783 41.888 18.908 41.170 40.390 21.165 61.295 37.482 22.422 79.617 33.819 22.678 97.552 29.669 21.903 113.790 25.766 20.303 127.159 22.653 18.433 138.771 20.127 16.525 150.933 17.724 14.417 160.941 15.958 12.769 171.173 14.366 11.361 190.708 12.091 10.285 200.612 11.572 10.885 209.866 11.738 12.104 220.292 12.857 13.846 230.294 14.794 15.362 239.271 17.019 16.290 248.909 19.646 16.761 Desviacin Total
Desv. 0.060 0.366 1.025 1.138 0.568 0.677 0.778 0.303 0.419 0.070 0.427 0.261 0.002 0.283 0.364 0.284 0.021 0.320 0.218 1.214 0.721 0.011 0.417 0.301 0.060 10.308
33
SDMAG
Se observa una discrepancia acusada en algunos puntos, aunque en general, la curva alcanzada se ajusta bastante bien, para el nmero de posiciones considerado, a la prescrita.
34
SDMAG
D=20
Evidentemente las coordenadas del PB61 pertenecen a la circunferencia con centro en el punto fijo 52 y radio L5 y aunque formalmente las posiciones de dicho punto forman parte de la sntesis, lo que nos interesa aqu es la rotacin del segmento que va del punto 63 al punto 61 (Rot63). Las dimensiones del mecanismo prototipo (el de la figura anterior) son:
X21 0.000 0.000 0.000 Y21 0.000 0.000 0.000 Puntos Fijos X52 Y52 X102 50.000 100.000 257.129 50.000 100.000 230.000 50.000 100.000 280.000 Y102 17.816 0.000 40.000
MP MN MX
MP MN MX
Longitudes L61 L62* L63 L7 201.000 102.000 300.000 155.000 201.000 20.000 300.000 100.000 301.000 102.000 300.000 180.000
35
SDMAG
MP MN MX
Recta Deslizamiento Corredera 8 XP1 YP1 XP2 YP2 0.000 0.000 350.000 -30.621 100.000 0.000 400.000 -25.000 100.000 0.000 400.000 25.000
ngulos Correderas Rgidas ACR3 ACR9 0.000 90.000 0.000 90.000 0.000 90.000
La longitud L62 es una dimensin dependiente, su valor es tal que la distancia D entre el punto 62 y el segmento de rotacin prescrita sea igual a 20. La expresin que determina su valor es: L62 = { 202 + [ L63 - L61( 1 - (20/L61)2 )1/2 ]2 }1/2 Se puede comprobar que el mecanismo prototipo est roto en la primera y segunda posiciones prescritas. La dificultad de ensamblar grficamente el mecanismo se pone de manifiesto observando lo siguiente: si las todas las dimensiones anteriores son dadas (excepto la longitud y punto fijo de la barra 10), podemos intentar buscar la circunferencia que es tangente a la barra 7 de manera simultnea en las 3 posiciones prescritas. El radio de dicha circunferencia sera la longitud L10 y las coordenadas de su centro el punto fijo para la barra 10. Encontrar tal circunferencia es complicado, pero lo verdaderamente difcil es que el resultado sea un mecanismo vlido, esto es, no presente ni roturas ni puntos fuera de circuito en posiciones intermedias a las prescritas. Tras resolver se obtuvo lo siguiente (se muestran slo las dimensiones evolutivas del ptimo):
L61 L62 L7 201.224 101.757 172.828 L10 36.174 X102 235.692 Y102 22.931 Y P2 6.334
36
SDMAG
6.4. CONCLUSIONES
Una vez decidido el tipo de mecanismo con el que se quiere realizar la tarea prescrita, la obtencin de una buena solucin (desde el punto de vista cualitativo) depende en gran medida del subespacio de bsqueda considerado, esto es, de una eleccin adecuada de los rangos de variacin de las dimensiones. Una buena solucin ser mejor que otra (cuantitativamente hablando) cuanto mejor sintonizados estn los parmetros que controlan el algoritmo gentico. Dar con la mejor combinacin paramtrica es tarea casi imposible, no por el nmero de parmetros que intervienen, sino por la dependencia mutua entre ellos y la evolucin de la poblacin, que cambia en cada generacin por obra y gracia del azaroso destino debido a la propia naturaleza aleatoria del algoritmo. Dicho esto, parece indicado plantear la siguiente estrategia de resolucin de problemas: primero se acotan los rangos de variacin hasta tener un conocimiento de la calidad de las soluciones y posteriormente se intentan sintonizar los parmetros del algoritmo para obtener una solucin cuantitativamente aceptable. A continuacin se dan una serie de ideas, basadas en la experiencia del autor, de cmo elegir cada parmetro del algoritmo (vase el Documento de Ayuda de SDMAG): Semilla: Definido un subespacio de bsqueda, la semilla elegida para crear la poblacin inicial decide los candidatos a generar la solucin final. Tamao de la Poblacin: A mayor nmero de individuos, se explorar con mayor profusin el subespacio de bsqueda, sin embargo el tiempo de clculo crece proporcionalmente con dicho nmero. Por lo tanto, es mejor comenzar probando con tamaos pequeos (de unos 100 individuos) y distintas semillas. Si se observa una gran discrepancia dimensional entre las soluciones obtenidas, esto indica que cabe esperar muchas buenas soluciones, con lo que sera apropiado aumentar el tamao de la poblacin para una mejor exploracin del dominio. En cambio, si las soluciones se parecen en cierta medida, no tiene sentido trabajar con un gran nmero de individuos que a la postre no van a generar un mayor nmero de alternativas. Generaciones: Como nmero de iteraciones programado para obtener una solucin, deberamos proponer un valor que permita a la poblacin inicial evolucionar adecuadamente. Si se observan las grficas de evolucin del ajuste, puede verse que ste obtiene prcticamente su valor final mucho antes de llegar a la mitad de las generaciones programadas. Por esta razn no tiene sentido establecer un nmero excesivo de generaciones. Como orientacin, podemos dar un valor de 100 a este parmetro. Probabilidades de Cruce (Pc) y Mutacin (Pm): Se podra decir que son los parmetros ms importantes del algoritmo. La Pc controla el intercambio de material gentico entre los individuos y la Pm la introduccin de pequeas perturbaciones en dicho material. Valores elevados de Pc tendrn como resultado una convergencia prematura poco recomendable. Por otro lado, valores muy altos de Pm podran estropear la convergencia del algoritmo. Para intentar remediar dichos problemas se proponen Pc y Pm variables con el nmero de generaciones: Pc decreciente y Pm creciente. De esta forma se intenta no incurrir en cruzamientos espurios en las ltimas generaciones del algoritmo, al existir entonces una gran correlacion entre las dimensiones de los mecanismos de la poblacin.
Memoria del PFC - Jos Hidalgo Daz 37
SDMAG
Como referencia, se sugieren las siguientes funciones cuadrticas: Pc(x) = Pcmax - Pcminx2 Pm(x) = Pmmin + Pmmaxx2
con x=Generacin/Generaciones
Una posible eleccin de los valores para los polinomios anteriores es, a ttulo orientativo:
Generaciones 100 200 300 Pcmax 0.7-0.65 0.65-0.60 0.60-0.50 Pcmin 0.2-0.4 ~0.2 0.1-0.2 Pmmin 0.01-0.3 Pmmax 0.6-1.0
lite: Como mnimo, debe valer 1. No obstante, se recomienda un valor mayor, con el objeto de no fomentar la predileccin en el cruce por un nico individuo. Mantener a ms de un individuo de lite es como mantener a los mejores individuos de varias castas de soluciones a la vez. Como referencia, se aconseja tomar como lite entorno un a 4% del total de la poblacin, disminuyendo este valor conforme se aumenta el tamao poblacional, por ejemplo: 4/100 (4 individuos de lite sobre 100 totales), 7/200, 10/300,... Error, Tolerancia y Maxiter: Realmente, stos no son parmetros del algoritmo gentico, pero son importantes porque controlan el problema de ensamblaje, que dota de valor numrico a la funcin de evaluacin del AG. Error, Tolerancia y Maxiter permiten controlar la precisin de la solucin obtenida en cada ensamblaje y no alargar el proceso iterativo, pero tambin marcan el criterio de rotura, esto es, una alta precisin (valores muy pequeos para Error y Tolerancia) y valores pequeos de Maxiter pueden calificar una posicin de ensamblaje como rota, cuando probablemente no sea as. Por otro lado, si se eligen valores altos de Maxiter, podramos estar alargando en exceso el tiempo de clculo debido a que realmente la posicin de ensamblaje est rota. Km: Valor mximo de la constante de mutacin. Se recomiendan valores en torno a 1.2. Valores demasiado altos podran estropear el proceso de mutacin, ya que los valores cromosmicos fuera de los rangos permitidos son invalidados automticamente. GenReajuste: Generacin de Reajuste. Depende de la incertidumbre sobre las posiciones de la barra motora. Un reajuste temprano deber hacerse cuando la incertidumbre sea grande y viceversa. Adems, el reajuste debe comenzar antes de que el cruzamiento pierda importancia frente a la mutacin, para que los reajustes introducidos tengan un efecto de realimentacin sobre las dimensiones de los mecanismos de la poblacin. IncBMot: Incremento de la BMot. Valor inicial del avance/retraso de las posiciones prescritas de la BMot en los que se tantea mejorar la aproximacin respecto al valor original de stas. Depende de la incertidumbre y separacin de los valores de la barra motora. RedIncBMot: Valor de reduccin (> 1) de IncBMot. Si al intentar el reajuste en una posicin prescrita no se encontr mejora, IncBMot pasar a valer IncBMot/RedIncBmot. De esta forma se consigue afinar en la bsqueda del mejor reajuste. Depende de los dos parmetros anteriores. Se busca conseguir una reduccin paulatina de IncBMot tal que se explote adecuadamente el mecanismo de reajuste.
38
SDMAG
7. PLANTEAMIENTOS FUTUROS
A continuacin se enumeran una serie de planteamientos conducentes a mejorar el programa: Ensayar otro tipo de seleccin distinto al planteado aqu. Por ejemplo usar Evolucin Diferencial. Estudiar la posibilidad de que el usuario pueda programar su propia tcnica evolutiva. Todo esto con el fin de mejorar la convergencia local. Con el propsito de simplificar la tarea de eleccin del subespacio de bsqueda, dotar al programa de algn mtodo de conocimiento basado en casos. Podra aadirse una librera de mecanismos predefinidos (al estilo de un atlas), o bien usar un conjunto de redes neuronales entrenadas para una seleccin de mecanismos-tipo de sntesis. Desarrollar una GUI (Graphic User Interface) o interfaz grfica de usuario para facilitar la introduccin, modificacin e interpretacin de datos.
39
SDMAG
8. REFERENCIAS
[1] GARCA DE JALN, J. y BAYO, E. Kinematic and Dynamic Simulation of Multibody Systems. Springer-Verlag [2] NIETO J. Sntesis de Mecanismos. Ed. AC [3] FREUDENSTEIN, F. Approximate Synthesis of Four-bar Linkages. Trans. ASME, Vol. 77, pag. 853-859 [4] SUH, C.H. y RADCLIFFE, C.H. Kinematics and Mechanism Design. John-Wiley & Sons [5] ERDMAN, A. G. y SANDOR, G. N. Mechanism Design Analisis and Synthesis, Vol. 1. Prentice Hall [6] KIRKPATRICK, S., GELATT, C. D. y VECCHI, M. P. Optimization by Simulated Annealing. Science, Vol. 220, pag. 671-680 [7] HOLLAND, J. H. Adaptation in Natural and Artificial Systems. University of Michigan Press [8] KURI, A. y GALAVIZ, J. Algoritmos Genticos. IPN-CIC, UNAM, FCE [9] GOLDBERG, D. E. Genetic Algorithms in Search, Optimization and Machine Learning. Addison-Wesley Publications [10] VASILIU, A. y YANNOU, B. Dimensional Synthesis of Planar Mechanisms using Neural Networks: Application to Path Generator Linkages. Mechanism and Machine Theory, Vol. 36 (2001), pag. 299-310 [11] STORN, R. y PRICE, K. Differential Evolution A Simple and Efficient Heuristic for Global Optimization over Continuous Spaces. Journal of Global Optimization 11, 1997, pag. 341-359 [12] CABRERA, J. A., SIMN A. y PRADO, M. Optimal Synthesis of Mechanisms with Genetic Algorithm. Mechanism and Machine Theory, Vol. 37 (2002), pag. 1165-1177 [13] TABERNERO, A. Anlisis Numrico (Apuntes de la Asignatura). Facultad de Informtica de la UPM [14] KERNIGHAN, B. W. y RITCHIE D. M. El Lenguaje de Programacin C. Prentice-Hall Hispanoamericana, S.A. [15] AUTODESK, INC. Manual de Referencia de DXF
40