Apuntes de Inteligencia Artificial

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Apuntes de Inteligencia Artificial"

Transcripción

1 PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR FACULTAD DE INGENIERÍA Apuntes de Inteligencia Artificial Algoritmos Genéticos JORGE AGUILAR JARAMILLO

2 Algoritmos Genéticos 8 Algoritmos Genéticos 8.1 Introducción Los Algoritmos genéticos (AG) son los algoritmos evolutivos que mayor trascendencia han tenido. La implementación de estos algoritmos es muy sencilla, tal es así que estos y en general los algoritmos evolutivos están siendo usados en una amplia variedad de aplicaciones, sin embargo el comportamiento del algoritmo, es muy complejo y hasta la fecha no existe una teoría clara que logre explicar porqué trabajan o porqué no pueden resolver ciertos problemas. En este sentido es de suma importancia el desarrollo de los fundamentos teóricos que aclaren estas dudas y permitan avanzar en la comprensión y desarrollo de la temática de computación evolutiva en general. 8.2 La mecánica de un AG simple En el capítulo introductorio a Computación Evolutiva, se definió el pseudo código de un algoritmo evolutivo genérico. Consideremos ahora un algoritmo genético que implementa mutación en paralelo, como se muestra en la Ilustración 1. La diferencia de este algoritmo es que parte de la población 1-Pc implementa solo mutación, mientras que el otro algoritmo lo haría a través del camino que toma la población Pc, sin mutación en paralelo haciendo primero cruce y luego mutación. La población de P(t) (λ CM +λ M ) estructuras individuales es inicializada y evaluada, entonces evoluciona de la generación g a la generación g+1, repitiendo los operadores, de selección de padres, recombinación (C), mutación (M) y evaluación y se completa el ciclo con la selección de los sobrevivientes para la siguiente generación y se implementa mutación en paralelo, simplemente tomando parte de esta población para realizar solamente mutación. Un AG tradicional trabaja sobre cadenas binarias de longitud fija y aplica aptitudes proporcionales a la selección, un punto de cruce y mutación simple. La población inicial se genera siguiendo una distribución uniforme dada aleatoriamente, esto es, cada posición en cada cadena contiene un 0 o un 1 con la misma probabilidad (del 50%). El modelo de evolución es representado por generaciones sucesivas de poblaciones, así una nueva población reemplaza completamente a la anterior. El algoritmo se detiene cuando se ha alcanzado un número predefinido de generaciones. Finalmente, la evaluación de cualquier cadena dada se hace mapeando el genotipo (Ej. la cadena de bits) al fenotipo (su valor real) por medio de una operación binaria a decimal para cada grupo de bits del genotipo representando un parámetro del problema. El esfuerzo de cálculo de un AG habitualmente reside en las evaluaciones de las cadenas 173 Jorge Aguilar J.

3 iníciales y nuevas. Normalmente la función objetivo es compleja, por ejemplo, para entrenar una red neuronal, se necesita inspeccionar docenas de patrones para calcular un valor objetivo simple y así conocer si la respuesta que da la red se acerca a la realidad o a la salida conocida. Resumiendo, el algoritmo usa tres operadores: selección, cruce o recombinación y mutación, estos operadores son de complejidad lineal y trabajan a velocidades constantes para un problema dado. Ilustración 1 Algoritmo genético simple con mutación en paralelo En la actualidad varias modificaciones a este algoritmo se dan, influenciado por las otras disciplinas de la computación evolutiva y con la finalidad de tener algoritmos más robustos. 8.3 Explicación del Algoritmo: Tomemos el siguiente ejemplo para explicar el funcionamiento del algoritmo. Encontrar el máximo de la siguiente función, usando un AG.: f(x) = x + 10*sin(5*x)+7*cos(4*x) definido en el intervalo (0,9), veamos un gráfico de la función: 174 Jorge Aguilar J.

4 Algoritmos Genéticos Ilustración 2. Función en la que seterminaremos el másximo, usando algoritmos genéticos Observemos que para poder correr el algoritmo, necesitamos definir dos aspectos: Codificar el Problema: Representar la solución. En el capítulo introductorio a la Computación Evolutiva, vimos que para un algoritmo evolutivo, nos topábamos con el problema de ir del fenotipo al genotipo, es decir el proceso inverso a como se da en la naturaleza. Este procedimiento no es más que encontrar la forma de representar o de codificar la solución. Este procedimiento es un factor muy importante para el éxito del algoritmo genético, al igual que en muchos métodos de aprendizaje y búsqueda. Qué debemos representar?, como estamos buscando la solución al problema, debemos representar justamente una solución al problema: en este caso, cual es la solución, buscamos el máximo de una función, entonces tenemos que representar un número que nos lleve a definir justamente el máximo, hay más de una forma de hacerlo, por ejemplo si el número representa x, se puede con facilidad calcular f(x). La pregunta que podemos plantearnos ahora es Cómo representar el espacio de búsqueda, en este caso el número? Para nuestro problema, si vamos a representar un número, tenemos básicamente dos opciones: definirlo directamente como bits o hacerlo como un número real. Para problemas más complejos, debemos decidir cómo se estructuran los parámetros del problema en la cadena de bits (cromosoma) (si se usara una cadena de bits), es decir: Definir el número de bits por parámetro. El rango de la decodificación binaria a parámetro decimal, Si la cadena tiene longitud constante o cambia durante las operaciones de los AG, etc. En aplicaciones tradicionales la cadena usa un alfabeto binario y su longitud es constante 175 Jorge Aguilar J.

5 durante todo el proceso de evolución. También todos los parámetros se decodifican al mismo rango de valores y son localizados con el mismo número de bits para los genes en la cadena Representación Representación binaria decimal (número real) Aplicaciones de mayor complejidad necesitan cadenas de longitud dinámica o de un alfabeto diferente (no binario). Típicamente, genes de enteros o punto flotante son usados en muchos dominios, como en el entrenamiento de redes neuronales, funciones de optimización con un gran número de variables, problemas de reordenamiento como el del vendedor viajero, etc. Ilustración 3. Un cromosoma formado por cuatro parámetros, que a su vez están formados por cuatro bits En cuanto a la codificación existen varias formas de hacerlas, veamos las principales. Codificación Binaria. La Codificación binaria (ej. Cadenas de bits) ha sido la codificación más generalizada, básicamente porque en sus primeros trabajos Holland y sus estudiantes se concentraron en este tipo de codificación. Además mucha de la teoría existente de los AG se basa en esta asunción de codificación binaria y longitud fijas. La justificación de Holland fue que la codificación binaria sigue un grado más alto de paralelismo implícito que una codificación con un alfabeto de mayor cardinalidad ya que se tiene un mayor número de esquemas (ejemplo: codificar en binario con 100 bits nos da un número de esquemas de 176 Jorge Aguilar J.

6 Algoritmos Genéticos mientas que por ejemplo para una cadena de 10 caracteres se tiene ) 1. El número de esquemas se calcula usando (c+1) l donde c es la cardinalidad del alfabeto y l la longitud de la cadena 2. Contraria a estas ventajas, la codificación binaria no es natural y es pesada para muchos problemas. (ej. Evolución de los pesos para una red neuronal) Ha habido muchas extensiones a la codificación binaria básica de los esquemas, tales como códigos gray, y otros. El rendimiento de un algoritmo, depende más bien de la aplicación y de los detalles del AG usado (Melanie, 1999) y no existen líneas guías rigurosas para predecir qué tipo de codificación trabaja mejor. Codificación de valores reales y de varios caracteres Para muchas aplicaciones, es más natural usar un alfabeto de muchos caracteres o números reales para formar el cromosoma Ilustración 4. Ejemplo de una representación real Representación de longitud variable Puede darse el caso en que se necesite de una cadena dinámica, cromosomas de longitud variable, Para tratar este tipo de problemas, Goldberg y sus colegas hacia fines de la década de los 80 s propusieron el uso de un tipo especial de AG al que se le denominó desordenado messy (mga ). El objetivo de los AG "messy o AG Desordenados fue mejorar el rendimiento de la función-optimización para hacer esto se empieza con cromosomas cortos que tengan buenos bloques de construcción y a partir de estos ir aumentando la longitud de la cadena La idea general fue inspirada en la biología. Después de todo, la naturaleza no inicia con cadenas de longitud larga, las formas de vida simple ceden el paso a formas de vida más complejas con los bloques de construcción aprendidos en los primeros tiempos usados y re-usados por el buen efecto a lo largo del camino. (Goldberg, Korb, and Deb 1989) 3 1 Note que, para el mismo alfabeto decimal, si la cadena fuese de 31 posiciones, tiene más esquemas que la de 100 con código binario. 2 La razón por la que se suma uno a la cardinalidad es porque en los esquemas se usa un símbolo adicional (normalmente el asterisco o el símbolo de número) para indicar que no nos importa el valor de esa posición 3 Tomado de Mitchel M (1999) 177 Jorge Aguilar J.

7 Las características principales de este algoritmo son las siguientes: La Longitud de la cadena codificada es variable El tamaño de la población es variable Nuevos esquemas de selección basados en 2 fases o Fase Primordial o Fase de Yuxtaposición Nuevos operadores MESSY Operador de Corte Operador de Unión La idea fundamental al utilizar este tipo de técnica es que se representa esquemas en lugar de cromosomas. La codificación genética cambia con respecto a lo expuesto anteriormente porque cadaa gen es representado como un par ordenado en el esquema (locus, valor). El número de la izquierda es la posición cromosómica (locus) y el de la derecha el valor del bit de codificación como en el siguiente ejemplo de cadenas válidas: Figura 8. 1 Ejemplos de codificación (posición y valor) Sin embargo este tipo de codificación trae algunos problemas: Algunas posiciones pueden ser asignadas a más de un bit (sobre-especificación) Paraa solucionar el problema de la sobre-especificación se debee imponer un orden determinístico de evaluación (el primero encontrado tiene el valor para esa posición). Por ejemplo, de izquierda a derecha. De esta manera, se ignoran los valores posteriores al primero detectado paraa una cierta posición cromosómica. Ejemplo: si tenemos la cadena {(1,0) (2,0) (4,1) (4,0)} Tomamos el valor de 1 para el cuarto bit Algunas posiciones pueden no ser asignadas a ningúnn bit (sub - especificación). Paraa solucionar el problema de la sub especificación se debería evaluar cadenas parcialmentee definidas, viendo una cadena como un esquema candidato. 178 Jorge Aguilar J.

