UTgeNes - Framework para Implementación y Estudio de Algoritmos

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

Download "UTgeNes - Framework para Implementación y Estudio de Algoritmos"

Transcripción

1 UTgeNes - Framework para Implementación y Estudio de Algoritmos Genéticos Abstract UTgeNes es un framework para la implementación y estudio de algoritmos genéticos propuesto para la realización de trabajos prácticos por parte de los estudiantes de la asignatura Inteligencia Artificial. Su principal propósito es brindar una estrategia simple de construcción de soluciones mediante el aprovechamiento del paradigma orientado a objetos y las virtudes del lenguaje Java. Para ello, cuenta con todas las técnicas abordadas en el programa de la asignatura para que los estudiantes puedan comparar las distintas configuraciones y variantes de cada solución propuesta. Palabras Clave Algoritmos Genéticos. Computación Evolutiva. Framework. Inteligencia Artificial. Introducción Los Algoritmos Genéticos (AG) como estrategia para la resolución de problemas computacionales puede ser implementada mediante el uso de varios frameworks actualmente disponibles en lenguaje Java, tales como JGAP [1], EJC [2], EpochX [3] y WatchMaker [4]. Sin embargo, la curva de aprendizaje de cualquiera de estos frameworks ha de ser significativamente empinada para los estudiantes, no sólo por estar documentados e implementados en idioma inglés, sino porque modelar una posible solución requiere conocimiento de lenguaje de bajo nivel y representaciones binarias de las características de los individuos. Aunque la representación de cada característica de los individuos con segmentos de bits es el enfoque clásico propuesto por Holland en [5], esto suele generar complicaciones al momento de implementar la función de aptitud. En este contexto, el framework UTgeNes simplifica la resolución de problemas con algoritmos genéticos, tomando las ventajas del modelado orientado a objetos y las facilidades que brinda Java como lenguaje de programación. De esta forma, los conceptos de abstracción, herencia, polimorfismo, delegación, encapsulamiento y otros derivados de la programación orientada a objetos, son utilizados para que el usuario pueda ocuparse de la representación e implementación del problema a resolver y no en el desarrollo de elementos de bajo nivel. Funcionamiento básico de los Algoritmos Genéticos El esquema básico a alto nivel estudiado durante el curso de la asignatura Inteligencia Artificial plantea la estructura de los AG que se indica en la Figura 1. Figura 1: Diagrama de un algoritmo genético El algoritmo se inicia en la generación de una población de individuos, generalmente con atributos de valores aleatorios. Esta población inicial luego es introducida en el operador de selección para seleccionar o filtrar algunos de sus individuos (generalmente los más aptos según la utilidad de sus características), para acotar la muestra de individuos totales a un conjunto menor. De

2 esta forma, este conjunto está formado generalmente por los individuos más relevantes, la elite, de esa población. Sin embargo, debe tenerse en cuenta que algunos operadores (como es el caso del de Ruleta ) también seleccionan individuos no tan aptos para mantener así un nivel aceptable de diversidad. Los individuos que han sido seleccionados son combinados en una fase posterior, utilizando el operador de cruzamiento. Aquí se intercambian sus atributos para generar nuevos individuos y de esta forma generar nuevas posibles soluciones para el problema a resolver. Más tarde, con los individuos generados en el cruzamiento, se evalúa la posibilidad de que uno de esos individuos modifique alguna de sus características mediante el operador de mutación. Entonces, si la probabilidad de mutación es superior a una prefijada, se altera aleatoriamente alguno de los atributos de un individuo tomado al azar. Finalmente, se decide si el algoritmo debe finalizar su ejecución o continuar con un nuevo ciclo desde la selección de la población con los individuos disponibles luego de mutación. Debe notarse que para cada una de estos operadores, se proponen distintas técnicas que logran alterar el comportamiento del algoritmo para poder obtener mejores individuos soluciones en forma más óptima. Implementación del framework UTgeNes Para la implementación del algoritmo fue necesario diseñar e implementar: 1. Una clase que controle el funcionamiento general del algoritmo genético. 2. Una clase que contenga la configuración inicial definida para el algoritmo. 3. Una clase para definir de forma genérica a los individuos de la población que va a ser sometida al algoritmo junto con su función de aptitud. 4. Una clase para conservar el estado del algoritmo durante toda su ejecución. 5. Clases abstractas para modelar cada uno de los operadores: Selección, Cruzamiento, Mutación y Criterio de Finalización. A continuación se describen las características de cada una de estas clases: 1. Clase AlgoritmoGenetico Esta es la clase fundamental que controla la ejecución de todo el ciclo de resolución del problema y punto de entrada para la utilización del algoritmo. Según su configuración inicial, parametrizada cuando se instancia esta clase, es posible modificar la forma en que las poblaciones de individuos van evolucionar generación tras generación para generar así una población final que cuente con las características más aptas para la resolución del problema. El esquema general de esta clase se puede ver en la figura 2. Figura 2: Diagrama de la clase fundamental ejecutora del algoritmo genético. 2. Clase Configuración Esta clase permite al usuario definir los parámetros generales de configuración que serán utilizados durante la ejecución del algoritmo como son el criterio de paro, tamaño de la población inicial, y los métodos de selección, cruzamiento y mutación a ser utilizados. Para simplificar su uso, el framework cuenta con dos clases concretas que heredan de esta clase y que ya tienen definido parámetros de configuración por defecto. Estas clases son: ConfiguracionDefault: o Criterio de Paro: Cantidad de ciclos, 99 ciclos o Tamaño de la población inicial: 999 individuos o Método de Selección: Torneo o Método de Cruzamiento: Simple o Método de Mutación: Simple, con un 20% de probabilidad constante

