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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&$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

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

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

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

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

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

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

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

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

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

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1. Partes de un programa en Java A. Ejemplo de un Programa en Java /* class Ejemplo1 { //comienza la clase Ejemplo1. public static void main(string[] args) { // comienza el método main. JFrame miventana;

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

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

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

SIMULACIÓN CAPITULO 3 LECTURA 6.3. SIMULACIÓN Y ANÁLISIS DE MODELOS ESTOCÁSTICOS Azarang M., Garcia E. Mc. Graw Hill. México 3.

SIMULACIÓN CAPITULO 3 LECTURA 6.3. SIMULACIÓN Y ANÁLISIS DE MODELOS ESTOCÁSTICOS Azarang M., Garcia E. Mc. Graw Hill. México 3. LECTURA 6.3 SIMULACIÓN Y ANÁLISIS DE MODELOS ESTOCÁSTICOS Azarang M., Garcia E. Mc. Graw Hill. México CAPITULO 3 SIMULACIÓN 3.1 INTRODUCCIÓN Simulación es el desarrollo de un modelo lógico-matemático de

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

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

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

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

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

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

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

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

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

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

1. Qué tipos de relación hay entre las siguientes clases?

1. Qué tipos de relación hay entre las siguientes clases? Ejercicios Tema 8: Herencia 1. Qué tipos de relación hay entre las siguientes clases? Personal de la Universidad PAS Profesor 1 n Estudiante a) herencia y asociación b) herencia y dependencia c) dependencia

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

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

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

Java: Clases Abstractas e Interfaces

Java: Clases Abstractas e Interfaces Clases abstractas e interfaces Java: Clases Abstractas e Interfaces Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl A nivel conceptual,

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

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

Programación orientada a

Programación orientada a Programación orientada a objetos con Java Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Presentar los conceptos de la programación

Más detalles

4994 Introduction to Programming Microsoft.NET Framework Applications with Microsoft Visual Studio 2005

4994 Introduction to Programming Microsoft.NET Framework Applications with Microsoft Visual Studio 2005 4994 Introduction to Programming Microsoft.NET Framework Applications with Microsoft Visual Studio 2005 Introducción Este curso de cinco días impartido por instructor permite a desarrolladores de nivel

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

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

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

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

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

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

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

Aplicación Java para distribución de código en R

Aplicación Java para distribución de código en R rolgalan@gmail.com Huesca - 24 de noviembre de 2009 Implementación Descripción problema Existen muchos problemas, cuya resolución informática requiere de un enorme tiempo de cómputo. En la actualidad,

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

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

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

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Encapsulamiento: Control de Acceso Clases en Java (1) UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO En Java se organizan las clases en paquetes

Más detalles

4. HERRAMIENTAS ESTADÍSTICAS

4. HERRAMIENTAS ESTADÍSTICAS 4. HERRAMIENTAS ESTADÍSTICAS 4.1 Definiciones La mayor parte de las decisiones se toman en función de la calidad, como en la mayoría de las demás áreas del moderno esfuerzo humano (por ejemplo, en la evaluación

Más detalles

Introducción a los Algoritmos Genéticos

Introducción a los Algoritmos Genéticos Marcos Gestal Pose Depto. Tecnologías de la Información y las Comunicaciones Universidade da Coruña http://sabia.tic.udc.es/ mgestal mgestal@udc.es Índice 1. Introducción 2 2. Orígenes 2 3. Bases Biológicas

Más detalles

Segunda práctica de Programación 2

Segunda práctica de Programación 2 Segunda práctica de Programación 2 La segunda práctica consistirá en el diseño y posterior implementación como proyecto de Netbeans de dos versiones sobre el mismo problema. El tema central de ambas versiones

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

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

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

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

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

Librería de Algoritmos Genéticos para Arquitectura (LAGA)

Librería de Algoritmos Genéticos para Arquitectura (LAGA) Librería de Algoritmos Genéticos para Arquitectura (LAGA) Genetic Algorithms Architectural Library Carlos Ignacio de la Barrera Poblete designemergente.com, Chile - España cidelab@gmail.com Abstract LAGA

Más detalles

UNIDAD DIDÁCTICA: ELECTRÓNICA DIGITAL

UNIDAD DIDÁCTICA: ELECTRÓNICA DIGITAL IES PABLO RUIZ PICASSO EL EJIDO (ALMERÍA) CURSO 2013-2014 UNIDAD DIDÁCTICA: ELECTRÓNICA DIGITAL ÍNDICE 1.- INTRODUCCIÓN A LA ELECTRÓNICA DIGITAL 2.- SISTEMA BINARIO 2.1.- TRANSFORMACIÓN DE BINARIO A DECIMAL

Más detalles

Consejo Superior Universitario. Resolución Nº 024/2011 Acta Nº 474 Fecha: 16/02/2011

Consejo Superior Universitario. Resolución Nº 024/2011 Acta Nº 474 Fecha: 16/02/2011 Resolución Nº 024/2011 Acta Nº 474 Fecha: 16/02/2011 Por la cual se aprueba el Curso de Posgrado de Especialización en Estadística de la Facultad de Filosofía de la Universidad Nacional del Este. Vista:

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

CONCEPTOS BASICOS DEL LENGUAJE JAVA

CONCEPTOS BASICOS DEL LENGUAJE JAVA CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten

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

Java en 2 horas. Rodrigo Santamaría

Java en 2 horas. Rodrigo Santamaría + Java en 2 horas Rodrigo Santamaría + Generalidades 2 Desarrollado por Sun en 1995 Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión

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

ALGORITMICA III Capitulo I ANALISIS DE ALGORITMOS

ALGORITMICA III Capitulo I ANALISIS DE ALGORITMOS Universidad Nacional de San Antonio Abad del Cusco Departamento Académico de Informática ALGORITMICA III Capitulo I ANALISIS DE ALGORITMOS Iván Medrano Valencia ANALISIS DE ALGORITMOS Un algoritmo es un

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

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

Propuesta de una arquitectura para la generación de mutantes de orden superior en WS-BPEL

Propuesta de una arquitectura para la generación de mutantes de orden superior en WS-BPEL Propuesta de una arquitectura para la generación de mutantes de orden superior en WS-BPEL Emma Blanco Muñoz, Antonio García Domínguez, Juan José Domínguez Jiménez, Inmaculada Medina Bulo Escuela Superior

Más detalles

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Tipos de herencia Herencia y niveles de visibilidad Herencia y creación Redefinición de métodos Conversión

Más detalles

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL ELECTRÓNICA DIGITAL La electrónica es la rama de la ciencia que se ocupa del estudio de los circuitos y de sus componentes, que permiten modificar la corriente eléctrica amplificándola, atenuándola, rectificándola

Más detalles

Receta general para resolver problemas de sincronización con semáforos

Receta general para resolver problemas de sincronización con semáforos Receta general para resolver problemas de sincronización con semáforos La primera vez que te enfrentas a la tarea de implementar una solución a un problema de sincronización entre procesos, es normal que

Más detalles

1 HILOS (THREADS) EN JAVA

1 HILOS (THREADS) EN JAVA 1 HILOS (THREADS) EN JAVA 1.1QUÉ ES UN THREAD La Máquina Virtual Java (JVM) es un sistema multihilo. Es decir, es capaz de ejecutar varios hilos de ejecución simultáneamente. La JVM gestiona todos los

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

Esta investigación esta basada y evolucionada de las redes neuronales pero con visión de crear software.

Esta investigación esta basada y evolucionada de las redes neuronales pero con visión de crear software. Introducción Esta es un nuevo planteamiento al paradigma de la computación y la ingeniería del software, Necesitamos planteamientos nuevos en el area de la Inteligencia artificial que ayuden a el trabajo

Más detalles

Ingeniería Energética E-ISSN: 1815-5901 orestes@cipel.ispjae.edu.cu. Instituto Superior Politécnico José Antonio Echeverría. Cuba

Ingeniería Energética E-ISSN: 1815-5901 orestes@cipel.ispjae.edu.cu. Instituto Superior Politécnico José Antonio Echeverría. Cuba Ingeniería Energética E-ISSN: 1815-5901 orestes@cipel.ispjae.edu.cu Instituto Superior Politécnico José Antonio Echeverría Cuba Carvajal- Pérez, Raúl Nicolás Un Algoritmo Genético Especializado en Planeamiento

Más detalles

2. Estructura de un programa en Java

2. Estructura de un programa en Java 24 A. García-Beltrán y J.M. Arranz 2. Estructura de un programa en Java Objetivos: a) Describir la estructura del código fuente de una aplicación Java b) Presentar los conceptos de comentario y de identificador

Más detalles

Modelado y simulación de proyecto

Modelado y simulación de proyecto Modelado y simulación de proyecto El objetivo de este caso es practicarse en las técnicas de Análisis Cuantitativo de Riesgos y de Modelado, para lo cual se utilizará el software @RISK for Project, el

Más detalles

Tema 3. MODELOS. 2.1 Apoyo Informático a la investigación experimental. 2.2 Modelos del cerebro: A. Realistas biológicos.

Tema 3. MODELOS. 2.1 Apoyo Informático a la investigación experimental. 2.2 Modelos del cerebro: A. Realistas biológicos. Tema 3. MODELOS 011 0 01 01 FUNDAMENTOS 1. Modelos computacionales. 2. Computación y Neurociencia. CONTENIDOS 2.1 Apoyo Informático a la investigación experimental. 2.2 Modelos del cerebro: A. Realistas

Más detalles