8 Algoritmos Genéticos Ejemplo: si tenemos la cadena candidato: 00*1 {(1,0) (2,0) (4,1) (4,0)}, se trata del esquema Existen varios métodos para evitar el problema de la sub-especificación: Método de los Promedios: Consiste en Generar n valores aleatorios para los lugares faltantes y sacar el promedio de todos esos valores, con lo que se reemplazaría el lugar faltante. El problema de este método consiste en que la aptitud promedio de estos n valores, frecuentemente será demasiado alta para que se pueda obtener un valor significativo mediante un muestreo aleatorio. Plantillas competitivas: Consiste en utilizar el método de ascenso de colina para obtener un mínimo local. Al correr el Algoritmo Genético Desordenado, se evalúan las cadenas sub-especificadas llenando las posiciones faltantes con un valor correspondiente al óptimo local. De esta manera es posible conocer la aptitud de cualquier esquema candidato. Vale la pena efectuar una mejor exploración si los bits definidos de un esquema candidato mejoran al mínimo local, que en esencia es una cadena que no puede mejorarse con el cambio de un solo bit. El problema identificado con las Plantillas competitivas es que el método de generación de los bits faltantes es víctima de la explosión combinatoria. Los Algoritmos Genéticos Desordenados operan en dos fases: Fase Primordial Fase de Yuxtaposición 179 Jorge Aguilar J. {(1, 0) (2, 0) (3, 0)} {(1, 0) (2, 0) (3, 1)} : : {(1, 1) (2, 1) (3, 1)} {(1, 0) (2, 0) (4, 0)} {(1, 0) (2, 0) (4, 1)} : : {(6, 1) (7, 1) (8, 1)} El objetivo de la fase primordial es generar esquemas cortos que sirvan como constructores para que en la fase de yuxtaposición puedan combinarse. El primer problema a resolver es el hecho de conocer que tan largos deberían ser estos esquemas cortos. La solución fue planteada por Goldberg y consistía en adivinar el