3 Configuracion5Min: o Criterio de Paro: Tiempo transcurrido, finaliza en 5 minutos. o Tamaño de la población inicial: 999 individuos o Método de Selección: Torneo o Método de Cruzamiento: Simple o Método de Mutación: Simple, con un 20% de probabilidad constante Ambas configuraciones pueden ser utilizadas para implementarse en las ejecuciones del algoritmo, y a su vez, también pueden ser extendidas según se requiera. 3. Clase Individuo Esta clase es la que encapsula la representación de las posibles soluciones del problema que se desea resolver. Por lo que su definición es esencial para el funcionamiento del framework. Para ello, emula a cada individuo con su respectivo cromosoma (atributos) como solución potencial y la cuenta con métodos que permiten realizar la comparación entre individuos usando su aptitud. Su estructura se muestra en la Figura 5. Figura 3: Diagrama de la clase abstracta Individuo Cabe destacar que el único método que se debe definir es el de aptitud(). Este método cuantificará la medida en que cada individuo resuelve el problema de acuerdo a sus características. 4. Clase Estado Esta clase instancia un objeto que mantiene un estado general del algoritmo. Sus propiedades permiten acceder a las aptitudes promedio de los individuos cuales son los mejores y peores individuos de cada población, entre otras cosas. La razón de su existencia es facilitar el cálculo de los promedios de valores y la obtención de estadísticas históricas del algoritmo durante toda la corrida. Es decir, esta clase puede ser utilizada para visualizar los resultados que se van generando por cada ciclo de ejecución del framework. 5a. Clase Selección Los criterios de selección incluidos en UTgeNes se utilizan para discriminar y descartar a los individuos que no son candidatos a soluciones lo suficientemente buenas. Los individuos seleccionados recibirán una cantidad de copias de acuerdo al criterio de selección y su función de aptitud. Para mantener siempre el mismo tamaño de la población, se toma aleatoriamente a un individuo existente de la población y lo clona o elimina según sea el caso de necesitar más o menos individuos respectivamente. Las posibles instancias de esta clase se corresponden con distintas formas de realizar la selección de individuos. Estas instancias ya incluidos en el framework son: Torneo: Ejecuta la comparación de las funciones de aptitud de cada par de individuos y selecciona al más apto de ese par. Ranking: Selecciona sólo los n individuos más aptos. La cantidad de individuos seleccionados dependerá del parámetro inicial de configuración de esta clase. Una vez seleccionados los individuos, asigna una cantidad de copias de acuerdo a su función de aptitud para que a los mejores le correspondan más copias que a los peores. Ruleta: Asigna a cada individuo un rango de valores de un tamaño porcentual directamente proporcional a la función de aptitud de cada uno y luego de generar un valor aleatorio perteneciente a alguno de esos valores, selecciona al individuo cuyo rango encierre a ese valor. Este proceso se realiza sucesivas veces hasta que logre completar la cantidad requerida de individuos. ControlSobreNumeroEsperado: Calcula el promedio de las aptitudes de los individuos y comparar ese promedio contra cada uno de los individuos. A cada in-

4 dividuo le asigna un porcentaje de copias de acuerdo a la cantidad entera de veces que el valor de la aptitud de ese individuo supere el promedio total de aptitudes. Luego, con el resultado de la resta de esa cantidad entera y el promedio, obtendrá un valor decimal y con este valor, aplicará el método de Ruleta detallado anteriormente. 5b. Clase Cruzamiento Para realizar el intercambio de características de los individuos seleccionados, se pueden utilizar varias técnicas. Como todas estas pueden ser vistas como especializaciones del cruzamiento por máscara doble (la cual utiliza una máscara para determinar las características que son utilizadas de cada padre para generar cada hijo), las otras técnicas internamente invocan al método correspondiente de esta clase como se puede ver en la Figura 4. Figura 4: Diagrama de clases para la implementación del operador de cruzamiento. 5c. Clase Mutación Los mecanismos de mutación implementados en UTgeNes cumplen con el requisito de diversificar las características de los individuos establecido por los algoritmos genéticos. El mecanismo de mutación es el mismo para cualquier tipo de mutación: se genera un nuevo individuo de características aleatorias que se cruza con un individuo existente en la población seleccionado en forma aleatoria. Entonces la diferencia entre los diferentes formas de mutación radica en el cálculo de la probabilidad de mutación para determinar si corresponde mutar o no. Para ello el framework incluye las siguientes posibilidades: MutacionSimple: Permite definir en la configuración inicial una probabilidad que se mantendrá constante a lo largo de toda la corrida del algoritmo. MutacionAdaptativaPorConvergencia: Aumenta la probabilidad de mutación proporcionalmente de acuerdo a la diferencia haya entre la aptitud el mejor y el peor de los individuos. MutacionTemperaturaDescendente: La probabilidad de mutación es inversamente proporcional a la cantidad de ciclos ejecutados por el algoritmo. Entonces, la probabilidad de mutación disminuye con el transcurso del tiempo de ejecución del algoritmo. MutacionTemperaturaAscendente: La probabilidad de mutación es directamente proporcional a la cantidad de ciclos ejecutados por el algoritmo. Entonces, la probabilidad de mutación aumento con el transcurso del tiempo de ejecución del algoritmo. 5d. Clase Criterio de Finalización Los criterios de finalización definidos para en UTgeNes responden a distintos comportamientos validando una condición particular al analizar el estado del algoritmo: AptitudMinima: Evalúa si alguno de los individuos cumple con un valor de función de aptitud igual o mayor a un valor definido. Con esto asegura el cumplimiento de las expectativas mínimas de la solución. AptitudMinimaPromedio: Evalúa si el promedio de los valores de las aptitudes de todos los individuos de la población

5 es igual o mayor a un valor definido. Con esto asegura una población suficientemente buena, en promedio, como para garantizar que la solución será igual o mejor que ese promedio alcanzado. CantidadDeCiclos: Evalúa la cantidad de ciclos ejecutados por el algoritmo y finalizará la ejecución si esa cantidad de ciclos es igual o mayor a una cantidad de ciclos definida inicialmente. TiempoTranscurrido: Evalúa el tiempo transcurrido desde el inicio de la ejecución del algoritmo y lo comparará contra el tiempo inicialmente definido. Si se ha ejecutado el algoritmo durante la cantidad de horas, minutos y segundos definidos, el algoritmo finalizará. Cabe destacar que los criterios de finalización TiempoTranscurrido y Cantidad- DeCiclos, no tienen en cuenta los valores de la población final. Por lo cual, los individuos resultantes puede no ser lo suficientemente apto como se desea. Sin embargo, estos criterios son muy útiles cuando el tiempo de respuesta esperado para la ejecución del algoritmo es crucial en la implementación. Por otro lado, los criterios AptitudMinima y AptitudMinimaPromedio pueden ejecutar durante mucho más tiempo y hasta podrían llegar a provocar que el algoritmo nunca finalice. Teniendo en cuenta estas clases, para construir el algoritmo genético, se arma una red de objetos como se muestra en la Figura 5. El punto de entrada será la instancia de AlgoritmoGenetico que contendrá los operadores asignados a la configuración, el estado interno del algoritmo y los individuos definidos de acuerdo a la implementación requerida. Luego de la ejecución, el resultado final se encontrará en instancias de la clase Individuo. Todas las clases descriptas previamente se encuentran disponibles en [7] para su utilización. Figura 5: Diagrama de clases para la implementación del algoritmo genético. Caso de Estudio Para ilustrar la utilización del framework UTgeNes en la resolución de un problema se lo utilizará el problema descripto en [8] el cual consiste en encontrar el máximo de una función matemática que se indica en la Figura 6. Figura 6: Función del caso de estudio Esta función en el rango [0; 15] se puede representar en la figura 7 donde se puede ver que el máximo valor de la curva se encuentra en el rango (11; 11,5). Figura 7: Gráfica resultante del análisis del caso de estudio