9 orden de estos esquemas. El orden de un esquema es el número de posiciones fijas que tiene, por ejemplo tenemos la cadena de bits ( 0 # # 1 0 ), entonces el orden es igual a 3. Si se adivina el orden del esquema (k), entonces continuamos con la generación por enumeración de todos los esquemas que tengan ese orden y longitud requerida. Por ejemplo si la longitud (l) = 8 y el orden del esquema (k) = 3 tenemos: Estos esquemas cortos (de orden predefinido) se generan en la fase primordial y luego evaluamos sus aptitudes, después de eso aplicamos sólo selección a la población (sin cruza ni mutación) para propagar los buenos bloques constructores, y se borra la mitad de la población a intervalos regulares, luego de un cierto número (predefinido) de generaciones, entramos a la fase yuxtaposicional. En este punto, el tamaño de la población permanecerá fijo y usaremos selección y 2 operadores llamados corte y unión. Debido a la naturaleza de este algoritmo, estos operadores siempre producen cadenas válidas. Codificación de árboles (ver computación evolutiva) Esquemas codificados como árboles, tales como los esquemas de John Koza para representar programas de computación, tienen varias ventajas, incluyendo el hecho que permitan un espacio de búsqueda abierto (ya que pueden formarse árboles de cualquier tamaño vía cruce y mutación). Esta apertura también conduce a algunas trampas potenciales. Los árboles pueden crecer sin control, impidiendo la formación de soluciones candidatas estructurada en forma jerárquicas. Estos grandes árboles pueden ser muy difíciles de entender y simplificar. Genotipos no convencionales Loa AG han usado un genotipo binario, en el cual cada parámetro del problema es codificado en binario usando un número dado de bits. En número de bits para cada gen (parámetro) y el rango decimal en el cual ellos se codifican son usualmente los mismos pero no excluye la utilización de diferentes números de bits o rangos para cada gen. Para evitar el llamado hamming cliffs el código de Gray es usado cuando se decodifica una cadena binaria. Con este código cualquier valor decimal adyacente es codificado con números binarios que solo difiere en un bit. Esto ayuda a los AG a hacer una aproximación agradable a un óptimo y normalmente reduce la complejidad de la búsqueda resultante. Sin embargo en varias aplicaciones en los cuales AG ha sido usados rinden muchos genotipos diferentes. Esto significa que la cadena puede ser construida sobre un alfabeto real o entero. Alfabetos enteros tienen propiedades interesantes para problemas de reordenamiento como el vendedor viajero y otros. Genes de punto flotante son muy útiles para optimización numérica (por ejemplo entrenamiento de redes neuronales). 180 Jorge Aguilar J.

10 Algoritmos Genéticos Estos alfabetos de alta cardinalidad mejoran la búsqueda reduciendo el número de cadenas mal-construidas resultantes de las aplicaciones de cruce y mutación. También cuando un número muy grande de parámetros ha sido optimizado es útil confiar en cadenas cortas (también porque la población y el número de pasos son menores) Si el genotipo pude expresarse como una cadena, es necesario decidir para una aplicación dada si la longitud es constante o variable para cada cadena en la misma población. También en ambientes dinámicos (la función de aptitud cambia como la búsqueda procede) El uso de individuos diploides es una decisión interesante. En un individuo diploide, dos cromosomas homólogos describen el mismo conjunto de parámetros. Cuando se decodifica la cadena, alguna clase de operador dominante se necesita para decidir el valor del parámetro del problema (gene). Ejemplos de genotipos sofisticados: Un individuo puede ser un árbol de símbolos (semejante a aplicaciones en programación genética) El individuo es una combinación de cadenas y árboles. Cadenas y un árbol. Algunas partes de la cadenas pude evolucionar y otras no en diferentes momentos de la búsqueda. El individuo puede ser una matriz de símbolos. El genotipo podría ser una cadena de símbolos que indican operaciones a ser ejecutadas. Un simulador interpreta los símbolos y destina valores de aptitud dependiendo de los resultados de la interpretación de la cadena. Una recomendación que suele hacerse es usar siempre la codificación más natural para el problema y entonces divisar un algoritmo que pueda usar esa codificación El segundo punto, no menos importante que el primero es la función de aptitud: Función de aptitud: La función de aptitud depende si se quiere maximizar o minimizar algún criterio. Aspectos como los siguientes hay que tomar en cuenta: El ambiente puede representar ruido en la evaluación (evaluación parcial por ejemplo). La función de aptitud puede cambiar dinámicamente cuando el AG procede La función objetivo podría ser tan compleja que solo aproximaciones a su valor pueden 181 Jorge Aguilar J.

11 calcularse. La función objetivo podría localizar valores muy diferentes de la cadena en orden a facilitar el trabajo del operador de selección La función de aptitud debe considerar la limitación del problema. Normalmente soluciones no factibles pueden aparecer por lo que la función de aptitud debe destinar un valor pequeño de aptitud (si este un problema de maximación). La función aptitud podría incorporar algunos sub-objetivos diferentes. Tales funciones multi - objetivo presentan problemas no convencionales cuando se usa en AG. Una función de aptitud es una caja negra parta el AG. Se alimenta con el fenotipo entonces consigue el valor de aptitud. Internamente puede ser llevado por una función matemática, un programa de simulación compleja o una persona que decide que tan buena una cadena es (esto es normal cuando las cadenas codifican imágenes, música o algo semejante) Con respecto a funciones de aptitud dinámicas un genotipo diploide pueden usarse en los cuales cada valor es determinado por alguna relación entre dos aleles codificados en la misma cadena. La extensión a cadenas k-ploides es directa. Un operador dominante necesita ser definido para tomar un valor del gen simple (parámetro) desde los k aleles que determinan este. Cuando la evolución procede, el valor de aptitud asignado por la función de aptitud a la cadena es muy similar, ya que la cadena será evaluada de manera similar. Existen algunos operadores de escalamiento diferentes que ayuda a separar los valores de aptitud en orden a mejorar el trabajo de los mecanismos de evolución. Cuando cadenas muy diferentes toman el mismo valor de aptitud surge el problema en que al cruzarlos rinde individuos muy malos (llamados letales) incapaces de fomentar mejoras. Métodos de compartición ayuda a permitir la existencia concurrente de soluciones muy diferentes en la misma población genética Una vez definida la forma en que representamos la solución al problema y la forma en que vamos a evaluar la solución, podemos aplicar el algoritmo. Como estamos interesados en encontrar el máximo de la función, debemos dar un valor de aptitud más alto a aquellas soluciones cuyo valor f(x) es más alto, por lo tanto la función de aptitud para el problema planteado es la misma función: f(x) = x + 10*sin(5*x)+7*cos(4*x) Una vez definidas la forma de codificar y la forma en que evaluaremos las soluciones procedemos ahora sí a correr el algoritmo. Antes de correrlo debemos crear la población inicial de soluciones que se irá mejorando en cada generación Creamos la población de individuos: Para el ejemplo planteado, aleatoriamente se definen una población de 10 individuos, es decir Jorge Aguilar J.

12 Algoritmos Genéticos números reales en el rango de 0 a 9. Para este caso codificado como reales, esta población inicial se muestra en la Tabla Ilustración 5. Función en la que se ha añadido la población inicial Individuo X f(x) % Total Tabla 1. Número de individuo en la población inicial con su aptitud y su peso en toda la población Selección / Reproducción: Sobre vivencia del más apto La selección simula a la selección natural y enfatiza la influencia genética de los mejores organismos en generaciones futuras. Un mecanismo de selección es la selección proporcional a la aptitud, esta da un peso a cada individuo en la población dependiendo de su aptitud, en forma proporcional a la aptitud total como se muestra en la Ecuación 1: 183 Jorge Aguilar J.

13 =120ljjF Ecuación 1. Selección proporcional a la aptitud Por lo tanto, para el caso del ejemplo que se muestra en la tabla 1. La proporción de cada solución en la población inicial es como se ilustra en la siguiente figura. 6% 7% 3% 21% 6% 5% 4% 15% 18% 16% Ilustración 6. Representación de la aptitud proporcional, para la población inicial Una vez creada y evaluada la población inicial, se procede a hacer la búsqueda en el espacio de soluciones, de tal forma que se implementan dos operadores: de cruce y mutación Operadores de búsqueda Cruce El objetivo del cruce es intercambiar información entre dos o más soluciones para crear nuevas individuos que suelen llamárseles soluciones hijas. Existen varias formas de hacer recombinación o cruce, entre ellas están: Cruce basado en un punto, en el cual los dos individuos seleccionados pasan a jugar el papel de padres, son recombinados por medio de la selección de un punto de corte seleccionado aleatoriamente, para posteriormente intercambiar las secciones que se encuentran a la derecha de dicho punto. 184 Jorge Aguilar J.

14 Algoritmos Genéticos Padres Hijos Ilustración 7. Operador de cruce basado en un punto La ventaja de tener más de un punto de cruce radica en que el espacio de búsqueda puede ser explorado más fácilmente, siendo la principal desventaja el hecho de aumentar la probabilidad de ruptura de buenos esquemas. Cruce basado en dos puntos, En el operador de cruce basado en dos puntos, los cromosomas (individuos) pueden contemplarse como un circuito en el cual se efectúa la selección aleatoria de dos puntos. Padres Hijos Ilustración 8. Cruce basado en 2 puntos Desde este punto de vista, el cruce basado en un punto, puede verse como un caso particular del cruce basado en dos puntos, en el cual uno de los puntos de corte se encuentra fijo al comienzo de la ristra que representa al individuo. Cruce Uniforme, en este tipo de cruce, cada gen, en la descendencia se crea copiando el correspondiente gen de uno de los dos padres, escogido de acuerdo a una máscara de cruce generada aleatoriamente. Por ejemplo, una manera de hacerlo es definiendo la máscara de 0 y 1: Cuando existe un l en la máscara de cruce, el gen es copiado del primer padre, mientras que cuando exista un 0 en la máscara de cruce, el gen se copia del segundo padre. En la literatura, el término operador de cruce uniforme se relaciona con la obtención de la máscara de cruce uniforme, en el sentido que cualquiera de los elementos del alfabeto tenga asociada la misma probabilidad. También se puede usar la máscara de cruce (en el cual se detalla la manera de intercambiar la información de los padres) con más de dos padres para obtener un nuevo individuo. En el siguiente ejemplo tenemos la aplicación de una máscara de cruce para generar un nuevo habitante a partir de 3 padres: 185 Jorge Aguilar J.

15 Mascara de cruce Nuevo Habitante Ilustración 9. Cruce basado en un máscara Una vez que se ha cruzado entre varios habitantes, se puede optar por utilizar el concepto de mutación para permitir la flexibilidad del algoritmo en la búsqueda de la solución Mutación La mutación se considera un operador básico, que proporciona un pequeño elemento de aleatoriedad en la vecindad (entorno) de los individuos de la población. Si bien se admite que el operador de cruce es el responsable de efectuar la búsqueda a lo largo del espacio de posibles soluciones, también parece desprenderse de los experimentos efectuados por varios investigadores que el operador de mutación va ganando en importancia a medida que la población de individuos va convergiendo Existen muchas formas de efectuar la mutación Con probabilidad pequeña p m aleatoriamente se altera el contenido de las posiciones en la cadena (cromosoma) Un seguro contra bits perdidos En código binario, con p m cambie 0 a 1 ó 1 a 0 Si bien en la mayoría de las Ilustración 10. Mutación simple implementaciones de Algoritmos Genéticos se asume que tanto la probabilidad de cruce como la de mutación permanecen constantes, algunos autores han obtenido mejores resultados experimentales modificando la probabilidad de mutación a medida que aumenta el número de iteraciones Reducción 186 Jorge Aguilar J.

16 Algoritmos Genéticos Una vez obtenidos los individuos descendientes de una determinada población en el tiempo t, el proceso de reducción al tamaño original, consiste en escoger λ individuos de entre los 2λ individuos que forman parte de la población en el tiempo t, (los λ individuos y los λ descendientes de los primeros). Dicho proceso se suele hacer fundamentalmente de dos formas distintas. Los λ individuos descendientes son los que forman parte de la población en el tiempo t+1, es lo que se denomina reducción simple (generacional). Se escogen de entre los 2λ individuos, los λ individuos más adaptados al problema, siguiendo un criterio de reducción elitista de grado λ; podemos también considerar otros procedimientos de reducción que se colocan entre los anteriores, por ejemplo, si se escoge los (λ 1 ) mejores de entre padres y descendientes, escogiéndose los (λ λ 1 ) restantes de entre los descendientes no seleccionados hasta el momento (no-generacional). Siguiendo con nuestro ejemplo, luego de realizar el cruce a la población graficada en la Ilustración 5, tenemos la siguiente población a la siguiente generación Ilustración 11. Población a la siguiente generación y población a la generación final, para el caso de la última generación, toda la población está concentrada en el mismo punto. 187 Jorge Aguilar J.

17 6% 13% 10% 10% 8% 13% 10% 10% 12% 10% 10% 6% 4% 11% 13% 13% 10% 10% 10% 10% Ilustración 12. Representación de la aptitud proporcional en la generación quinta y la generación final. Al final todos los individuos tienen la misma aptitud porque es la misma solución replicada 10 veces 8.4 Modelo matemático exacto de un A.G. simple El siguiente modelo fue formulado por los matemáticos Michael Vose y Gunar Liepins en Se inicia con una población aleatoria de cadenas binarias de longitud L 2. Se calcula la aptitud f(x) de cada cadena x en la población 3. Se escoge (con reemplazo) dos padres de la población actual con una probabilidad proporcional a la aptitud de cada cadena en la población. 4. Se cruza sobre dos padres (en un punto escogido aleatoreamente) con probabilidad p c, para formar dos hijos (si no ocurre el cruce, los hijos son copias exactas de los padres). Seleccione uno de los hijos aleatoreamente y descarte el otro. 5. Mute cada bit en el hijo seleccionado, con probabilidad p m y coloque este en la nueva población. 6. Vaya al punto 3 hasta que una nueva población se complete. 7. Ir al paso 2 La única diferencia con el modelo estándar de un A.G. simple es que solo uno de los hijos de cada cruce sobrevive. Así, para una población n, un total de n recombinaciones se realizan. En el modelo formal de Vose y Liepins, cada cadena en el espacio de búsqueda es representada por un entero i entre 0 y 2 l 1 codificado por una cadena. Por ejemplo para l = 8, la cadena podría ser representada por el entero 7. La población en la generación t es representada por dos vectores de valores reales p(t) y s(t), cada uno de longitud 2 l. La componente i de p(t) (p i (t)) es la proporción de la población en la generación t consistiendo de la cadena i, y la componente i de s(t) (s i (t)), es la probabilidad que un ejemplo que un ejemplar de la cadena i sea seleccionada a ser un padre en el paso 3 del algoritmo. 188 Jorge Aguilar J.

18 Algoritmos Genéticos Por ejemplo, si l = 2 y la población es: 11, 11, 01 y 10 P(t) = (0, 0.25, 0.25, 0.5) T especifica la composición de la población en la generación t. Si la aptitud es igual al número de unos en la cadena S(t) = (0, 0.166, 0.166, 0.666) T Refleja las probabilidades de selección bajo la función de aptitud. Estas son conectadas vía aptitud: Sea F una matriz 2D tal que Fij = 0 para i j y fii = f(i), es decir Bajo la selección proporcional s = Fp( t) ( t) l 2 1 F j = 0 jj p j (t) Así es fácil encantar s(t). La estrategia de Vose y Liepins es definir un operador simple G tal que aplicando G a s(t), refleje en forma exacta los efectos de correr el A.G. sobre la población a la generación t, para obtener la población t+1 S(t+1) = Gs(t). Entonces iterando G sobre s(0), tendremos una descripción del comportamiento esperado del A.G 8.5 Teorema de Los Esquemas y Marco Teórico Como ya hemos revisado, los AE operan sobre una población de P cadenas, las mismas que son por lo general de longitud fija. Las cadenas son de longitud L y a menudo son referidas como cromosomas con L genes. Cada gen puede tomar uno de los C valores, los mismos que son referidos como aleles. C puede verse como la cardinalidad del alfabeto de las cadenas. De esta forma hay C L cadenas posibles. Por ejemplo para un alfabeto de binarios, una cadena de 4 bits: [* * * *] tiene 2 4 Posibles soluciones, si el alfabeto es de 28 caracteres (ej. Alfabeto español) existen 28 4 Posibles soluciones Esquemas. La base teórica de los algoritmos genéticos se basa en el concepto de esquema. Los Esquemas (Holland, 1975) son plantillas que especifican parcialmente una solución. Representan cadenas que usan un símbolo adicional en el alfabeto, si A es el alfabeto, los esquemas pertenecen al conjunto {A U {*}}. Este símbolo extra (*) representa una localidad indefinida, es decir puede tomar cualquier valor del alfabeto. Por ejemplo consideremos el esquema AB** definido sobre el cromosoma de longitud fija de 4 genes, donde cada gen puede tomar uno de los 28 aleles {A,..., Z}. El símbolo * es definido como no importa qué carácter sea, y el esquema AB** representan los cromosomas que tienen una A como el primer alele y una B como el segundo alele. Ya que el símbolo * puede ser llenado con cualquiera de los 28 aleles, este esquema representa a 28 2 cromosomas. 189 Jorge Aguilar J.

19 Esquema Cadenas: { } 1111 {011110, , , } 0*1*** {001000, , , ,...} Tabla 8. 1 Ejemplos de esquemas Se dice que un cromosoma empareja a un esquema si ellos coinciden en sus posiciones definidas. Por ejemplo. La cadena empareja a la cadena 1******* y a **011***, pero no empareja a *1*11*** ya que difieren en el segundo Esquema H o(h) (H) gen (el segundo definido en el esquema). Visto de otro modo, un esquema describe a un 1******* 1 0 subconjunto de cadenas que comparten caracteres similares en determinadas posiciones: Veamos el **011*** 3 2 siguiente esquema: *1*11*** 3 3 Tabla 8. 2 Orden y longitud definitoria de los esquemas Los hiperplanos son descritos por las ocurre el símbolo *. Un esquema puede ser visto como un hiperplano en un espacio L-1 dimensional representando el conjunto de soluciones con propiedades comunes. posiciones definitorias, di, que indican donde no El número de soluciones que emparejan un esquema H depende de: El orden k (representado por o(h)) es el número de posiciones definidas ( no símbolos *) en el hiperplano, y asi el plano de orden k es designado como H k. Ya que hay k posiciones definidas, estas son niveladas desde d 1 hasta d k Otro concepto necesario es la longitud definitoria del esquema (representado por δ(h)), definido como la distancia entre la última y la primera posición definida en el esquema. Ver tabla 8.2 para ejemplos. Figura 8. 2 Hipercubo de tres dimensiones en el que se muestra un hiperplano (color amarillo) Los AG trabajan por asignación de cadenas al mejor esquema exponencialmente a través de 190 Jorge Aguilar J.

20 Algoritmos Genéticos sucesivas generaciones. Una forma de ver un hiperplano es considerar un espacio 3D. Asumiendo que se tiene un problema de codificar justo con 3 bits, esto puede representarse en un cubo con la cadena 000 en el origen. Las esquinas en este cubo son numeradas por cadenas de bits y todas las esquinas adyacentes numeradas son niveladas por cadenas de bits que difieren exactamente en un bit. En la figura (a) el plano frontal contiene todos los puntos que inician con 0, el esquema que representa a este plano será 0**, mientras que el hiperplano pintado es 1**. Cada esquema corresponde a un hiperplano en el espacio de búsqueda 4. Figura 8. 3 Esquemas 4 dimensional La figura (b) ilustra un espacio 4-dimensional representado por un cubo dentro de otro cubo. Los puntos pueden ser nivelados como sigue. Nivele los dos cubos exactamente como el espacio 3D, luego fije cada nivel del cubo interno con el bit 1 y el cubo de afuera con el bit 0. De esta forma se asigna a los puntos en el hiperespacio a los puntos adyacentes. El cubo interno ahora corresponde al hiperplano 1*** y el de afuera a 0***, es también fácil ver que *0** corresponde a un subconjunto de puntos que corresponden a los frentes de cada cubo. El hiperplano de orden 2, 10** corresponde al frente del cubo interior Teorema de los Esquemas. El teorema del esquema provee la frontera inferior en un cambio en la velocidad de muestreo para un hiperplano simple de la generación t a la generación t+1. Para tener una visión general de lo que ocurre en un hiperplano particular H, definamos los siguientes elementos: m(h, t+1): Número de ejemplares del esquema H en la generación (t+1) 4 En el espacio de búsqueda formado por todas las soluciones, un esquema representa un conjunto de soluciones. 191 Jorge Aguilar J.

21 m(h, t): Número de ejemplares del esquema H en la generación (t) f(h,t) valor medio observado de la función de aptitud para todos los elementos del esquema H, en la generación t. f(t) valor medio observado de la función de aptitud, en la generación t. Pc: taza de cruce. Pm: taza de mutación O(H): orden del esquema δ(h): Longitud definitoria. El mecanismo de selección se relaciona principalmente a este aspecto: Es decir, esquemas que tienen una aptitud sobre el promedio, tienden a crecer, mientras que f ( H ) m( H, t + 1) m( H, t). && f aquellos cuya aptitud es bajo el promedio decrecen. Supongamos que un esquema H, permanece sobre el promedio de aptitud de la población con la cantidad cf. De esta forma la ecuación 1 será: Iniciando al tiempo t=0 y c constante, al tiempo t se tiene: f + cfˆ m ( H, t + 1) = m( H, t). = m( H, t).(1 + c) && f m ( H, t + 1) = m( H, t). (1 + c) t De esta forma, el efecto de la reproducción es hacer crecer (o decrecer) en forma de progresión geométrica los esquemas sobre (o bajo) el promedio de la aptitud de la población. El operador de cruce es el encargado de explorar nuevas combinaciones del espacio de estado con el fin de obtener individuos de mayor aptitud. El cruce se escoge aleatoriamente entre los l-1 sitios posibles, de esta forma, el esquema H se destruye con una probabilidad de: δ ( H ) P d = l 1 Si la operación de cruce se realiza con una probabilidad Pc, la probabilidad de supervivencia (Ps) está definida por la siguiente expresión: δ ( H ) Ps (1 Pc ). l 1 Spears (1998) extiende el análisis para recombinación basado en n-puntos y recombinación uniforme. En ambos casos los resultados indican que los aspectos de rompimiento se ven afectados por la longitud definitoria y el orden k del hiperplano, mientras que para recombinación uniforme Po solo se ve afectada por el orden. Todas las formas de recombinación son de mayor rompimiento para hiperplanos más altos y llegan a ser menores cuando la 192 Jorge Aguilar J.

22 Algoritmos Genéticos población converge. Todas las formas de recombinación de n puntos son poco disruptivas para esquemas cortos, pero para n mayores, son más disruptivos. Para esquemas largos, recombinación de n puntos hace más rompimientos cuando n es par que cuando n es impar. El operador de mutación: Finalmente el trabajo del operador de mutación es introducir un material de genotipo nuevo en la población (esto es especialmente importante cuando la generación procede). Para que el esquema H sobreviva, todas sus posiciones deben sobrevivir. La probabilidad de que una posición sobreviva será (1- P m ) Para que un esquema sobreviva todas y cada una de sus posiciones fijas deben sobrevivir: (1- P m ) o(h) Si P m << 1 (1- P m ) o(h) = 1 P m.o(h) Spears (1998) determina el número esperado de hijos Es [H k,u], que reside en H k después de la mutación, dado que un padre es miembro de H k y el otro padre es arbitrario. Es [H k,u] decrece cunado el orden k del hiperplano se incrementa, mientras que Es [H k,u] incrementa como Peq se incrementa, para valores razonables de u, Interesantemente, incrementar la cardinalidad de C, no decrece Es [H k,u], sino solamente en un grado muy pequeño, sugiriendo que la mutación no es afectada en gran medida por cambios en la cardinalidad. Los resultados también indican que es más probable que los hiperplanos sobrevivan con bajos niveles de mutación, mientras que altos niveles de mutación es más probable que rompa los hiperplanos Spears llega a la conclusión que desde el punto de vista de sobrevivencia. La recombinación no es tan potente como la mutación. La mutación puede conseguir cualquier nivel de sobrevivencia (o rompimiento) que la recombinación pueda lograr. Sin embargo la mutación puede conseguir mayores niveles de rompimiento que la recombinación. Sin embargo, desde un puntos constructivo la recombinación es más potente que la mutación. Así, los peores niveles de construcción para la recombinación son los mismos que los mejores niveles de construcción para la mutación. La recombinación será más útil cuando bloques de construcción de relativamente alto orden (Hm y Hn) pueden combinarse en otros bloques de alto orden (Hk) que son también de aptitud alta. La recombinación será menos útil cuando bloques de construcción de alto orden tienen una aptitud pobre ( la aptitud promedio de todos los individuos dentro del hiperplano) De esta forma, la selección, cruce y mutación definen los esquemas en la generación t+1. f ( H ) δ ( H ) m( H, t + 1) m( H, t). 1 pc. pm. o( H ) && f l 1 [5] Resumiendo: el Teorema fundamental de los A.G dice que los esquemas cortos, de bajo orden 193 Jorge Aguilar J.

23 y cuya aptitud este sobre el promedio de la población tienen descendientes en las futuras generaciones en un número exponencialmente creciente. Esto describe el crecimiento de un esquema de una generación a otra. El t como es propuesto en la ecuación 5 representa la frontera inferior ya que está en función solo del efecto destructivo del cruce y la mutación. Sin embargo el cruce es visto como la mayor fuente de poder en los A.G. con la habilidad de recombinar instancias de buenos esquemas para formar ejemplares de igual o mejor orden (aptitud). Los esquemas de bajo orden y bien definidos que tienen una aptitud sobre el promedio se denominan Bloques de construcción. Los A.G. trabajan descubriendo, enfatizando y re combinando buenos bloques de construcción de soluciones en un modo altamente paralelo. Una cadena de longitud l tiene 2 l esquemas diferentes: Ej. 11 **; 1; 1; 11 Así cualquier población dada de n cadenas contiene ejemplos entre 2 l y n. 2 l esquemas diferentes. Si todos las cadenas son iguales el número de ejemplos es exactamente de 2 l diferentes esquemas, en otro caso es <= n.2 l En la evaluación de una población de orden N en un AG está estimada implícitamente por la aptitud de los N miembros de la población, sin embargo, en forma implícita se estima un número promedio mayor de esquemas por el cálculo implícito de las aptitudes promedias observadas de los esquemas con ejemplos en la población. A esta evaluación implícita simultánea de un gran número de esquemas en la población Holland la llamó paralelismo implícito. La aptitud de esas estimaciones depende, por supuesto de la varianza de aquellos esquemas. 8.6 Ejercicios: 1. Para la función de aptitud definida por: Cuál es la aptitud promedio de los esquemas: 2 si x 111** f ( x) = 1 si x 0** 0 de otra forma a) 1**** R: ½ b) 11*...* R: 1 c) 1*1*...* R: 1 La cadena es de longitud n 2. Cuántos esquemas hay en una partición definida por k bits, en un espacio de búsqueda de m bits. 3. Definiendo la aptitud de una cadena de bits como el número de 1 en la cadena. De una fórmula en términos de la longitud (l) y el número de 1 en la cadena (k) para la aptitud promedio del esquema H que tiene k bits definidos todos en 1: Respuesta (k+l)/2 194 Jorge Aguilar J.

24 Algoritmos Genéticos 4. Defina la aptitud de una cadena de bits con longitud igual a 4, que sea el entero representado por el número binario (Ej. f(1111) = 15 ). Cuál es la aptitud promedio del esquema: 1*** sobre f R: 11.5 y cuál el de 0*** sobre f R: 3.5 Combinaciones: Llene con una expresión matemática los campos a continuación, considere cadenas de longitud L en una población de tamaño M Para un alfabeto binario (ej. K = 2), hay esquemas. Para un alfabeto con K caracteres, hay esquemas. La especificidad (ej., el orden) O(H) de un esquema H puede variar entre y. La longitud definitoria de un esquema H puede variar entre y. Para un alfabeto binario hay individuos (puntos) en un esquema de orden O(H). Para un alfabeto binario, esos puntos pueden ser vistos como un hiperplano de dimensión. Para un alfabeto binario hay de tales hiperplanos de dimensión i, donde i varía entre 0 a L. Para un alfabeto binario (K =2), una cadena de un individuo particular de longitud L es representada en n esquemas Para una cadena de un alfabeto de tamaño K, una cadena de un individuo particular L es representada en esquemas En cuantas formas puede darse una operación de mutación simple en una población de tamaño M de cadenas de longitud L? En cuantas formas puede darse una operación de cruce en una población de tamaño M de cadenas de longitud L? (L) Cuántas poblaciones aleatorias iniciales diferentes hay en una población de tamaño M de cadenas de longitud L con un alfabeto de tamaño M? Cual es el número esperado de ocurrencias de un esquema arbitrario de orden O(H) en la población aleatoria inicial (generación 0) de una corrida de programación genética? Cuantos esquemas, en total, son representados en una población de tamaño M de una cadena de longitud L con un alfabeto de tamaño K? Diferentes clases de cruce: La operación de cruce convencional selecciona uno de L-1 lugares intersticiales entre los L caracteres de un cromosoma como un punto de cruce. Considere una nueva operación de cruce en el cual un subconjunto arbitrario de L posiciones es seleccionada. Los caracteres de la primera cadena binaria se reemplazan por las posiciones de la segunda 195 Jorge Aguilar J.