6 Preparación del framework Para resolver este problema, se requiere definir las características de cada individuo y la función de aptitud que evalúe el valor máximo. o Para cada individuo se debe poseer un atributo capaz de tomar cualquier valor real en el rango [0; 15]. Este valor se identificará con la variable x. o La función de aptitud evalúa el valor de la función consigna y destaca a los individuos cuyo valor de retorno de esta función es mayor. Los pasos para generar el código para implementar esta solución son los siguientes: 1. Se extiende la clase Individuo desde la clase X. 2. Se declara un atributo x de tipo Doble. 3. Se define la función de aptitud donde se ejecuta la función a analizar y se retorna el valor resultante. Si el valor del atributo x se encuentra fuera del rango permitido se retorna una valor bajo para que ese individuo sea descartado en la selección. 4. Se declaran los métodos correspondientes para acceder al atributo x. En otras palabras se genera el siguiente código: 1. public class X extends Individuo { 2. private Double x; public double aptitud() { if (this.x < 0 this.x > 15) { return 0; return Math.abs((this.x - 5) / (2 + Math.sin(this.x))); 4. public Double getx() { return x; public void setx(double x) { this.x = x; 5. Luego se crea una nueva instancia de la clase AlgoritmoGenetico con la configuración predefinida indicada por la clase ConfiguracionDefault. 6. Finalmente se ejecutar esa instancia para obtener el individuo solución que más se adapte a las condiciones del problema. public static void main(string[] args) { AlgoritmoGenetico max = new AlgoritmoGenetico(new ConfiguracionDefault(), X.class); 6. Individuo x = max.ejecutar();... Análisis del comportamiento del algoritmo Al ejecutar el algoritmo planteado anteriormente, se extrajeron los resultados de cada ciclo y se calculó la función de aptitud para el mejor y el peor individuo, además de un promedio de los valores de todos los individuos resultantes de la población como se puede ver en la Figura 8. Figura 8: Gráfica resultante de una ejecución particular del caso de estudio. En las celdas resaltadas con color rojo, se puede observar que un muy buen individuo fue generado en la población inicial y se mantuvo a lo largo de 54 iteraciones. Sin embargo, en la iteración 55, se generó un nuevo individuo más apto. Éste último individuo se mantuvo como el mejor de todas las generaciones futuras hasta finalizar la corrida. En la figura del costado se representa mediante curvas el valor de la función de aptitud del mejor individuo de la población en cada iteración (curva superior), el promedio de todos los individuos (curva del medio) y del peor individuo (curva inferior).

7 Para la aptitud del mejor individuo se puede ver existe un salto en la iteración número 55 donde el mejor individuo surge con un nuevo valor en su función de aptitud. Para el promedio de todos los individuos de la población de cada iteración, se ve un crecimiento rápido de esta curva en las primeras iteraciones del algoritmo ya que la población inicial generó muchos individuos no válidos con aptitud cero y el promedio de todas las aptitudes fue relativamente bajo. Luego, al evolucionar la población, el algoritmo fue descartando los individuos poco aptos y generando individuos resultantes con funciones de aptitud bastante similares a la mejor manteniendo este promedio. Finalmente la curva de la aptitud de los peores individuos tiene un comportamiento bastante caótico. Esto se produce por las mutaciones que generan nuevos individuos con función de aptitud de valor cero (cada raíz de esta curva). Cabe destacar que el valor del mejor individuo de toda la corrida del algoritmo, es menos que el esperado, sin embargo, se acerca significativamente. Luego de realizar 10 diferentes ejecuciones del framework con esta configuración, se obtuvieron los siguientes resultados que se indican en la tabla 1. En dicha tabla, se puede observar un porcentaje promedio de un 20% de mutaciones en relación al total de ciclos de cada corrida del algoritmo tal y como lo establece el parámetro de configuración de la mutación, cómo los individuos no válidos se rechazan y cómo los valores de la solución oscilan cerca del valor óptimo buscado. Por otro lado, luego se ha probado resolver este mismo problema aplicando diferentes configuraciones del algoritmo como se puede ver en la tabla 2. Esta tabla contiene los resultados obtenidos para varias corridas del mismo algoritmo utilizando la configuración indicada. Analizando estos resultados, se demuestra que las soluciones obtenidas para cada caso, convergen a un resultado similar y siempre con una aproximación apropiada al resultado óptimo esperado. # Mejor Individuo Valor / Aptitud x = / f(x) = x = / f(x) = x = / f(x) = x = / f(x) = x = / f(x) = x = / f(x) = x = / f(x) = x = / f(x) = x = / f(x) = x = / f(x) = Peor Individuo Valor / Aptitud x = x = x = x = x = x = x = x = x = x = Tabla 1: Resultados de 10 ejecuciones Configuración Selección: Ranking ( 30 ) Cruzamiento: Binomial Azar Mutación: Adaptativa por Convergencia Selección: Ruleta Cruzamiento: Binomial Azar Complemento Mutación: Temperatura Ascendente Selección: Control Sobre Numero Esperado Cruzamiento: Simple Punto Fijo ( Punto=1 ) Mutación: Temperatura Descendente Selección: Ruleta Cruzamiento: Binomial Mascara Complemento ( Mascara="X" ) Mutación: Simple ( 90% ) Mejor Individuo Valor / Aptitud x = / f(x) = x = / f(x) = x = / f(x) = x = / f(x) = Tabla 2: Ejecuciones con distintas configuraciones

8 Discusión de los Resultados Comparando los resultados de las ejecuciones del algoritmo genético se puede afirmar que entre todos los casos este método de resolución de problemas tiene un resultado promedio de 11,11665 y el promedio de valores de la función de aptitud es de 5,7195. El porcentaje de margen de error entre el valor óptimo que se calcula matemáticamente y el valor calculado por el algoritmo genético es menor al 5% por lo cual, se puede concluir que el método de obtención del máximo de esta función es 95% efectivo. De esta manera, queda demostrada, una de las múltiples variantes de utilización del framework para la resolución de problemas y su porcentaje de exactitud con respecto al método óptimo matemático. Conclusión La simplicidad y practicidad de la implementación del problema ejemplo en el código y sus características de orientación a objetos expuestas a lo largo de este documento avalan la utilización de UTgeNes como framework para resolver problemas mediante la técnica de algoritmos genéticos. Se destacan sus características de versatilidad y consistencia para cualquier cambio en la configuración de operadores que se requieran utilizar en cada caso. Además de los operadores y mecanismos propuestos, gracias a la orientación a objetos, UTgeNes puede ser extendido en cualquiera de sus características manteniendo el mismo comportamiento y estabilidad para la resolución de problemas, logrando así, gran flexibilidad y adaptación a las necesidades de cada implementación. Con UTgeNes se logra abstraer al programador de la implementación a bajo nivel del algoritmo genético dejando en sus manos sólo la definición de algunas variantes de configuración necesarias y la implementación de un Individuo focalizándolo en el modelado de las características y función de aptitud que requiere el problema a resolver. Agradecimientos Al a cátedra de Inteligencia Artificial de la UTN- FRBA y a sus profesores por la oportunidad: Mg María Florencia Pollo-Cattaneo, Ing Cinthia Vegega y Mg Pablo Pytel. A Mg Pablo Pytel por sus correciones y guía en el presente trabajo. A la Ingeniera María Cecilia Vallejos por su paciencia y ayuda durante la elaboración del presente trabajo. Referencias [1]. JGAP [2]. ECJ - sistema de investigación EC y GP codificado en Java. [3]. EpochX - framework de algoritmos genéticos. [4]. The Watchmaker - framework de algoritmos genéticos. [5]. Holland, John H. Adaptation in natural and artificial systems: An introductory analysis with applications to biology, control, and artificial intelligence. U Michigan Press, [7]. Juhal, G. F. UTgeNes. https://github.com/gooznt/utgenes [8]. Algoritmos Genéticos Ejemplo. Datos de Contacto Gustavo Francisco Juhal. Universidad Tecnológica Nacional. Facultad Regional de Buenos Aires.

Desarrollo de un sistema capaz de optimizar rutas de entrega utilizando algoritmos genéticos

Desarrollo de un sistema capaz de optimizar rutas de entrega utilizando algoritmos genéticos MT 6 Desarrollo de un sistema capaz de optimizar rutas de entrega utilizando algoritmos genéticos Rosario Baltazar 1 Judith Esquivel Vázquez 2 Andrea Rada 3 Claudia Díaz 4 Resumen Durante los últimos 15

Más detalles

Un algoritmo genético híbrido para resolver el EternityII. Rico, Martin; Ros, Rodrigo Directora: Prof. Dra. Irene Loiseau

Un algoritmo genético híbrido para resolver el EternityII. Rico, Martin; Ros, Rodrigo Directora: Prof. Dra. Irene Loiseau Un algoritmo genético híbrido para resolver el EternityII Rico, Martin; Ros, Rodrigo Directora: Prof. Dra. Irene Loiseau Temas Temas Introducción Eternity II Historia Descripción Demo Metaheurísticas Algoritmos

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: ccoello@cs.cinvestav.mx http: //delta.cs.cinvestav.mx/~ccoello

Más detalles

Algoritmos genéticos como métodos de aproximación analítica y búsqueda de óptimos locales

Algoritmos genéticos como métodos de aproximación analítica y búsqueda de óptimos locales Algoritmos genéticos como métodos de aproximación analítica y búsqueda de óptimos locales Jorge Salas Chacón A03804 Rubén Jiménez Goñi A93212 Juan Camilo Carrillo Casas A91369 Marco Vinicio Artavia Quesada

Más detalles

Introducción a los Algoritmos Genéticos

Introducción a los Algoritmos Genéticos Introducción a los Algoritmos Genéticos Francisco José Ribadas Pena INTELIGENCIA ARTIFICIAL 5 Informática ribadas@uvigo.es 17 de octubre de 2005 c FJRP 2005 ccia IA Métodos de 8 < : 1 Introducción 9 =

Más detalles

Algoritmos Genéticos.

Algoritmos Genéticos. Algoritmos Genéticos. Miguel Cárdenas Montes, Antonio Gómez Iglesias Centro de Investigaciones Energéticas Medioambientales y Tecnológicas, Madrid, Spain miguel.cardenas@ciemat.es 15-19 de Octubre de 2011

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 awill@herrera.unt.edu.ar Algoritmos Genéticos - Operadores

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 awill@herrera.unt.edu.ar Operadores de Mutación El operador

Más detalles

UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS

UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS CURSO: JAVA BASICO PROFESOR: EMERSON CASTAÑEDA SANABRIA TEMA: Programación Orientada a Objetos OBJETIVOS: Familiarizarse con la Programación

Más detalles

FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL PROBLEMA DE PROGRAMACIÓN DE ÓRDENES DE TRABAJO DE UNA EMPRESA DE ARTES GRÁFICAS

FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL PROBLEMA DE PROGRAMACIÓN DE ÓRDENES DE TRABAJO DE UNA EMPRESA DE ARTES GRÁFICAS FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL PROBLEMA DE PROGRAMACIÓN DE ÓRDENES DE TRABAJO DE UNA EMPRESA DE ARTES GRÁFICAS PROYECTO DE GRADO Javier mauricio gamboa salgado Código: 544004 John alexander

Más detalles

Introducción a los Tipos Abstractos de Datos

Introducción a los Tipos Abstractos de Datos Página 1 de 8 Introducción a los Tipos Abstractos de Datos Introducción: Concepto de abstracción Abstracción funcional y abstracción de datos Construcción de tipos abstractos de datos Especificación de

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

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

Programación Orientada a Objetos en Java

Programación Orientada a Objetos en Java Programación Orientada a Objetos en Java Curso 2006-2007 Tema 4 Herencia y Polimorfismo Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Herencia

Más detalles

Prácticas de Programación

Prácticas de Programación Prácticas de Programación Tema 1. Introducción al análisis y diseño de programas Tema 2. Clases y objetos Tema 4. Tratamiento de errores Tema 5. Aspectos avanzados de los tipos de datos Tema 6. Modularidad

Más detalles

ALGORITMOS GENÉTICOS

ALGORITMOS GENÉTICOS Arranz de la Peña, Jorge Universidad Carlos III 100025106@alumnos.uc3m.es ALGORITMOS GENÉTICOS Parra Truyol, Antonio Universidad Carlos III 100023822@alumnos.uc3m.es En este documento se pretende analizar

Más detalles

Búsqueda Local. cbea (LSI-FIB-UPC) Inteligencia Artificial Curso 2011/2012 1 / 33

Búsqueda Local. cbea (LSI-FIB-UPC) Inteligencia Artificial Curso 2011/2012 1 / 33 Introducción Búsqueda Local A veces el camino para llegar a la solución no nos importa, buscamos en el espacio de soluciones Queremos la mejor de entre las soluciones posibles alcanzable en un tiempo razonable

Más detalles

Curso de Java POO: Programación orientada a objetos

Curso de Java POO: Programación orientada a objetos Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos

Más detalles

Basic Object Oriented Programming (BOOP) Gramática del Lenguaje. Ever Mitta Flores

Basic Object Oriented Programming (BOOP) Gramática del Lenguaje. Ever Mitta Flores Ever Mitta Flores Índice 1. Clase @Principal...3 2. Comentarios...3 3. Definición de Atributos...3 4. Definición de Métodos...4 5. Declaración de Variables...4 6. Asignación de Valores...5 7. Definición

Más detalles

Procesamiento Digital de Imágenes. Pablo Roncagliolo B. Nº 22. Algoritmos Genéticos. prb@2007 2

Procesamiento Digital de Imágenes. Pablo Roncagliolo B. Nº 22. Algoritmos Genéticos. prb@2007 2 Procesamiento Digital de Imágenes Pablo Roncagliolo B. Nº 22 prb@2007 2 1 El núcleo de cada célula humana contiene una base de datos química. Esta base de datos contiene todas las instrucciones que la

Más detalles

Procesamiento Digital de Imágenes. Compresión de imágenes

Procesamiento Digital de Imágenes. Compresión de imágenes FICH, UNL - Departamento de Informática - Ingeniería Informática Procesamiento Digital de Imágenes Guía de Trabajos Prácticos 8 Compresión de imágenes 2010 1. Objetivos Analizar las características y el

Más detalles

2.2.- Paradigmas de la POO

2.2.- Paradigmas de la POO 2.2.- Paradigmas de la POO Los principios propios de la orientación a objetos son: 2.2.1.- Abstracción de Datos 2.2.2.- Encapsulamiento 2.2.3.- Ocultamiento 2.2.4.- Herencia 2.2.5.- Polimorfismo Cualquier

Más detalles

&$3Ì78/2 $/*25,7026 (92/87,926 $9$1=$'26 3$5$ 763 6.1. INTRODUCCIÓN

&$3Ì78/2 $/*25,7026 (92/87,926 $9$1=$'26 3$5$ 763 6.1. INTRODUCCIÓN &$3Ì78/2 6.1. INTRODUCCIÓN Los primeros avances para solucionar el TSP, por medio de Algoritmos Evolutivos han sido introducidos por Goldberg y Lingle en [68] y Grefenstette en [72]. En éste área muchos

Más detalles

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2 Objetivos Herencia. Utilización de interfaces y clases abstractas. Índice 1. Interfaces 1 2. Clases abstractas 2 3. Collections Framework 3 3.1. Collection........................................... 3

Más detalles

POLIMORFISMO "una interfaz, múltiples métodos".

POLIMORFISMO una interfaz, múltiples métodos. "una interfaz, múltiples métodos". 20/02/2007 Polimorfismo 2 Indice Definición y caracteristicas Objetivos. SOBRRESCRITURA-SOBRECARGA SOBRECARGA Clases y métodos abstractos INTERFACES (herencia múltiple)

Más detalles

Tema 1. Introducción a los TAD

Tema 1. Introducción a los TAD Tema 1. Introducción a los TAD Objetivos En este tema nos ocupamos inicialmente del concepto de abstracción, dedicando la mayor atención a la abstracción de datos, estudiando aspectos relacionados con

Más detalles

Capítulo 10. Análisis descriptivo: Los procedimientos Frecuencias y Descriptivos

Capítulo 10. Análisis descriptivo: Los procedimientos Frecuencias y Descriptivos Capítulo 10 Análisis descriptivo: Los procedimientos Frecuencias y Descriptivos Al analizar datos, lo primero que conviene hacer con una variable es, generalmente, formarse una idea lo más exacta posible

Más detalles

Clases y Objetos. Informática II Ingeniería Electrónica

Clases y Objetos. Informática II Ingeniería Electrónica Clases y Objetos Informática II Ingeniería Electrónica Los Tipos de Datos Hasta ahora, en un programa podemos usar para representar variables a: Tipos fundamentales : enteros (int), caracteres (char),

Más detalles

SOLUCION PARCIAL TASK SCHEDULER. Task Scheduler

SOLUCION PARCIAL TASK SCHEDULER. Task Scheduler Task Scheduler Se necesita modelar una aplicación que permita definir tareas y ejecutarlas en forma programada. Las tareas pueden ser: La ejecución de programa cualquiera o comando del sistema operativo,

Más detalles

Computación Evolutiva. Inteligencia Computacional Dra. Maricela Bravo

Computación Evolutiva. Inteligencia Computacional Dra. Maricela Bravo Computación Evolutiva Inteligencia Computacional Dra. Maricela Bravo Introducción - Evolución La evolución es un proceso de optimización con el objetivo de mejorar la habilidad de un organismo o sistema

Más detalles

Problemas indecidibles

Problemas indecidibles Capítulo 7 Problemas indecidibles 71 Codificación de máquinas de Turing Toda MT se puede codificar como una secuencia finita de ceros y unos En esta sección presentaremos una codificación válida para todas

Más detalles

Java Inicial (20 horas)

Java Inicial (20 horas) Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción

Más detalles

Programación Orientada a Objetos en Java

Programación Orientada a Objetos en Java Programación Orientada a Objetos en Java Curso 2006-2007 Tema 3 Clases y Objetos Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Clases y

Más detalles

Metodología y Framework para el Desarrollo de Aplicaciones Científicas con Computación de Alto Rendimiento a través de Servicios Web

Metodología y Framework para el Desarrollo de Aplicaciones Científicas con Computación de Alto Rendimiento a través de Servicios Web Metodología y Framework para el Desarrollo de Aplicaciones Científicas con Computación de Alto Rendimiento a través de Servicios Web J.Corral-García, D.Cortés-Polo, C.Gómez-Martín, J.L.González-Sánchez

Más detalles

I.E.S.MEDITERRÁNEO CURSO 2015 2016 DPTO DE MATEMÁTICAS PROGRAMA DE RECUPERACIÓN DE LOS APRENDIZAJES NO ADQUIRIDOS EN MATEMÁTICAS DE 3º DE E.S.O.

I.E.S.MEDITERRÁNEO CURSO 2015 2016 DPTO DE MATEMÁTICAS PROGRAMA DE RECUPERACIÓN DE LOS APRENDIZAJES NO ADQUIRIDOS EN MATEMÁTICAS DE 3º DE E.S.O. PROGRAMA DE RECUPERACIÓN DE LOS APRENDIZAJES NO ADQUIRIDOS EN MATEMÁTICAS DE 3º DE E.S.O. Este programa está destinado a los alumnos que han promocionado a cursos superiores sin haber superado esta materia.

Más detalles

Selección usando Algoritmos

Selección usando Algoritmos Capítulo 3 Selección usando Algoritmos Genéticos 3.1. Introducción En esta sección se aborda el uso de Algoritmos Genéticos (GA del inglés Genetic Algorithms) para selección de características. Así como

Más detalles

Definición de clases: Herencia, polimorfismo, ligadura dinámica

Definición de clases: Herencia, polimorfismo, ligadura dinámica Tema 7 Definición de clases: Herencia, polimorfismo, ligadura dinámica Con alguna frecuencia es necesario definir clases de objetos entre las cuales hay elementos comunes. En una aplicación en la cual

Más detalles

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008 INTRODUCCIÓN Estructura de Datos Tipos Abstractos de Datos (TAD S) Para poder obtener un programa que resuelva un problema dado, son necesarios varios pasos : La formulación y especificación del problema

Más detalles

Arquitectura de Aplicaciones

Arquitectura de Aplicaciones 1 Capítulo 13: Arquitectura de aplicaciones. - Sommerville Contenidos del capítulo 13.1 Sistemas de procesamiento de datos 13.2 Sistemas de procesamiento de transacciones 13.3 Sistemas de procesamiento

Más detalles

Algoritmos Genéticos

Algoritmos Genéticos Introducción a la Computación Evolutiva Tercera Clase: Algoritmos Genéticos Algoritmos Genéticos Desarrollados en USA durante los años 70 Autores principales: J. Holland, K. DeJong, D. Goldberg Aplicados

Más detalles

PATRONES. Experto. Solución:

PATRONES. Experto. Solución: PATRONES. Experto. Asignar una responsabilidad a la clase que tiene la información necesaria para cumplirla. Cuál es el principio fundamental en virtud del cual asignaremos las responsabilidades a los

Más detalles

Algoritmos Genéticos. Algoritmos Genéticos. Introducción a la Computación Evolutiva. Tercera Clase: Algoritmos Genéticos

Algoritmos Genéticos. Algoritmos Genéticos. Introducción a la Computación Evolutiva. Tercera Clase: Algoritmos Genéticos Introducción a la Computación Evolutiva Tercera Clase: Algoritmos Genéticos Algoritmos Genéticos Desarrollados en USA durante los años 70 Autores principales: J. Holland, K. DeJong, D. Goldberg Aplicados

Más detalles

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos 2.1. Principios básicos del Modelado de Objetos UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos Hoy en día muchos de los procesos que intervienen en un negocio o empresa y que resuelven

Más detalles

15. Parámetros o argumentos

15. Parámetros o argumentos Programación orientada a objetos con Java 161 15. Parámetros o argumentos Objetivos: a) Profundizar en el concepto de parámetro de una clase e indicar su mecanismo de funcionamiento. b) Interpretar el

Más detalles

www.bvbusiness-school.com

www.bvbusiness-school.com Gráficos de Control de Shewart www.bvbusiness-school.com GRÁFICOS DE CONTROL DE SHEWART Una de las herramientas estadísticas más importantes en el Control Estadístico de Procesos son los Gráficos de Control.

Más detalles

Técnicas Avanzadas de Testing Automático

Técnicas Avanzadas de Testing Automático Técnicas Avanzadas de Testing Automático Marcelo Frias ITBA - Buenos Aires, Argentina CONICET Preliminares: Calidad Validación y Verificación Especificaciones y V&V Análisis estático y dinámico Inspecciones

Más detalles

Workflow, BPM y Java Resumen de la presentación de Tom Baeyens

Workflow, BPM y Java Resumen de la presentación de Tom Baeyens Workflow, BPM y Java Resumen de la presentación de Tom Baeyens Workflow, BPM y Java Página 1 de 11 1. Introducción Tom Baeyens es el fundador y arquitecto del proyecto de JBoss jbpm, la máquina de workflow

Más detalles

Apuntes de Matemática Discreta 7. Relaciones de Orden

Apuntes de Matemática Discreta 7. Relaciones de Orden Apuntes de Matemática Discreta 7. Relaciones de Orden Francisco José González Gutiérrez Cádiz, Octubre de 2004 Universidad de Cádiz Departamento de Matemáticas ii Lección 7 Relaciones de Orden Contenido

Más detalles

Segmentación Recursiva de Proyectos Software para la Estimación del Esfuerzo de Desarrollo Software

Segmentación Recursiva de Proyectos Software para la Estimación del Esfuerzo de Desarrollo Software Segmentación Recursiva de Proyectos Software para la Estimación del Esfuerzo de Desarrollo Software J. Cuadrado Gallego 1, Miguel Ángel Sicilia 1, Miguel Garre Rubio 1 1 Dpto de Ciencias de la Computación,

Más detalles

Repaso de las características más importantes de la programación Java y su adaptación a Android

Repaso de las características más importantes de la programación Java y su adaptación a Android Repaso de las características más importantes de la programación Java y su adaptación a Android 1. Entorno de programación en java 2. Variables y tipos de datos 3. Operaciones y operadores 4. Clases y

Más detalles

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación.

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación. Unidad II Metodología de Solución de Problemas 2.1 Descripción del problema (enunciado). Este aspecto nos indica describir de manera objetiva la realidad del problema que se esta investigando. En la descripción

Más detalles

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases Programación Avanzada para Sistemas de Telecomunicación Objetos y clases Juan Carlos Cruellas cruellas@ac.upc.es Objetos y clases Concepto de objeto. Concepto de clase. Clases, objetos y programas. Clases

Más detalles

2.1. Introducción al lenguaje Java

2.1. Introducción al lenguaje Java Bloque II. Elementos del lenguaje de programación Java 1.Introducción a los lenguajes de programación 2. Estructura de un programa 3. Datos y expresiones simples 4. Instrucciones de control 5. Entrada/salida

Más detalles

Framework basado en Colonias de Hormigas artificiales para la resolución de problemas de optimización

Framework basado en Colonias de Hormigas artificiales para la resolución de problemas de optimización Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Laboratorio de Inteligencia Artificial Framework basado en Colonias de Hormigas artificiales para la resolución de problemas

Más detalles

Clases abstractas e interfaces

Clases abstractas e interfaces Clases abstractas e interfaces Clases abstractas Una clase abstracta es una clase que no se puede instanciar se usa únicamente para definir subclases Cuándo es una clase abstracta? En cuanto uno de sus

Más detalles

% PRODUCTOS NO CONFORMES 10% 5%

% PRODUCTOS NO CONFORMES 10% 5% Departamento de Ingeniería Mecánica Tecnología Mecánica I 67.15 Unidad 13: Control de Calidad Ing. Sergio Laguzzi 1 TEMARIO - Definición de Calidad. Costos de la no Calidad. Estrategia de detección (Planes

Más detalles

Computación Evolutiva: Técnicas de Selección

Computación Evolutiva: Técnicas de Selección Computación Evolutiva: Técnicas de Selección Dr. Gregorio Toscano Pulido Laboratorio de Tecnologías de Información Centro de Investigación y de Estudios Avanzados del IPN Cinvestav-Tamaulipas Dr. Gregorio

Más detalles

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código Tema 6 Reutilización de código Programación 2015-2016 Programación - Tema 6: Reutilización de código 1 Tema 6. Reutilización de código Modularidad. Implementación de métodos. Uso de métodos. Programación

Más detalles

Capítulo V Operaciones Booleanas

Capítulo V Operaciones Booleanas 85 Capítulo V Operaciones Booleanas 5.1 Introducción Es muy posible que en muchos casos sea necesario comparar dos objetos y determinar cuál es su parte común. Esto implica intersectar los dos objetos

Más detalles

3. CÁLCULOS Y FORMATOS CONDICIONALES

3. CÁLCULOS Y FORMATOS CONDICIONALES colores, tendremos las opciones Mínima y Máxima, con tres campos cada una: Tipo, Valor y Color. Con este formato podemos crear una regla que le asigne un color al menor valor y otro al mayor, y dé a los

Más detalles

Estimación de parámetros, validación de modelos y análisis de sensibilidad

Estimación de parámetros, validación de modelos y análisis de sensibilidad Tema 6 Estimación de parámetros, validación de modelos y análisis de sensibilidad 6.1 Calibración Una vez que se ha identificado el modelo y se ha programado, necesitamos aplicarlo al problema concreto

Más detalles

Curso a distancia: INTRODUCCIÓN AL DISEÑO LÓGICO PROGRAMABLE CON VHDL. Capítulo 3. Codificadores

Curso a distancia: INTRODUCCIÓN AL DISEÑO LÓGICO PROGRAMABLE CON VHDL. Capítulo 3. Codificadores Curso a distancia: INTRODUCCIÓN AL DISEÑO LÓGICO PROGRAMABLE CON VHDL Capítulo 3 Codificadores Codificadores binarios y codificadores de prioridad. Codificadores de 3 a 2 líneas y de 4 a dos líneas. Detector

Más detalles

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos Conceptos ELO329: Diseño y Programación Orientados a Objetos 1 Paradigmas de Programación Historia: Los computadores parten cableados por hardware, Luego se introduce la programación en binario, Se desarrolla

Más detalles

Tema: Patrones de Diseño.

Tema: Patrones de Diseño. Programación II. Guía 13 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Patrones de Diseño. Objetivos Específicos Implementar la aplicación de patrones de diseño como herramientas

Más detalles

Analizar, diseñar, desarrollar e implementar soluciones orientadas a objetos utilizando encapsulamiento, herencia, polimorfismo y archivos.

Analizar, diseñar, desarrollar e implementar soluciones orientadas a objetos utilizando encapsulamiento, herencia, polimorfismo y archivos. Nombre de la asignatura: Programación Orientada a Objetos Créditos: 2-3- 5 Aportación al perfil Desarrollar, implementar y administrar software de sistemas o de aplicación que cumpla con los estándares

Más detalles

Glosario. actividad. 1. (tarea) 2. es un subproceso que no requiere mas descomposición.

Glosario. actividad. 1. (tarea) 2. es un subproceso que no requiere mas descomposición. Glosario Aclaraciones Los conceptos del glosario están ordenados alfabéticamente. Un concepto puede ser un único término como meta o una frase como ambiente de ingeniería de software centrado en procesos.

Más detalles

Estructuras de Control - Diagrama de Flujo

Estructuras de Control - Diagrama de Flujo RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS Ingeniería en Computación Ingeniería en Informática UNIVERSIDAD NACIONAL DE SAN LUIS DEPARTAMENTO DE INFORMÁTICA AÑO 2015 Índice 1. Programación estructurada 2 1.1.

Más detalles

Si el comando Solver no aparece en el menú Herramientas, deberá instalar la macro automática Solver como sigue:

Si el comando Solver no aparece en el menú Herramientas, deberá instalar la macro automática Solver como sigue: El Solver de Excel El Solver se utiliza para determinar el valor máximo o mínimo de una celda modificando otras celdas; por ejemplo, el beneficio máximo que puede generarse modificando los gastos de publicidad.

Más detalles

SISTEMA DE GESTIÓN DE INCIDENCIAS Y REQUERIMIENTOS MESA DE AYUDA SINAT MANUAL DE USUARIO

SISTEMA DE GESTIÓN DE INCIDENCIAS Y REQUERIMIENTOS MESA DE AYUDA SINAT MANUAL DE USUARIO SISTEMA DE GESTIÓN DE INCIDENCIAS Y REQUERIMIENTOS MESA DE AYUDA SINAT MANUAL DE USUARIO 1 Objetivo del Manual Elaborado por: Revisado por: Aprobado por: Fecha: 13/08/2015 Difusión: Información del Manual

Más detalles

Credit scoring. por Dr. Marcelo Dabós, Ph.D. (marcelo.dabos@comunidad.ub.edu.ar)

Credit scoring. por Dr. Marcelo Dabós, Ph.D. (marcelo.dabos@comunidad.ub.edu.ar) Credit scoring por Dr. Marcelo Dabós, Ph.D. (marcelo.dabos@comunidad.ub.edu.ar) En base a que los bancos modernos otorgan tarjetas de crédito y créditos personales o los niegan? Qué límite de crédito le

Más detalles

Framework de Simulación de Planificación de Procesos. por Emmanuel Luján

Framework de Simulación de Planificación de Procesos. por Emmanuel Luján Framework de Simulación de Planificación de Procesos por Emmanuel Luján INFORMACIÓN GENERAL Fecha: Noviembre del 2010 Tema: Framework de Simulación de Planificación Materia: Taller de Tiempo Real para

Más detalles

A L G O R I T M O S E VO L U T I VO S A P L I C A D O S A L A G E N E R AC I Ó N D E H O R A R I O S PA R A C O L E G I O

A L G O R I T M O S E VO L U T I VO S A P L I C A D O S A L A G E N E R AC I Ó N D E H O R A R I O S PA R A C O L E G I O E S C U E L A P O L I T É C N I C A N A C I O N A L F A C U L T A D D E C I E N C I A S D E P A R T A M E N T O D E M A T E M Á T I C A S A L G O R I T M O S E VO L U T I VO S A P L I C A D O S A L A G

Más detalles

Determinación de primas de acuerdo al Apetito de riesgo de la Compañía por medio de simulaciones

Determinación de primas de acuerdo al Apetito de riesgo de la Compañía por medio de simulaciones Determinación de primas de acuerdo al Apetito de riesgo de la Compañía por medio de simulaciones Introducción Las Compañías aseguradoras determinan sus precios basadas en modelos y en información histórica

Más detalles

ECJ GENETIC. A Java-based Evolutionary Computation and Genetic Programming Research System. Néstor Arias (naariasm@unal.edu.co)

ECJ GENETIC. A Java-based Evolutionary Computation and Genetic Programming Research System. Néstor Arias (naariasm@unal.edu.co) ECJ GENETIC A Java-based Evolutionary Computation and Genetic Programming Research System Néstor Arias (naariasm@unal.edu.co) CONTENIDO Qué es ECJ? Características Generales. Características de GP. Proceso

Más detalles

Temario III Algoritmos Combinatorios y Metaheurísticas

Temario III Algoritmos Combinatorios y Metaheurísticas Temario III Algoritmos Combinatorios y Metaheurísticas Verificación y Validación de Software UNCo 1 Contenidos Combinación de Datos de Test Algoritmos Combinatorios Metaheurísticas Búsqueda Tabú Algoritmos

Más detalles

CAPÍTULO 1 Introducción

CAPÍTULO 1 Introducción CAPÍTULO 1 Introducción 1.1 Sistemas basados en conocimiento (Knowledge Based Systems) Los sistemas basados en conocimiento (Knowledge Based Systems. KBS) son aplicaciones que generan soluciones o respuestas

Más detalles

BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS. Dámaso López Aragón

BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS. Dámaso López Aragón BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS Dámaso López Aragón Introducción En la actualidad, la orientación a objetos es una nueva forma de comprender los problemas y modelar el negocio de una empresa,

Más detalles

En la Parte III de este documento se explicará cómo instalar Vmware Player que es una solución diferente a Microsoft.

En la Parte III de este documento se explicará cómo instalar Vmware Player que es una solución diferente a Microsoft. Winisis en Microsoft Virtual PC para 64 bits Parte II Ernesto Spinak 25/07/2011. borrador 2. Introducción Winisis es una aplicación Windows que usa librerías de programación para sistemas de 16 y 32 bits,

Más detalles

1. TEMPORALIZACIÓN POR EVALUACIONES DE LOS CONTENIDOS

1. TEMPORALIZACIÓN POR EVALUACIONES DE LOS CONTENIDOS 1. TEMPORALIZACIÓN POR EVALUACIONES DE LOS CONTENIDOS Primera Evaluación TEMA 1. NÚMEROS REALES Distintos tipos de números. Recta real. Radicales. Logaritmos. Notación científica. Calculadora. TEMA 2.

Más detalles

10550 Programming in Visual Basic with Microsoft Visual Studio 2010

10550 Programming in Visual Basic with Microsoft Visual Studio 2010 10550 Programming in Visual Basic with Microsoft Visual Studio 2010 Introducción Este curso le enseña sintaxis de lenguaje Visual Basic, estructura de programa e implementación al utilizar Microsoft Visual

Más detalles

PROYECTO FIGURAS DIAGRAMA DE FLUJO

PROYECTO FIGURAS DIAGRAMA DE FLUJO FIGURAS JAVA ~ 1 ~ PROYECTO FIGURAS 1. Crear una clase Figura, abstracta 2. Añadirle los métodos vacíos a. CalcularPerimetro() public Devolver double b. Calcular() public Devolver double 3. Crear la clase

Más detalles

AUDITORIA ESPECIFICA SEGURIDAD LOGICA Y FISICA SISTEMAS ORIENTADOS A OBJETOS

AUDITORIA ESPECIFICA SEGURIDAD LOGICA Y FISICA SISTEMAS ORIENTADOS A OBJETOS AUDITORIA ESPECIFICA SEGURIDAD LOGICA Y FISICA SISTEMAS ORIENTADOS A OBJETOS Presentado por: ANDRÉS RINCÓN MORENO 1700412318 JORGE ARMANDO MEDINA MORALES 1700321660 Profesor: Carlos Hernán Gómez. Asignatura:

Más detalles

Capítulo II. Arquitectura del Software

Capítulo II. Arquitectura del Software Capítulo II. Arquitectura del Software Después de un cuidadoso análisis de los objetivos del proyecto, se determinó que la mejor manera de estructurar el sistema era haciendo uso del muy famoso patrón

Más detalles

PROGRAMACION ORIENTADA A OBJETOS CON PHP

PROGRAMACION ORIENTADA A OBJETOS CON PHP PROGRAMACION ORIENTADA A OBJETOS CON PHP COMO SE DEFINE EN PHP La programación orientada a objetos es una metodología de programación avanzada y bastante extendida, en la que los sistemas se modelan creando

Más detalles

Preguntas y respuestas (rebatibles) sobre metodologías de desarrollo de software

Preguntas y respuestas (rebatibles) sobre metodologías de desarrollo de software Preguntas y respuestas (rebatibles) sobre metodologías de desarrollo de software Introducción Este documento recopila las preguntas, opiniones y respuestas que se produjeron en un pequeño curso sobre las

Más detalles

Generador de casos de prueba genético

Generador de casos de prueba genético Generador de casos de prueba genético Álvaro Galán Piñero Ingeniería Técnica en Informática de Sistemas, Universidad de Cádiz 24 de Septiembre 2012 1 / 42 Índice 1 Motivación y contexto 2 Planificación

Más detalles

TEMA 5. MUESTREO PARA LA ACEPTACIÓN.

TEMA 5. MUESTREO PARA LA ACEPTACIÓN. TEMA 5. MUESTREO PARA LA ACEPTACIÓN. Introducción. Planes de muestreo por atributos simple, doble, múltiple y rectificativos Dodge-Romig, Norma militar 1000STD-105D. Pautas a seguir para el cambio de rigor

Más detalles

5.- ANÁLISIS DE RIESGO

5.- ANÁLISIS DE RIESGO 5.- ANÁLISIS DE RIESGO El módulo de Análisis de Riesgo se caracteriza por desarrollar una herramienta formativa para la gestión, que permite al usuario identificar, analizar y cuantificar el riesgo de

Más detalles

www.fundibeq.org En estos casos, la herramienta Gráficos de Control por Variables" no es aplicable.

www.fundibeq.org En estos casos, la herramienta Gráficos de Control por Variables no es aplicable. GRAFICOS DE CONTROL POR ATRIBUTOS 1.- INTRODUCCIÓN Este documento describe la secuencia de construcción y las pautas de utilización de una de las herramientas para el control de procesos, los Gráficos

Más detalles

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Introducción FACULTAD DE INGENIERÍA. Ordenación

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Introducción FACULTAD DE INGENIERÍA. Ordenación Introducción Uno de los procedimientos más comunes y útiles en el procesamiento de datos, es la clasificación u ordenación de los mismos. Se considera ordenar al proceso de reorganizar un conjunto dado

Más detalles

PENDIENTES DE MATEMÁTICAS DE 2º ESO (CURSO 2014-2015)

PENDIENTES DE MATEMÁTICAS DE 2º ESO (CURSO 2014-2015) PENDIENTES DE MATEMÁTICAS DE 2º ESO (CURSO 2014-2015) CRITERIOS E INDICADORES Se detallan a continuación los criterios de evaluación junto con sus indicadores de contenidos asociados. En negrita se indican

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

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

ATLAS MANUAL DE USUARIO SERVICIO DE AUDITORIA

ATLAS MANUAL DE USUARIO SERVICIO DE AUDITORIA ATLAS MANUAL DE USUARIO SERVICIO DE AUDITORIA Versión 1.3 Área de Aplicaciones Especiales y Arquitectura de Software Hoja de Control Título Documento de Referencia Responsable Manual de Usuario Servicio

Más detalles

Objetivo de aprendizaje del tema

Objetivo de aprendizaje del tema Computación II Tema 3. Identificadores, palabras clave y tipos de datos Objetivo de aprendizaje del tema Al finalizar el tema serás capaz de: Distinguir i entre modificadores d válidos y no válidos. Enumerar

Más detalles

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J. Sensor de Temperatura utilizando el Starter Kit Javelin Stamp Realizado por: Bertha Palomeque A. Rodrigo Barzola J. INTRODUCCION DIFERENCIAS EJEMPLOS JAVA Orientado a Objetos Multiplataforma Programar

Más detalles

Primer Parcial de Programación 3 (1/10/2009)

Primer Parcial de Programación 3 (1/10/2009) Primer Parcial de Programación (/0/009) Instituto de Computación, Facultad de Ingeniería Este parcial dura horas y contiene carillas. El total de puntos es 0. En los enunciados llamamos C* a la extensión

Más detalles

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 Introducción Java es un lenguaje basado en la programación orientada a objetos (POO), este tipo de programación va más allá del tipo de programación

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

Guía del agente de pruebas de Cúram

Guía del agente de pruebas de Cúram IBM Cúram Social Program Management Guía del agente de pruebas de Cúram Versión 6.0.5 IBM Cúram Social Program Management Guía del agente de pruebas de Cúram Versión 6.0.5 Nota Antes de utilizar esta

Más detalles