25 cadena binaria iniciando en un cierto subconjunto seleccionado de L posiciones originales en orden a obtener el primer hijo. El segundo hijo se obtiene en un camino simétrico. El cruce convencional puede darse en L-1 caminos. En cuántos caminos puede darse este nuevo cruce?. Cuál es el número esperado de esquemas (H, t+1) en términos de m(h, t) para esta nuevo operación de cruce? Algunas preguntas Qué es lo que Selecciones repetidas hacen? Qué es lo que el Cruces repetidos hacen? Qué es lo que Mutaciones repetidas hacen? 8.7 Laboratorio - Ejemplo Adaptando un ejemplo presentado por Coello, ilustremos algunos de los conceptos de un AG. Un grupo de financieros ha resuelto invertir 10 millones de dólares en el campo de telecomunicaciones. De esta forma en 4 ciudades del país se decide iniciar una vigorosa campaña comercial: Guayaquil y Cuenca al sur y Quito y Riobamba en el norte y centro del país. A esas 4 ciudades van a corresponder las zonas comerciales I, II, III y IV. Un estudio de mercado ha sido realizado en cada una de las zonas citadas y han sido establecidas curvas de ganancias medias, en millones de pesos, en función de las inversiones totales (almacenes, tiendas de venta, representantes, publicidad, etc.) Estos datos se ilustran en la tabla y figura siguiente Para simplificar los cálculos, supondremos que las asignaciones de créditos o de inversiones deben hacerse por unidades de 1 millón La pregunta es: en dónde se deben de asignar los 10 millones de los que se dispone para que la ganancia total sea máxima? Inversión (en millones) Beneficio I Beneficio II Beneficio III Beneficio IV 196 Jorge Aguilar J.

26 Algoritmos Genéticos Tabla 2. Datos obtenidos con la investigación de mercado en cada una de las regiones en estudio. Representación: Para poder aplicar el algoritmo genético, lo primero que necesitamos determinar es cuál será el esquema a utilizarse para representar las posibles soluciones del problema. En este caso necesitamos 4 bits son necesarios para representar cada inversión por zona (de 0 a 10). Como existen 4 valores independientes (uno por cada zona de estudio), se requieren entonces 16 bits (4 x 4) por cada cromosoma. De tal forma, una cadena representativa de un cromosoma será como se muestra en la figura 5. Es importante hacer notar que se requiere una función de codificación (i.e., que transforme el valor de la inversión a binario) y una de decodificación (i.e., que realice el proceso inverso). Debido a que en este caso los 4 bits utilizados para representar una solución pueden producir más valores de los que se necesitan, se usará una función de ajuste que haga que los resultados producidos siempre se encuentren en el rango válido. 197 Jorge Aguilar J.

27 Ganancia por inversión Ganancia en milones Inversión en millones Zona I Zona II Zona III Zona IV Figura 4. Gráfica de los valores de la Tabla 2. * * * * * * * * * * * * * * * *.. Ilustración 13. Cadena representativa del cromosoma. Las cadenas 1, 2, 3 y 4 corresponden a las cantidades invertidas en las zonas económicas respectivas Función de Aptitud: Dado que el objetivo es obtener las inversiones que sumen 10, y que tengan un beneficio máximo, podemos usar la siguiente función de aptitud penalizada: F ( x) = g1+ g2 + g3 + g4 InversionTotal 10 * donde g1, g2, g3 y g4 son las ganancias por zona, que se calculan de acuerdo a los valores de la tabla 2. Nótese que cuando no se viole ninguna restricción (ejemplo cuando la suma de inversiones sea exactamente 10) la función de aptitud no será penalizada. Operadores: cruce de 2 puntos, con una probabilidad del 80%. En cuanto a la mutación, se le asignará una probabilidad baja, del 1%. Población, 50 cromosomas, y se correrá el algoritmo genético durante 20 generaciones. Resultados: El resultado obtenido en una corrida típica es un beneficio de 1.81 millones de pesos, correspondiente a invertir 4 millones en la zona comercial I, 3 millones en la zona II, 1 millón en la zona III y 2 millones en la zona IV. Esta es la solución óptima. Debe 198 Jorge Aguilar J.

28 Algoritmos Genéticos hacerse notar que, en este caso, si deseáramos analizar inversiones que sumen otra cantidad, y en unidades menores al millón, el algoritmo genético tendría que modificarse de manera mínima, mientras que la programación dinámica requeriría una cantidad tal de trabajo que prácticamente se volvería inoperante. Aunque éste es sólo un sencillo ejemplo del uso del algoritmo genético para resolver problemas de optimización con restricciones, puede alcanzar a percibirse el poder de la técnica en comparación con los métodos tradicionales de búsqueda. Veamos un ejemplo de Javad Ivakpour (2006), que muestra la evolución de un algoritmo genético para encontrar el máximo de una función. Como ejercicio práctico de algoritmos genéticos y computación evolutiva, se va a utilizar las herramientas sobre este tema que ofrece MATLAB. 8.8 Problema de optimización. Matlab implementa un algoritmo genético a través de la función ga, la misma que es optimizada para encontrar el mínimo de una función. La sintaxis de esta función es: x = ga(fitnessfun, nvars) 5 x = ga(fitnessfun, nvars, options) x = ga(problem) [x, fval] = ga(...) [x, fval, reason] = ga(...) [x, fval, reason, output] = ga(...) [x, fval, reason, output, population] = ga(...) [x, fval, reason, output, population, scores] = ga(...) 5 Para mayor información revisar el help de matlab: help ga 199 Jorge Aguilar J.

29 Donde fitnessfcn es la función de aptitud codificada en un archivo.m nvars Es el número de variable indepoendientes para esa función de aptitud Options es una esptructura creada con gaoptimset que permite modificar los diferentes opciones del algoritmo: options = gaoptimset('param1',value1,'param2',value2,...) 6 Para el caso del problema de optimización de la ganancia, pag de los apuntes de clase, se debe escribir la función: function fitness=inversion(solucion) % solucion es una cadena de 16 bits. en la que cada 4 bits representa la % inversión por zona. % por lo tanto el valor de la inversión la obtenemos en las siguientes % lineas. InvZona(1)= bin2dec(num2str(solucion(1:4))); InvZona(2)= bin2dec(num2str(solucion(5:8))); InvZona(3)= bin2dec(num2str(solucion(9:12))); InvZona(4)= bin2dec(num2str(solucion(13:16))); % matyriz de ganacias ganancia = [ ; ; ; ; ; ; ; ; ; ; ; ]; 6 Revisar las diferentes opciones en Matlab: help gaoptimiset 200 Jorge Aguilar J.

30 Algoritmos Genéticos % Definimos la función de aptitud fitness: if InvZona(1)>=11 InvZona(2)>=11 InvZona(3)>=11 InvZona(4)>=11 y=100; else g1=ganancia(invzona(1)+1,1); g2=ganancia(invzona(2)+1,2); g3=ganancia(invzona(3)+1,3); g4=ganancia(invzona(4)+1,4); inversiontotal=invzona(1)+invzona(2)+invzona(3)+invzona(4); fitness=-(g1+g2+g3+g4)/((inversiontotal-10)*100+1); end; Por ejemplo para usar esta función dentro en el contexto de la función ga tenemos: options = gaoptimset('populationtype','bitstring', 'PopInitRange', '[0;1]'); [b, fval] = GA(@inversion,16,options); % Por lo que la inversión por zona es: InvZona(1)= b(4)*1+b(3)*2+b(2)*4+b(1)*8; InvZona(2)= b(8)*1+b(7)*2+b(6)*4+b(5)*8; InvZona(3)= b(12)*1+b(11)*2+b(10)*4+b(9)*8; InvZona(4)= b(16)*1+b(15)*2+b(14)*4+b(13)*8; Trabajo: Para cada tarea descrita a continuación debe repetir el mismo experimento 10 veces y reportar el mejor resultado, la media y desviación estándar del conjunto de corridas. Revisar detalladamente la función gaoptimiset y diseñar un experimento para probar dos caracteristicas en cuanto a: 1. Cruce: CrossoverFraction: 0.5, 0.8, CrossoverFcn seleccione dos opciones a su juicio. 201 Jorge Aguilar J.

31 Comente los resultados 2. Con la mejor opción encontrada del experimento anterior, pruebe las siguientes opciones: Mutación: MutationFcn las dos opciones Selección: SelectionFcn dos opciones a su juicio. Comente los resultados 3. Suponga que ahora puede invertirse cualquier cantidad de dinero, no solamente valores enteros y dispone de la misma tabla de ganancias para inversiones de valores enteros. Cómo procedería para resolver este ejemplo? 202 Jorge Aguilar J.

32 Algoritmos Genéticos 1. Mitchell Melanie (1999) An Introduction to Genetic Algorithms, A Bradford Book The MIT Press, Cambridge, Massachusetts London, England; Fifth printing 2. Coello Coello, Carlos A., La importancia de la representación en los algoritmos Genéticos (Parte I), Soluciones Avanzadas. Tecnologías de Información y Estrategias de Negocios, Año 7, Número 69, pp , 15 de mayo de Coello Coello, Carlos A., La importancia de la representación en los algoritmos Genéticos (Parte II), Soluciones Avanzadas. Tecnologías de Información y Estrategias de Negocios, Año 7, Número 70, pp , 15 de junio de Spears, William M. Crossover or Mutation?, in L. Darrell Whitley, Foundations of Genetic Algorithms 2, Morgan Kaufmann Publishers, San Mateo, California, pp , Jorge Aguilar J.

Algoritmos Genéticos. Introduccion a la Robótica Inteligente

Algoritmos Genéticos. Introduccion a la Robótica Inteligente Algoritmos Genéticos Introduccion a la Robótica Inteligente 7 Marzo 2014 (IRIN) AGs 7/03/2014 1 / 43 Índice 1 Introducción 2 Algoritmos Genéticos 3 Algunos Fundamentos Matemáticos 4 Conclusiones (IRIN)

Más detalles

Aproximación local. Plano tangente. Derivadas parciales.

Aproximación local. Plano tangente. Derivadas parciales. Univ. de Alcalá de Henares Ingeniería de Telecomunicación Cálculo. Segundo parcial. Curso 004-005 Aproximación local. Plano tangente. Derivadas parciales. 1. Plano tangente 1.1. El problema de la aproximación

Más detalles

Introducción a la Computación Evolutiva

Introducción a la Computación Evolutiva Introducción a la Computación Evolutiva Sección de Computación CINVESTAV-IPN Av. IPN No. 2508 Col. San Pedro Zacatenco México, D.F. 07300 email: [email protected] http: //delta.cs.cinvestav.mx/~ccoello

Más detalles

1.1. Introducción y conceptos básicos

1.1. Introducción y conceptos básicos Tema 1 Variables estadísticas Contenido 1.1. Introducción y conceptos básicos.................. 1 1.2. Tipos de variables estadísticas................... 2 1.3. Distribuciones de frecuencias....................

Más detalles

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS EtsiIngenio Inteligencia Artificial 1 Raposo López Alejandro Sánchez Palacios Manuel Resumen dibujo de grafos mediante algoritmos genéticos

Más detalles

Computación Evolutiva - Mutación: Cruza, Inversión y Mutación para Permutaciones

Computación Evolutiva - Mutación: Cruza, Inversión y Mutación para Permutaciones Computación Evolutiva - Mutación: Cruza, Inversión y Mutación para Permutaciones Dr. Gregorio Toscano Pulido Laboratorio de Tecnologías de Información Centro de Investigación y de Estudios Avanzados del

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas. El primer paso en el diseño de una base de datos es la producción del esquema conceptual. Normalmente, se construyen varios esquemas conceptuales, cada uno para representar las distintas visiones que los

Más detalles

Capítulo VI. Diagramas de Entidad Relación

Capítulo VI. Diagramas de Entidad Relación Diagramas de Entidad Relación Diagramas de entidad relación Tabla de contenido 1.- Concepto de entidad... 91 1.1.- Entidad del negocio... 91 1.2.- Atributos y datos... 91 2.- Asociación de entidades...

Más detalles

Tema 2. Espacios Vectoriales. 2.1. Introducción

Tema 2. Espacios Vectoriales. 2.1. Introducción Tema 2 Espacios Vectoriales 2.1. Introducción Estamos habituados en diferentes cursos a trabajar con el concepto de vector. Concretamente sabemos que un vector es un segmento orientado caracterizado por

Más detalles

Unidad Didáctica. Códigos Binarios

Unidad Didáctica. Códigos Binarios Unidad Didáctica Códigos Binarios Programa de Formación Abierta y Flexible Obra colectiva de FONDO FORMACION Coordinación Diseño y maquetación Servicio de Producción Didáctica de FONDO FORMACION (Dirección

Más detalles

CAPITULO 4 JUSTIFICACION DEL ESTUDIO. En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de

CAPITULO 4 JUSTIFICACION DEL ESTUDIO. En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de CAPITULO 4 JUSTIFICACION DEL ESTUDIO En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de estudios previos y los alcances que justifican el presente estudio. 4.1. Justificación.

Más detalles

TEMA 2: Representación de la Información en las computadoras

TEMA 2: Representación de la Información en las computadoras TEMA 2: Representación de la Información en las computadoras Introducción Una computadora es una máquina que procesa información y ejecuta programas. Para que la computadora ejecute un programa, es necesario

Más detalles

Medias Móviles: Señales para invertir en la Bolsa

Medias Móviles: Señales para invertir en la Bolsa www.gacetafinanciera.com Medias Móviles: Señales para invertir en la Bolsa Juan P López..www.futuros.com Las medias móviles continúan siendo una herramienta básica en lo que se refiere a determinar tendencias

Más detalles

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Unidad I Sistemas numéricos 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS.

Más detalles

Módulo 9 Sistema matemático y operaciones binarias

Módulo 9 Sistema matemático y operaciones binarias Módulo 9 Sistema matemático y operaciones binarias OBJETIVO: Identificar los conjuntos de números naturales, enteros, racionales e irracionales; resolver una operación binaria, representar un número racional

Más detalles

by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true

by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true I. FUNDAMENTOS 3. Representación de la información Introducción a la Informática Curso de Acceso a la Universidad

Más detalles

Capitulo V Administración de memoria

Capitulo V Administración de memoria Capitulo V Administración de memoria Introducción. Una de las tareas más importantes y complejas de un sistema operativo es la gestión de memoria. La gestión de memoria implica tratar la memoria principal

Más detalles

1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1

1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 5.1.3 Multiplicación de números enteros. El algoritmo de la multiplicación tal y como se realizaría manualmente con operandos positivos de cuatro bits es el siguiente: 1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0

Más detalles

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse. TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.

Más detalles

La ventana de Microsoft Excel

La ventana de Microsoft Excel Actividad N 1 Conceptos básicos de Planilla de Cálculo La ventana del Microsoft Excel y sus partes. Movimiento del cursor. Tipos de datos. Metodología de trabajo con planillas. La ventana de Microsoft

Más detalles

Sistemas de numeración

Sistemas de numeración Sistemas de numeración Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar datos numéricos. Los sistemas de numeración actuales son sistemas posicionales, que se caracterizan

Más detalles

UNLaM REDES Y SUBREDES DIRECCIONES IP Y CLASES DE REDES:

UNLaM REDES Y SUBREDES DIRECCIONES IP Y CLASES DE REDES: DIRECCIONES IP Y CLASES DE REDES: La dirección IP de un dispositivo, es una dirección de 32 bits escritos en forma de cuatro octetos. Cada posición dentro del octeto representa una potencia de dos diferente.

Más detalles

7. Conclusiones. 7.1 Resultados

7. Conclusiones. 7.1 Resultados 7. Conclusiones Una de las preguntas iniciales de este proyecto fue : Cuál es la importancia de resolver problemas NP-Completos?. Puede concluirse que el PAV como problema NP- Completo permite comprobar

Más detalles

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases. BASES Y DIMENSIÓN Definición: Base. Se llama base de un espacio (o subespacio) vectorial a un sistema generador de dicho espacio o subespacio, que sea a la vez linealmente independiente. β Propiedades

Más detalles

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie.

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie. Adaptación al NPGC Introducción Nexus 620, ya recoge el Nuevo Plan General Contable, que entrará en vigor el 1 de Enero de 2008. Este documento mostrará que debemos hacer a partir de esa fecha, según nuestra

Más detalles

UNIDADES DE ALMACENAMIENTO DE DATOS

UNIDADES DE ALMACENAMIENTO DE DATOS 1.2 MATÉMATICAS DE REDES 1.2.1 REPRESENTACIÓN BINARIA DE DATOS Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS. Los computadores sólo

Más detalles

Eduardo Kido 26-Mayo-2004 ANÁLISIS DE DATOS

Eduardo Kido 26-Mayo-2004 ANÁLISIS DE DATOS ANÁLISIS DE DATOS Hoy día vamos a hablar de algunas medidas de resumen de datos: cómo resumir cuando tenemos una serie de datos numéricos, generalmente en variables intervalares. Cuando nosotros tenemos

Más detalles

Lección 22: Probabilidad (definición clásica)

Lección 22: Probabilidad (definición clásica) LECCIÓN 22 Lección 22: Probabilidad (definición clásica) Empezaremos esta lección haciendo un breve resumen de la lección 2 del libro de primer grado. Los fenómenos determinísticos son aquellos en los

Más detalles

Tema 3. Medidas de tendencia central. 3.1. Introducción. Contenido

Tema 3. Medidas de tendencia central. 3.1. Introducción. Contenido Tema 3 Medidas de tendencia central Contenido 31 Introducción 1 32 Media aritmética 2 33 Media ponderada 3 34 Media geométrica 4 35 Mediana 5 351 Cálculo de la mediana para datos agrupados 5 36 Moda 6

Más detalles

Programación Genética

Programación Genética Programación Genética Programación Genética consiste en la evolución automática de programas usando ideas basadas en la selección natural (Darwin). No sólo se ha utilizado para generar programas, sino

Más detalles

ESTIMACIÓN. puntual y por intervalo

ESTIMACIÓN. puntual y por intervalo ESTIMACIÓN puntual y por intervalo ( ) Podemos conocer el comportamiento del ser humano? Podemos usar la información contenida en la muestra para tratar de adivinar algún aspecto de la población bajo estudio

Más detalles

Colegio Salesiano Don Bosco Academia Reparación Y Soporte Técnico V Bachillerato Autor: Luis Orozco. Subneteo

Colegio Salesiano Don Bosco Academia Reparación Y Soporte Técnico V Bachillerato Autor: Luis Orozco. Subneteo Subneteo La función del Subneteo o Subnetting es dividir una red IP física en subredes lógicas (redes más pequeñas) para que cada una de estas trabajen a nivel envío y recepción de paquetes como una red

Más detalles

Creación y administración de grupos de dominio

Creación y administración de grupos de dominio Creación y administración de grupos de dominio Contenido Descripción general 1 a los grupos de Windows 2000 2 Tipos y ámbitos de los grupos 5 Grupos integrados y predefinidos en un dominio 7 Estrategia

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

Divisibilidad y números primos

Divisibilidad y números primos Divisibilidad y números primos Divisibilidad En muchos problemas es necesario saber si el reparto de varios elementos en diferentes grupos se puede hacer equitativamente, es decir, si el número de elementos

Más detalles

Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina

Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina Datos del autor Nombres y apellido: Germán Andrés Paz Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina Correo electrónico: [email protected] =========0========= Introducción

Más detalles

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente:

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente: Departamento de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Antioquia Arquitectura de Computadores y Laboratorio ISI355 (2011 2) Práctica No. 1 Diseño e implementación de una unidad aritmético

Más detalles

MUESTREO TIPOS DE MUESTREO

MUESTREO TIPOS DE MUESTREO MUESTREO En ocasiones en que no es posible o conveniente realizar un censo (analizar a todos los elementos de una población), se selecciona una muestra, entendiendo por tal una parte representativa de

Más detalles

ARREGLOS DEFINICION GENERAL DE ARREGLO

ARREGLOS DEFINICION GENERAL DE ARREGLO ARREGLOS DEFINICION GENERAL DE ARREGLO Conjunto de cantidades o valores homogéneos, que por su naturaleza se comportan de idéntica forma y deben de ser tratados en forma similar. Se les debe de dar un

Más detalles

Tutorial de Subneteo Clase A, B, C - Ejercicios de Subnetting CCNA 1

Tutorial de Subneteo Clase A, B, C - Ejercicios de Subnetting CCNA 1 Tutorial de Subneteo Clase A, B, C - Ejercicios de Subnetting CCNA 1 La función del Subneteo o Subnetting es dividir una red IP física en subredes lógicas (redes más pequeñas) para que cada una de estas

Más detalles

UNIDAD 1. LOS NÚMEROS ENTEROS.

UNIDAD 1. LOS NÚMEROS ENTEROS. UNIDAD 1. LOS NÚMEROS ENTEROS. Al final deberás haber aprendido... Interpretar y expresar números enteros. Representar números enteros en la recta numérica. Comparar y ordenar números enteros. Realizar

Más detalles

Introducción a los Algoritmos Genéticos. Tomás Arredondo Vidal 17/4/09

Introducción a los Algoritmos Genéticos. Tomás Arredondo Vidal 17/4/09 Introducción a los Algoritmos Genéticos Tomás Arredondo Vidal 17/4/09 Esta charla trata de lo siguiente: Introducción a algunos aspectos de los algoritmos genéticos. Introducción a algunas aplicaciones

Más detalles

TIPOS DE RESTRICCIONES

TIPOS DE RESTRICCIONES RESTRICCIONES: Las restricciones son reglas que determinan la posición relativa de las distintas geometrías existentes en el archivo de trabajo. Para poder aplicarlas con rigor es preciso entender el grado

Más detalles

DESCRIPCIÓN DE LA METODOLOGÍA UTILIZADA EN EL PROGRAMA DE CESTAS REDUCIDAS ÓPTIMAS

DESCRIPCIÓN DE LA METODOLOGÍA UTILIZADA EN EL PROGRAMA DE CESTAS REDUCIDAS ÓPTIMAS DESCRIPCIÓN DE LA METODOLOGÍA UTILIZADA EN EL PROGRAMA DE CESTAS REDUCIDAS ÓPTIMAS Replicar un índice Formar una cartera que replique un índice (o un futuro) como el IBEX 35, no es más que hacerse con

Más detalles

SISTEMAS DE NUMERACIÓN. Sistema decimal

SISTEMAS DE NUMERACIÓN. Sistema decimal SISTEMAS DE NUMERACIÓN Sistema decimal Desde antiguo el Hombre ha ideado sistemas para numerar objetos, algunos sistemas primitivos han llegado hasta nuestros días, tal es el caso de los "números romanos",

Más detalles

Apuntes de Matemática Discreta 9. Funciones

Apuntes de Matemática Discreta 9. Funciones Apuntes de Matemática Discreta 9. Funciones Francisco José González Gutiérrez Cádiz, Octubre de 004 Universidad de Cádiz Departamento de Matemáticas ii Lección 9 Funciones Contenido 9.1 Definiciones y

Más detalles

EJEMPLO DE REPORTE DE LIBERTAD FINANCIERA

EJEMPLO DE REPORTE DE LIBERTAD FINANCIERA EJEMPLO DE REPORTE DE LIBERTAD FINANCIERA 1. Introduccio n El propósito de este reporte es describir de manera detallada un diagnóstico de su habilidad para generar ingresos pasivos, es decir, ingresos

Más detalles

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN I. P. N. ESIME Unidad Culhuacan INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA UNIDAD CULHUACAN INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN LABORATORIO

Más detalles

Análisis y cuantificación del Riesgo

Análisis y cuantificación del Riesgo Análisis y cuantificación del Riesgo 1 Qué es el análisis del Riesgo? 2. Métodos M de Análisis de riesgos 3. Método M de Montecarlo 4. Modelo de Análisis de Riesgos 5. Qué pasos de deben seguir para el

Más detalles

Criterios de Selección de Inversiones: El Valor Actual Neto y sus derivados *.

Criterios de Selección de Inversiones: El Valor Actual Neto y sus derivados *. Criterios de Selección de Inversiones: El Valor Actual Neto y sus derivados *. Uno de los criterios más válidos para la selección de inversiones alternativas es la determinación del Valor Actual Neto (VAN)

Más detalles

Materia: Informática. Nota de Clases Sistemas de Numeración

Materia: Informática. Nota de Clases Sistemas de Numeración Nota de Clases Sistemas de Numeración Conversión Entre Sistemas de Numeración 1. EL SISTEMA DE NUMERACIÓN 1.1. DEFINICIÓN DE UN SISTEMA DE NUMERACIÓN Un sistema de numeración es un conjunto finito de símbolos

Más detalles

Técnicas de valor presente para calcular el valor en uso

Técnicas de valor presente para calcular el valor en uso Normas Internacionales de Información Financiera NIC - NIIF Guía NIC - NIIF NIC 36 Fundación NIC-NIIF Técnicas de valor presente para calcular el valor en uso Este documento proporciona una guía para utilizar

Más detalles

Métodos evolutivos de Optimización. Prof. Cesar de Prada Dpto. Ingeneiria de Sitemas y Automática Universidad de Valladolid

Métodos evolutivos de Optimización. Prof. Cesar de Prada Dpto. Ingeneiria de Sitemas y Automática Universidad de Valladolid Métodos evolutivos de Optimización Prof. Cesar de Prada Dpto. Ingeneiria de Sitemas y Automática Universidad de Valladolid Indice Introducción Método de Montecarlo Algoritmos genéticos Tabú Search Simulated

Más detalles

Covarianza y coeficiente de correlación

Covarianza y coeficiente de correlación Covarianza y coeficiente de correlación Cuando analizábamos las variables unidimensionales considerábamos, entre otras medidas importantes, la media y la varianza. Ahora hemos visto que estas medidas también

Más detalles

Análisis de los datos

Análisis de los datos Universidad Complutense de Madrid CURSOS DE FORMACIÓN EN INFORMÁTICA Análisis de los datos Hojas de cálculo Tema 6 Análisis de los datos Una de las capacidades más interesantes de Excel es la actualización

Más detalles

Cifras significativas e incertidumbre en las mediciones

Cifras significativas e incertidumbre en las mediciones Unidades de medición Cifras significativas e incertidumbre en las mediciones Todas las mediciones constan de una unidad que nos indica lo que fue medido y un número que indica cuántas de esas unidades

Más detalles

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia. DISCOS RAID Raid: redundant array of independent disks, quiere decir conjunto redundante de discos independientes. Es un sistema de almacenamiento de datos que utiliza varias unidades físicas para guardar

Más detalles

SISTEMAS DE NUMERACIÓN. Sistema de numeración decimal: 5 10 2 2 10 1 8 10 0 =528 8 10 3 2 10 2 4 10 1 5 10 0 9 10 1 7 10 2 =8245,97

SISTEMAS DE NUMERACIÓN. Sistema de numeración decimal: 5 10 2 2 10 1 8 10 0 =528 8 10 3 2 10 2 4 10 1 5 10 0 9 10 1 7 10 2 =8245,97 SISTEMAS DE NUMERACIÓN Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar datos numéricos. La norma principal en un sistema de numeración posicional es que un mismo símbolo

Más detalles

Capítulo 9. Archivos de sintaxis

Capítulo 9. Archivos de sintaxis Capítulo 9 Archivos de sintaxis El SPSS permite generar y editar archivos de texto con sintaxis SPSS, es decir, archivos de texto con instrucciones de programación en un lenguaje propio del SPSS. Esta

Más detalles

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar formulas en Microsoft Excel 2010. 1) DEFINICIÓN Una fórmula de Excel es un código especial que introducimos

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer

Más detalles

La estrategia básica para jugar blackjack.

La estrategia básica para jugar blackjack. La estrategia básica para jugar blackjack. Por Carlos Zilzer. Concepto básico: En cada turno, el jugador tiene que seleccionar una de 3 posibles jugadas: Plantarse, Pedir una carta o Doblar la apuesta.

Más detalles

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto

Más detalles

ALGORITMOS GENÉTICOS

ALGORITMOS GENÉTICOS Arranz de la Peña, Jorge Universidad Carlos III [email protected] ALGORITMOS GENÉTICOS Parra Truyol, Antonio Universidad Carlos III [email protected] En este documento se pretende analizar

Más detalles

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007 Enunciado Se desea efectuar el testing funcional de un programa que ejecuta transferencias entre cuentas bancarias. El programa recibe como parámetros la cuenta de origen, la de cuenta de destino y el

Más detalles

Fundación Universitaria San. Direccionamiento IP

Fundación Universitaria San. Direccionamiento IP Fundación Universitaria San S Mateo - Interconectividad II Direccionamiento IP Qué son las direcciones IP? Una dirección IP es un número que identifica de manera lógica y jerárquica a una interfaz de un

Más detalles

Fundamentos de Investigación de Operaciones Investigación de Operaciones 1

Fundamentos de Investigación de Operaciones Investigación de Operaciones 1 Fundamentos de Investigación de Operaciones Investigación de Operaciones 1 1 de agosto de 2003 1. Introducción Cualquier modelo de una situación es una simplificación de la situación real. Por lo tanto,

Más detalles

RIESGO Y RENTABILIDAD DE LA EMPRESA (Riesgo y Rendimiento) Qué es lo que determina el rendimiento requerido de una inversión?

RIESGO Y RENTABILIDAD DE LA EMPRESA (Riesgo y Rendimiento) Qué es lo que determina el rendimiento requerido de una inversión? 1 RIESGO Y RENTABILIDAD DE LA EMPRESA (Riesgo y Rendimiento) Qué es lo que determina el rendimiento requerido de una inversión? La respuesta es sencilla. El rendimiento requerido siempre depende del riesgo

Más detalles

8.1. Introducción... 1. 8.2. Dependencia/independencia estadística... 2. 8.3. Representación gráfica: diagrama de dispersión... 3. 8.4. Regresión...

8.1. Introducción... 1. 8.2. Dependencia/independencia estadística... 2. 8.3. Representación gráfica: diagrama de dispersión... 3. 8.4. Regresión... Tema 8 Análisis de dos variables: dependencia estadística y regresión Contenido 8.1. Introducción............................. 1 8.2. Dependencia/independencia estadística.............. 2 8.3. Representación

Más detalles

Ejercicio de estadística para 3º de la ESO

Ejercicio de estadística para 3º de la ESO Ejercicio de estadística para 3º de la ESO Unibelia La estadística es una disciplina técnica que se apoya en las matemáticas y que tiene como objetivo la interpretación de la realidad de una población

Más detalles

1. SISTEMAS DIGITALES

1. SISTEMAS DIGITALES 1. SISTEMAS DIGITALES DOCENTE: ING. LUIS FELIPE CASTELLANOS CASTELLANOS CORREO ELECTRÓNICO: [email protected] [email protected] PAGINA WEB MAESTROFELIPE.JIMDO.COM 1.1. INTRODUCCIÓN

Más detalles

SÍNTESIS Y PERSPECTIVAS

SÍNTESIS Y PERSPECTIVAS SÍNTESIS Y PERSPECTIVAS Los invitamos a observar, a identificar problemas, pero al mismo tiempo a buscar oportunidades de mejoras en sus empresas. REVISIÓN DE CONCEPTOS. Esta es la última clase del curso.

Más detalles

Tema 2 : Códigos Binarios

Tema 2 : Códigos Binarios Tema 2 : Códigos Binarios Objetivo: Conocer diferentes códigos binarios Conocer algunos códigos de detección y corrección de errores. Códigos alfanuméricos 1 Códigos Binarios A la representación de cifras,

Más detalles

CAPITULO V. SIMULACION DEL SISTEMA 5.1 DISEÑO DEL MODELO

CAPITULO V. SIMULACION DEL SISTEMA 5.1 DISEÑO DEL MODELO CAPITULO V. SIMULACION DEL SISTEMA 5.1 DISEÑO DEL MODELO En base a las variables mencionadas anteriormente se describirán las relaciones que existen entre cada una de ellas, y como se afectan. Dichas variables

Más detalles

Control Estadístico de Procesos

Control Estadístico de Procesos Control Estadístico de Procesos Gráficos de Control Los gráficos de control o cartas de control son una importante herramienta utilizada en control de calidad de procesos. Básicamente, una Carta de Control

Más detalles

Probabilidades y Estadística (Computación) Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Ana M. Bianco y Elena J.

Probabilidades y Estadística (Computación) Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Ana M. Bianco y Elena J. Generación de Números Aleatorios Números elegidos al azar son útiles en diversas aplicaciones, entre las cuáles podemos mencionar: Simulación o métodos de Monte Carlo: se simula un proceso natural en forma

Más detalles

La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. [email protected]

La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. [email protected] Resumen Se dan algunas definiciones básicas relacionadas con la divisibilidad

Más detalles

Estándares para planes de calidad de software. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Agosto Diciembre 2008

Estándares para planes de calidad de software. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Agosto Diciembre 2008 Estándares para planes de calidad de software Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Agosto Diciembre 2008 DIFERENCIA ENTRE PRODUCIR UNA FUNCION Y PRODUCIR UNA FUNCION

Más detalles

Estructuras de Datos y Algoritmos Práctica I - Curso 2012/13

Estructuras de Datos y Algoritmos Práctica I - Curso 2012/13 Estructuras de Datos y Algoritmos Práctica I - Curso 2012/13 Rompiendo el Código Enigma Introducción y objetivos Como un pequeño homenaje a Alan Turing en su año conmemorativo, las prácticas de este curso

Más detalles

TEMA 2. FILOSOFÍA DE LOS GRÁFICOS DE CONTROL. Principios básicos de los gráficos de control. Análisis de patrones.

TEMA 2. FILOSOFÍA DE LOS GRÁFICOS DE CONTROL. Principios básicos de los gráficos de control. Análisis de patrones. TEMA 2. FILOSOFÍA DE LOS GRÁFICOS DE CONTROL. Principios básicos de los gráficos de control. Análisis de patrones. La herramienta que nos indica si el proceso está o no controlado o Estado de Control son

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

CREACIÓN Y OPERABILIDAD DE UNA BASE DE DATOS DE ADN DISTRIBUIDA MEDIANTE EL USO DE UN SISTEMA GRID CREACIÓN DE ÁRBOLES DE SUFIJOS

CREACIÓN Y OPERABILIDAD DE UNA BASE DE DATOS DE ADN DISTRIBUIDA MEDIANTE EL USO DE UN SISTEMA GRID CREACIÓN DE ÁRBOLES DE SUFIJOS CREACIÓN Y OPERABILIDAD DE UNA BASE DE DATOS DE ADN DISTRIBUIDA MEDIANTE EL USO DE UN SISTEMA GRID CREACIÓN DE ÁRBOLES DE SUFIJOS BÚSQUEDA DE PATRONES HABITUALES COMPRESIÓN DE MOLÉCULAS DE ADN ESTUDIOS

Más detalles

Ejercicios de Teoría de Colas

Ejercicios de Teoría de Colas Ejercicios de Teoría de Colas Investigación Operativa Ingeniería Informática, UC3M Curso 08/09 1. Demuestra que en una cola M/M/1 se tiene: L = ρ Solución. L = = = = = ρ np n nρ n (1 ρ) nρ n n=1 ρ n ρ

Más detalles

PROGRAMACIÓN LINEAL. 8.1. Introducción. 8.2. Inecuaciones lineales con 2 variables

PROGRAMACIÓN LINEAL. 8.1. Introducción. 8.2. Inecuaciones lineales con 2 variables Capítulo 8 PROGRAMACIÓN LINEAL 8.1. Introducción La programación lineal es una técnica matemática relativamente reciente (siglo XX), que consiste en una serie de métodos y procedimientos que permiten resolver

Más detalles

Pronósticos. Pronósticos y gráficos Diapositiva 1

Pronósticos. Pronósticos y gráficos Diapositiva 1 Pronósticos Pronósticos Información de base Media móvil Pronóstico lineal - Tendencia Pronóstico no lineal - Crecimiento Suavización exponencial Regresiones mediante líneas de tendencia en gráficos Gráficos:

Más detalles

Los sistemas de numeración se clasifican en: posicionales y no posicionales.

Los sistemas de numeración se clasifican en: posicionales y no posicionales. SISTEMAS NUMERICOS Un sistema numérico es un conjunto de números que se relacionan para expresar la relación existente entre la cantidad y la unidad. Debido a que un número es un símbolo, podemos encontrar

Más detalles

Subespacios vectoriales en R n

Subespacios vectoriales en R n Subespacios vectoriales en R n Víctor Domínguez Octubre 2011 1. Introducción Con estas notas resumimos los conceptos fundamentales del tema 3 que, en pocas palabras, se puede resumir en técnicas de manejo

Más detalles

En la actualidad ASCII es un código de 8 bits, también conocido como ASCII extendido, que aumenta su capacidad con 128 caracteres adicionales

En la actualidad ASCII es un código de 8 bits, también conocido como ASCII extendido, que aumenta su capacidad con 128 caracteres adicionales Definición(1) Sistemas numéricos MIA José Rafael Rojano Cáceres Arquitectura de Computadoras I Un sistema de representación numérica es un sistema de lenguaje que consiste en: un conjunto ordenado de símbolos

Más detalles

Algoritmos Genéticos Y

Algoritmos Genéticos Y Algoritmos Genéticos Y Optimización n Heurística Dr. Adrian Will Grupo de Aplicaciones de Inteligencia Artificial Universidad Nacional de Tucumán [email protected] Algoritmos Genéticos - Operadores

Más detalles

ETS Caminos Santander. Curso 2012. Ejercicios de introducción a la programación.

ETS Caminos Santander. Curso 2012. Ejercicios de introducción a la programación. Ejercicio 1. Saludo. El programa preguntará el nombre al usuario y a continuación le saludará de la siguiente forma "Hola, NOMBRE" donde NOMBRE es el nombre del usuario. Ejercicio 2. Suma. El programa

Más detalles

GANTT, PERT y CPM. Figura 5.3: Carta GANTT 3.

GANTT, PERT y CPM. Figura 5.3: Carta GANTT 3. GANTT, PERT y CPM Características Conseguir una buena programación es un reto, no obstante es razonable y alcanzable. Ella debe tener el compromiso del equipo al completo, para lo cual se recomienda que

Más detalles

ÍNDICE DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ

ÍNDICE DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ ELECTRÓNICA DIGITAL DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ IES TRINIDAD ARROYO DPTO. DE ELECTRÓNICA ÍNDICE ÍNDICE... 1 1. LIMITACIONES DE LOS CONTADORES ASÍNCRONOS... 2 2. CONTADORES SÍNCRONOS...

Más detalles

ANÁLISIS DE DATOS NO NUMERICOS

ANÁLISIS DE DATOS NO NUMERICOS ANÁLISIS DE DATOS NO NUMERICOS ESCALAS DE MEDIDA CATEGORICAS Jorge Galbiati Riesco Los datos categóricos son datos que provienen de resultados de experimentos en que sus resultados se miden en escalas

Más detalles

LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS

LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS ESTRUCTURA DE COMPUTADORES Pag. 8.1 LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS 1. Circuitos de multiplicación La operación de multiplicar es mas compleja que la suma y por tanto se

Más detalles

Redes de Kohonen y la Determinación Genética de las Clases

Redes de Kohonen y la Determinación Genética de las Clases Redes de Kohonen y la Determinación Genética de las Clases Angel Kuri Instituto Tecnológico Autónomo de México Octubre de 2001 Redes Neuronales de Kohonen Las Redes de Kohonen, también llamadas Mapas Auto-Organizados

Más detalles

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO I. SISTEMAS NUMÉRICOS DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO LIC. LEYDY ROXANA ZEPEDA RUIZ SEPTIEMBRE DICIEMBRE 2011 Ocosingo, Chis. 1.1Sistemas numéricos. Los números son los mismos en todos

Más detalles

TPVFÁCIL. Caja Real. Definiciones.

TPVFÁCIL. Caja Real. Definiciones. TPVFÁCIL. Caja Real. TPVFÁCIL incluye desde la versión 3.3.2 la posibilidad de manejar dos cajas, la Caja Real y la Caja normal. La idea es esconder los datos de caja que pueden alcanzar los usuarios no

Más detalles

K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2

K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2 K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2 Historia de revisiones Fecha VersiónDescripción Autor 08/10/2009 1.0 Creación del documento.

Más detalles

Métodos Iterativos para Resolver Sistemas Lineales

Métodos Iterativos para Resolver Sistemas Lineales Métodos Iterativos para Resolver Sistemas Lineales Departamento de Matemáticas, CCIR/ITESM 17 de julio de 2009 Índice 3.1. Introducción............................................... 1 3.2. Objetivos................................................

Más detalles