SERVIDOR DE SOLUCIONES DE ALGORITMOS GENÉTICOS PARA OPTIMIZACIÓN DISTRIBUIDA.

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

Download "SERVIDOR DE SOLUCIONES DE ALGORITMOS GENÉTICOS PARA OPTIMIZACIÓN DISTRIBUIDA."

Transcripción

1 UNIVERSIDAD 1970 UNIVERSIDAD METROPOLITANA Facultad de Ingeniería Escuela de Ingeniería de Sistemas METROPOLITANA SERVIDOR DE SOLUCIONES DE ALGORITMOS GENÉTICOS PARA OPTIMIZACIÓN DISTRIBUIDA. Castro Vielma, Juan Carlos Samaniego Revilla, Christian Tutor: Ing. Victor Theoktisto Caracas, Marzo de 2001

2 UNIVERSIDAD METROPOLITANA Facultad de Ingeniería Escuela de Ingeniería de Sistemas SERVIDOR DE SOLUCIONES DE ALGORITMOS GENÉTICOS PARA OPTIMIZACIÓN DISTRIBUIDA. Castro Vielma, Juan Carlos Samaniego Revilla, Christian Tutor: Ing. Victor Theoktisto Caracas, Marzo de 2001

3 Derecho de Autor Cedemos a la Universidad Metropolitana el derecho de reproducir y difundir el presente trabajo, con las únicas limitaciones que establece la legislación vigente en materia de derecho de autor. En la ciudad de Caracas, a los... días del mes de... de 2001 Castro Vielma, Juan Carlos Samaniego Revilla, Christian

4 APROBACIÓN Considero que el Trabajo de Grado titulado SERVIDOR DE SOLUCIONES DE ALGORITMOS GENÉTICOS PARA OPTIMIZACIÓN DISTRIBUIDA. elaborado por los ciudadanos CASTRO VIELMA, JUAN CARLOS SAMANIEGO REVILLA, CHRISTIAN para optar por el título de Ingeniero de Sistemas Reúne los requisitos exigidos por la Escuela de Ingeniería de Sistemas de la Universidad Metropolitana, y tiene méritos suficientes para ser sometido a la presentación y evaluación exhaustiva por parte del jurado examinador que se designe. En la ciudad de Caracas, a los... días del mes... de 2001 Ing. Victor Theoktisto

5 Acta de Veredicto Nosotros, los abajo firmantes, constituidos como jurado examinador y reunidos en Caracas, el día, con el propósito de evaluar el Trabajo de Grado titulado SERVIDOR DE SOLUCIONES DE ALGORITMOS GENÉTICOS PARA OPTIMIZACIÓN DISTRIBUIDA. presentado por los ciudadanos CASTRO VIELMA, JUAN CARLOS SAMANIEGO REVILLA, CHRISTIAN para optar por el título de Ingeniero de Sistemas Emitimos el siguiente veredicto: Reprobado Aprobado Notable Sobresaliente Sobresaliente con mención honorífica Observaciones: Prof. Bonell Martinez Prof. Yudith Cardinale Ing. Victor Theoktisto

6 AGRADECIMIENTOS El presente trabajo no podría haberse llevado a cabo sin el apoyo moral de muchas personas, queremos agradecer a todos nuestros amigos, familiares y personas cercanas, que de una manera han estado en contacto con este trabajo. Principalmente a nuestros padres Graciela, Fernando, Sonia y Sixto por darnos la buena formación y la oportunidad de llegar a realizar esta meta en común. Estamos enormemente agradecidos al profesor Victor Theoktisto, quien desde un principio nos ha guiado a lo largo de la tesis, dándonos ideas y entusiasmándonos cada vez más en el proyecto. Por último, queremos agradecer la presencia de Dios, que nos ha acompañado en todo momento a nosotros y a todas las personas antes mencionadas y permitido completar este objetivo.

7 TABLA DE CONTENIDO LISTA DE TABLAS Y FIGURAS...4 RESUMEN...5 INTRODUCCIÓN...6 CAPITULO I MARCO TEORICO ALGORITMOS GENÉTICOS Definición Clasificación Ventajas y Desventajas Componentes Cromosoma Población Función Funciones de Penalidad Operadores Ordenador Ranking Selección Cruce Mutación Muerte Migración Algoritmos de Números Aleatorios Poblaciones en Paralelo Modelo de Islas Algoritmo Comparación con otras técnicas de búsqueda Por qué Funcionan? Teorema de Esquemas Hipótesis de la Construcción en Bloques APLICACIONES DISTRIBUIDAS Objetos Distribuidos Cliente/Servidor CORBA Interface Definition Language (IDL) Object Management Architecture (OMA) Object Request Broker (ORB)

8 CORBAServices (Servicios de CORBA) CORBAFacilities (Facilidades de CORBA) TECNOLOGÍAS UTILIZADAS Java Servlets Java Server Pages (JSP) Extensible Markup Language (XML)...59 CAPITULO II MARCO DE DESARROLLO MARCO METODOLOGICO Unified Modelling Language (UML) Diagrama de Clases patrones HERRAMIENTAS Jdbc JacORB Resin Postgresql Apache Jdk1.3 documents CONSIDERACIONES Ejecución de objetos distribuidos en red Algoritmos Genéticos en Paralelo DISEÑO DESARROLLO Arquitectura de Servicio de Ejecución de Objetos CORBA en la Red Servidor de Instancias de Objetos CORBA Servidor de Objetos Distribuidos Arquitectura de Servicios de Algoritmos Genéticos en Paralelo Cromosoma Población Variable Función Objetivo Operadores Servicio de Algoritmos Genéticos Población Total Registrador de Eventos Almacenamiento de Modelos Administración de métodos de operadores...95 CAPITULO III RESULTADOS

9 3.1 MODELOS DE PRUEBAS Modelo Modelo Modelo PROTOTIPO CONCLUSIONES RECOMENDACIONES BIBLIOGRAFÍA APÉNDICE A APÉNDICE B

10 LISTA DE TABLAS Y FIGURAS FIGURA 1. TÉCNICAS DE BÚSQUEDA...12 TABLA 1. CODIFICACIÓN GRAY...16 TABLA 2. SELECCIÓN POR RULETA...21 FIGURA 2. RULETA DE SELECCIÓN...22 FIGURA 3. CRUCE UNIFORME...23 FIGURA 4. CRUCE PARCIAL...23 FIGURA 5. MUTACIÓN...24 FIGURA 6. MODELO DE ISLAS...27 FIGURA 7. PARALELISMOS IMPLÍCITO...32 FIGURA 8. MODELO CLIENTE / SERVIDOR EN TRES PARTES...35 FIGURA 9. ESTRUCTURA DEL IIOP [LNC]...39 FIGURA 10. ESTRUCTURA DEL IDL FIGURA 11. ESTRUCTURA DE LA OMA...41 FIGURA 12. ESTRUCTURA DE ORB...42 FIGURA 13. POLÍTICAS DEL POA...45 FIGURA 14. SUBCONJUNTOS DE LENGUAJES DE DESARROLLO WEB FIGURA 15. REPRESENTACIÓN DE CLASE, ATRIBUTOS Y OPERACIONES [UML1998]...65 FIGURA 16. DIAGRAMA DE CLASES DE LA ARQUITECTURA DE EJECUCIÓN DE INSTANCIAS EN RED FIGURA 17. DIAGRAMA ENTIDAD RELACIÓN DEL MODELO DE LA BASE DE DATOS...74 FIGURA 18. DIAGRAMA DE CLASES DE LA ARQUITECTURA SSAGOD FIGURA 19. FASES DE DESARROLLO...77 FIGURA 20. ESCENARIO DE LA ARQUITECTURA DE EJECUCIÓN DE OBJETOS CORBA EN LA RED...80 FIGURA 21. PROCESO DE LOS OPERADORES...84 FIGURA 22. ESQUEMA GENERAL DE UN SERVICIO DE ALGORITMO GENÉTICO FIGURA 23. ESQUEMA DE EVOLUCIÓN EN UN SERVICIO DE ALGORITMO GENÉTICO FIGURA 24. SECUENCIA DE OPERADORES PROPUESTA PARA LA EVOLUCIÓN FIGURA 25. DIAGRAMA DE SECUENCIA DE EVOLUCIÓN GLOBAL FIGURA 27. DIAGRAMA DE SECUENCIA DE MIGRACIÓN DE CROMOSOMAS FIGURA 28. IMPLEMENTACIÓN DEL MODELO 1 DE PRUEBA FIGURA 29. IMPLEMENTACIÓN DEL MODELO 2 DE PRUEBA FIGURA 30. IMPLEMENTACIÓN DEL MODELO 3 DE PRUEBA FIGURA 31. APLICACIÓN CLIENTE DE SSAGOD FIGURA 32. VISTA COMPLETA DE LA HERRAMIENTA CLIENTE FIGURA 33. EJEMPLO DE LOS RESULTADOS DE UN MODELO FIGURA 34. CONTROL DE PROPIEDADES DE LAS POBLACIONES FIGURA 35. CONTROL DE INGRESO DE OPERADORES

11 RESUMEN SERVIDOR DE SOLUCIONES DE ALGORITMOS GENÉTICOS PARA OPTIMIZACIÓN DISTRIBUIDA. Autores: Juan Carlos Castro Vielma Caracas, marzo de 2001 Christian Samaniego Revilla Tutor: Ing. Victor Theoktisto El acelerado desarrollo tecnológico en las redes de comput adoras conjuntamente con nuevas plataformas de desarrollo, ha sido uno de los principales impulsadores para el desarrollo de aplicaciones distribuidas. Los algoritmos genéticos en paralelo han revolucionado el mundo de la optimización; por lo general hacen gran uso de recursos computacionales, por eso se integró esta teoría en una aplicación distribuida que pueda enriquecerse con el uso de máquinas de una red conocida. La aplicación desarrollada tiene como finalidad brindar un servicio público en la red para resolver determinados problemas de optimización a través de métodos de algoritmos genéticos en un ambiente distribuido, el cual fue desarrollado bajo la normativa CORBA. Así mismo, de acuerdo a los conceptos de algoritmos genéticos se pueden configurar y variar todos sus componentes para resolver problemas específicos. Para lograr el producto se estudio y utilizó muchas tecnologías finalizando en la integración de las mismas con la teoría de Algoritmos Genéticos en Paralelo. Como resultado de la integración de las tecnologías se creó una arquitectura que distribuye la ejecución de objetos CORBA de la aplicación distribuida en diferentes partes de una red conocida. 5

12 INTRODUCCIÓN En los últimos años se ha incrementado el uso de algoritmos genéticos tanto en las investigaciones científicas como en problemas en la vida real, la razón fundamental se debe al elevado recurso computacional que brinda la tecnología de hoy en día. La computación distribuida impulsó a retomar los antiguos paradigmas de MainFrame en el desarrollo de nuevos productos de aplicaciones distribuidas, pero su uso en la actualidad amerita un adecuado estudio para integrar las tecnologías del mercado. La integración de la teoría de algoritmos genéticos con el paradigma de aplicaciones distribuidas intenta crear un producto que preste un servicio público para solucionar problemas de optimización desde una red a donde se tenga acceso. La elección de las adecuadas tecnologías es un papel importante al tratar de realizar aplicaciones distribuidas porque de eso dependerá su alcance y limitaciones. Por lo general éstas deben brindar un modelo Cliente / servidor, así mismo la portabilidad a determinadas plataformas de sistemas operativos. La integración Java / CORBA ha sido una de los candidatos más resaltantes porque logran el producto final. El proyecto está dividido en tres capítulos. El primer capítulo define un marco de referencia o marco teórico, el cual suministra los conceptos utilizados para el desarrollo del proyecto. El siguiente capítulo describe conceptualmente el producto desarrollado, explicando su funcionamiento y cómo se implementaron. Para finalizar se tiene el capítulo de resultados en el cual se presentan algunos modelos de optimización para la prueba de la herramienta. Adicionalmente se tienen las conclusiones y recomendaciones en las cuales se resalta las características principales, debilidades y mejoras que se pueden hacer a esta herramienta. 6

13 CAPITULO I MARCO TEORICO En este capítulo se plantean los fundamentos teóricos de los elementos que intervienen en el funcionamiento del servidor de soluciones de algoritmos genéticos. En primer lugar se explica la estructura y funcionamiento de los algoritmos genéticos. A continuación se describen las aplicaciones y objetos distribuidos y el modelo Cliente / servidor. Seguidamente se explica qué es CORBA, quienes son sus creadores y los elementos que componen su estructura. Por último, se muestran las tecnologías usadas en el desarrollo de este proyecto. 7

14 8

15 CAPITULO I Marco Teórico 1.1 ALGORITMOS GENÉTICOS Comprender los complejos mecanismos por los cuales los seres vivos hemos alcanzado nuestra forma actual, ha sido una de las tareas más ambiciosas del hombre y sin lugar a duda el trabajo realizado hace años por el naturalista inglés Charles Darwin constituye una de las contribuciones más importantes. Darwin presentó su controversial "Teoría de la Evolución Natural" ante la Sociedad Linnean de Londres, revolucionando las ciencias biológicas y cambiando incluso la filosofía del pensamiento de los seres humanos. Actualmente el paradigma Neo-Darwinista de la evolución sostiene que el mecanismo evolutivo de las especies e individuos está sustentado en cuatro procesos principales: reproducción, mutación, competencia y selección, todos frecuentemente resumidos en la frase "sobrevivencia del más apto y fuerte [Darwin1958]. Computación evolutiva fue el término que se le denominó a la aplicación de la teoría de evolución natural en equipos computacionales y con esto se plantearon los algoritmos evolutivos. No tardó mucho tiempo para compararla y asociarla a un proceso de optimización, por lo que las investigaciones fueron cada vez más aceleradas justificando su aplicación en muchos problemas. La teoría en la cual se los Algoritmos Genéticos fue propuesta por John Holland en su hito celebre: la Adaptación en Sistemas Naturales y Artificiales [Holland1975]. Junto con la teoría de AG desarrolló el concepto de Sistema Clasificador como una técnica de aprendizaje de máquina. El AG es particularmente conveniente para la solución de problemas complejos de optimización y por consiguiente es utilizado para aplicaciones que requieren problemas de adaptación. Desde su 9

16 CAPITULO I Marco Teórico creación hasta el momento la teoría de Algoritmos genéticos ha evolucionado considerablemente. Su utilización está justificada en diferentes problemas del mundo real, aunque su principal trabajo se centra en los problemas de optimización. En el presente trabajo se presentan soluciones para cierta gama de problemas de optimización lineal y no lineal haciendo uso de estos mecanismos, en tal sentido la documentación evaluada para diseñar el algoritmo genético se basa en los elementos necesarios como son la población, los operadores, la función objetivo y la codificación. Los AG s utilizan métodos aleatorios y heurísticos, sujetos a unas variables que pueden favorecer o empeorar la convergencia del algoritmo a la solución. Para el uso adecuado de estas variables se describen las mejores heurísticas que han sido utilizadas y evaluadas en investigaciones pasadas DEFINICIÓN Es un algoritmo matemático altamente paralelo que transforma un conjunto de objetos matemáticos individuales con respecto al tiempo, usando operaciones modeladas de acuerdo al principio de reproducción y supervivencia del más apto, tras haberse presentado de forma natural una serie de operaciones genéticas de las que destaca la recombinación sexual. Cada uno de estos objetos matemáticos suele ser una cadena de caracteres (letras o números) de longitud fija que se ajusta al modelo de las cadenas de cromosomas, y se les asocia con una cierta función matemática que refleja su aptitud [Koza1992]. 10

17 CAPITULO I Marco Teórico CLASIFICACIÓN Dentro del conjunto de técnicas de búsqueda los AG s son unas de las clases más importantes. Las técnicas de búsqueda en general se ilustran en la figura 1. y se agrupan en tres categorías: basados en cálculos, enumerativos y guiados aleatoriamente [Goldberg1989]. Las técnicas basadas en cálculos usan un conjunto suficiente y necesario de condiciones para satisface r la solución óptima del problema. Estas se dividen en métodos indirectos y directos. Los indirectos consiguen extremos locales resolviendo un conjunto no lineal de ecuaciones por medio del gradiente de la función objetivo igualándola a cero. Los métodos indirectos como Newton y Fibonacci buscan extremos manteniéndose alrededor de un espacio y guiándose por la dirección del gradiente. Las enumerativas buscan todos los puntos relativos al espacio de dominio de la función objetivo, un punto en cada tiempo. Son muy simples de implementar pero quizás requieran costo computacional. Los métodos guiados aleatoriamente se basan en parte en las enumerativas, pero adicionalmente usan información para guiar la búsqueda. Están clasificados en métodos de simulación sucesivas y algoritmos evolutivos. Los algoritmos evolutivos por otro lado, están basados en los principios de selección natural. De esta manera la búsqueda se envuelve a través de varias generaciones promoviendo la figura de soluciones potenciales por medio de operadores inspirados en los significados biológicos naturales. La técnica de algoritmos evolutivos se divide en estrategias de evolución y algoritmos genéticos. Las estrategias de evolución presentan cualidades para la adaptación de procesos de evolución artificial. Los Algoritmos genéticos proponen muchas variaciones de 11

18 CAPITULO I Marco Teórico los algoritmos básicos, operan como modelos computacionales que emulan la evolución biológica. En términos de computación, el AG traza un problema por un conjunto de representación de cromosomas donde cada uno posee una solución potencial, variando y alterando el conjunto en diferentes etapas. Las operaciones generales que realiza el AG son creación de una población cromosomas, para asignarle su solución potencial, seleccionar los mejores cromosomas y realizar manipulaciones genéticas para generar una nueva población. Figura 1. Técnicas de Búsqueda VENTAJAS Y DESVENTAJ AS No necesitan conocimientos específicos sobre el problema que intentan resolver para guiar la búsqueda. Operan de forma simultánea con varias soluciones, en vez de trabajar de forma secuencial como las técnicas tradicionales. Cuando se usan para problemas de optimización minimizar y maximizar una función objetivo resulta menos afectada por los mínimos y máximos locales. Resulta sumamente fácil ejecutarlos en las modernas arquitecturas masivas en paralelo. Usan operadores probabilísticos en vez de los típicos operadores determinísticos de las otras técnicas. 12

19 CAPITULO I Marco Teórico Pueden tardar mucho en converger o no converger en absoluto, dependiendo en cierta medida de los parámetros que se utilicen como tamaño de la población, número de generaciones, probabilidades asignadas y algoritmos de número aleatorios. Pueden converger prematuramente COMPONENTES El AG puede verse como una caja negra que internamente contiene una serie de elementos y procesos, en general, se necesitan cinco componentes básicos para implementar un AG que resuelva un problema cualquiera: Una representación de soluciones potenciales a los problema. Una forma de crear una población inicial de soluciones. Una función de evaluación que juega el papel de ambiente, calificando las soluciones producidas en términos de su aptitud. Operadores genéticos que alteran la composición de los descendientes. Valores para los diversos parámetros utilizados por el AG, tamaño de la población, probabilidad de cruzar, mutar, migrar si se utiliza el esquema de múltiples poblaciones y número de generaciones CROMOSOMA La representación de los cromosomas juega un papel muy importante, puesto que delimitará el dominio del problema. La codificación define como va estar formado el cromosoma, de qué alfabeto estará compuesto cada gen, qué tipo de representaciones numéricas simbolizará enteros o reales. Es posible representar todo tipo de sistema de numeración entera, pero no siempre toda representación será la correcta para solucionar 13

20 CAPITULO I Marco Teórico un problema en específico. La codificación se realiza tomando en cuenta: Alfabeto o alelo, es la especificación de símbolos que puede representar el gen en un cromosoma. Si se quiere representar una numeración decimal entonces los alelos podrán ser un elemento del conjunto {0, 1, 2, 3, 4, 5, 6, 7, 8, 9. En general estaría compuesta por un número n donde el alfabeto sería el intervalo de 0 hasta n-1. El tamaño de la cadena, representa combinaciones de alelos. La fórmula que aproximadamente determina el tamaño de la cadena del cromosoma es la parte entera de LogB (LimiteSuperior)+1; donde B es la base de representación numérica y LimiteSuperior es el tamaño más grande que se puede aceptar. La codificación tradicional utilizada para representar un conjunto de soluciones es el esquema binario en el cual un cromosoma es una cadena de la forma (b 1, b 2,..., b m ) donde el conjunto de alelos sean 0 o 1. Hay varias razones por las cuales suele usarse la codificación binaria en los AGs, todas ellas fueron justificadas en el trabajo pionero de Holland [Holland1975]. Él comparó dos representaciones diferentes que tuvieran la misma capacidad de acarreo de información, una tenía pocos alelos y cadena largas (cadenas binarias de 80 bits) y la otra tenía un número elevado de alelos (cadenas decimales de longitud 24) donde Sus argumentos fueron los siguientes: Utilizar pocos alelos y una mayor longitud da pie a un grado más elevado de paralelismo implícito porque permite más esquemas. El uso de cadenas cortas y más cantidad de alelos reduce el número de esquemas. 14

21 CAPITULO I Marco Teórico Estas premisas se deben a que el cálculo de los esquemas se realiza (c+1) l, donde c es la cardinalidad del alfabeto y l es la longitud de la cadena. Las siguientes codificaciones investigadas utilizan un conjunto de alelos binarios. De esta manera el cromosoma se representa de la siguiente manera: b n b n-1... b 2 b 1 b 0 Donde B i {0,1 Para el caso particular de la representación de los números enteros se tomaría el primer dígito binario de la izquierda para el signo. Luego el número sería: = n 1 ( ) ( ) N bn 1 b 1 2 b 2 2 b 3 2 b 4 2 bn 1 Un problema que fue notado desde los inicios de la investigación de AG fue el uso de la representación binaria no mapeo adecuadamente el espacio de búsqueda. Por ejemplo, si codificamos 5 y 6 en binario los cuales están adyacentes en el espacio de búsqueda sus equivalentes en binario son 101 y el 110, los cuales difieren en dos bits. A este fenómeno se le denomina El Risco Hamming [Caruana1988], y ha conducido a los investigadores a proponer una representación alternativa en la que la propiedad de adyacencia existente en el espacio de búsqueda pueda preservarse en la representación. La codificación de Gray [Heitkoetter1994] es parte de una familia de representaciones que caen en esta categoría [Whitley1998]. Es una codificación isomórfica a la binaria donde cada valor difiere en un solo bit con respecto de sus vecinos izquierdo y derecho. 2 15

22 CAPITULO I Marco Teórico Todo número binario se puede convertir en una codificación Gray operando XOR a sus bits consecutivos de derecha a izquierda. Por ejemplo, dado el número 0101 en binario ( indica XOR) 0 1=1, 0 1=1, 1 0=1 y el último bit de la izquierda permanece igual. Produciendo 0111, el cual es un código de Gray equivalente. La tabla 1 describe el proceso de transformación de los primeros 7 números empezando de 1. Número Binario Gray Tabla 1. Codificación Gray Para la codificación de números reales, se utiliza dos esquemas generales, el primero es una extensión de la codificación de enteros y la segunda utilizando el estándar de la IEEE para precisión simple. La extensión de la codificación de números enteros define: i i 1 i 2 ( i 2) ( i 1) i ( ) ( ) N 1b n = bn 1 2 bn 2 2 bn 3 2 b3 2 b2 2 b1 2, con i 0 El estándar IEEE describe el siguiente esquema: Signo Exponente Mantisa bit 8 bits 23 bits ( 1+ Mantisa) 2 Signo Exponente N = 1, donde Exponente tiene una representación de complemento a dos y Mantisa representa un número menor en el rango de 0 a 1 [Patterson1995]. 16

23 CAPITULO I Marco Teórico Ambas representaciones tienen sus ventajas y desventajas, en el caso de la primera no realiza grandes saltos, pero sí tiene mayor probabilidad de navegar por localidades cercanas a un entorno. La otra realiza saltos extremadamente grandes evitando llegar a soluciones cercanas POBLACIÓN Define un conjunto de cromosomas que surtirán modificaciones esenciales en cada etapa o iteración del algoritmo. Esta población en principio es generada arbitrariamente al iniciar la corrida del AG. Habitualmente la población inicial se escoge generando cromosomas al azar. Para lograr ésto se debe utilizar un generador aleatorio de cromosomas. Es importante resaltar que se debe mantener al inicio la mayor diversidad de cromosoma en cuanto a su valor significativo, ya que puede acelerar la convergencia. Una cuestión que uno puede plantearse es el tamaño idóneo de la población. Parece intuitivo que las poblaciones pequeñas corren el riesgo de no cubrir adecuadamente el espacio de búsqueda, mientras las poblaciones de gran tamaño pueden acarrear problemas relacionados con el excesivo costo computacional. El promedio utilizado, por lo general, para problemas sencillos es entre 20 y 30, y para el caso de los más difíciles se utiliza entre 150 a 200 individuos [Alander1992] FUNCIÓN Está dada por la representación del modelo matemático donde se realizará la búsqueda de soluciones. Su trabajo es esencial ya que asigna la solución o aptitud que describe un cromosoma. 17

24 CAPITULO I Marco Teórico Puesto que los AG s trabajan con una sola función objetivo sin restricciones se utilizan métodos que reduzcan un modelo con restricciones a una sola función. Los métodos usualmente utilizados se llaman funciones de penalidad FUNCIONES S DE PENALIDAD Son muy utilizadas para resolver modelos de optimización con restricciones, su objetivo es introducir las restricciones en la función objetivo penalizándolas con unos valores enormes, de tal forma que afecten en sentido contrario a la soluci ón y en el límite de las restricciones activas su valor se reduce a cero [Goldberg1989]. Proceso de transformación de restricciones: Dado el siguiente modelo f con n restricciones G i f (x) G 1( x) 0 G 2( x) 0 : ( x) 0 Gn Se unen todas las restricciones a una función de penalización P n = r h k = 1 k ( G k ( x)) Donde r es una constante muy grande. Si se está maximizando hk 0 y si es minimización 0. Luego el modelo quedaría reducido a f ( x) + P. hk Una posible función, se tiene hk 2 ( y) = y si se está minimizando y hk 2 ( y) = y si se está maximizando. 18

25 CAPITULO I Marco Teórico OPERADORES Son procesos que modifican el entorno y atributos de la población en una evolución dada, siguiendo los patrones de evolución biológica natural. El conjunto de operadores que afectan una evolución se clasifican de dos formas: como filtros y otros como mapeo. Los filtros definen cambios en la población, éstos pueden ser selección, cruce, muerte y migración si se maneja un esquema de múltiples poblaciones. Los de mapeo varían directamente atributos del cromosoma como pueden ser la aptitud de la función, la codificación por medio de la mutación, aptitudes de ranking y ordenamientos por aptitud en la población. Usualmente sirven de soporte a los operadores de filtro ORDENADOR Clasifica los cromosomas de una población de acuerdo a la aptitud asignada por la función objetivo. Actúan por lo general antes de fijar la probabilidad de selección de cada cromosoma. Existen situaciones generales donde la elección del algoritmo de ordenamiento puede empeorar o acelerar el tiempo de ejecución. Usualmente cuando se inicia la corrida, la población generada aleatoriamente está casi totalmente desordenada y el método de ordenamiento QuickSort trabaja mucho más rápido en este tipo de escenario, donde su orden de crecimiento está dado por ο ( nlog( n)) y en otro escenario es ο ( n 2 ) [AHO1988]. Para el caso donde se encuentre un desorden ligero es recomendable utilizar el algoritmo HeapSort cuyo orden de crecimiento en el peor de los caos es ο ( nlog( n)). En contraste con QuickSort, no tiene el mismo desempeño en ambientes de sumo desorden [AHO1988]. 19

26 CAPITULO I Marco Teórico RANKING Asigna una aptitud probabilística a cada cromosoma proporcional al orden de mejor aptitud. La probabilidad de ranking de un cromosoma representa un indicador de peso que determina un porcentaje de poder ser seleccionado en el momento de la reproducción. La manera usual de asignar esta probabilidad es utilizando la aptitud de la función objetivo de la siguiente forma, dado L el número total de cromosomas en la población y 1 i L, en donde p i es la probabilidad de ranking del cromosoma i, se tiene: p i = L f j= 1 i f j, donde p = 1. L i= 1 i Una característica adicional que debe brindar la función para utilizar este método es que el rango sea mayor que 0. Otra forma general es utilizando una función de rango lineal que asigne probabilidades fijas según el ordenamiento de la población por aptitud[theoktisto1995]. Se asigna a cada rango j la probabilidad proporcional de selección de acuerdo a la siguiente función: ( L j + 1) ( L + 1) 2 L p i =, donde p i = 1 L i= SELECCIÓN Determina cuáles de los individuos de una población formarán parte de la siguiente generación de cromosomas. Los métodos más utilizados son la ruleta de la fortuna y torneo. El primer método es muy simple y consiste en crear una ruleta en la que cada cromosoma tiene asignada una fracción proporcional a su aptitud, seguidamente la rueda se gira para determinar los 20

27 CAPITULO I Marco Teórico seleccionados (ver figura 2 y tabla 2). Los individuos que tengan mayor aptitud tendrán mayor probabilidad de ser seleccionados prevaleciendo como siempre la supervivencia de los más aptos [Goldberg1989]. El método de torneo procede barajando la población y seguidamente se hace competir a los cromosomas que la integran en grupos de tamaño definido en un torneo del que resultarán ganadores aquellos que tengan mayor aptitud [Coello1995]. Normalmente el tamaño del grupo en el que compiten es de dos o en parejas y el número de veces que se debe barajar debe ser dos veces. Para el caso general de grupos de n competidores se debe barajar n veces la población. El proceso general consistiría en generar un número aleatorio entre 0 y 1, luego ubicar el cromosoma con mayor probabilidad de selección que sea menor o igual al número aleatorio. Este proceso se repite tantas veces como la cantidad de cromosomas que se quiere elegir. N Cromosoma Aptitud % de Selección Total Tabla 2. Selección por Ruleta 21

28 CAPITULO I Marco Teórico CRUCE Figura 2. Ruleta de selección Es aplicado luego de la selección y recibe dos cromosomas padres para cruzar y producir nuevos hijos. Los dos operadores de cruce generales son el uniforme y el parcial. El primero es utilizado por el algoritmo genético simple o canónico, el segundo se obtiene por intercambio parcial de ciertos genes. El cruce uniforme se implementa mediante operaciones de bit sobre las cadenas de cromosomas y una máscara del cruce (W) generada para k puntos aleatorios de cruce. Esta máscara es particular al tipo de cruce realizado, puesto que si es el cruce simple k=1 [Goldberg1989] y si es uniforme [Syswerda1989] k varía en función de 1 al número de alelos menos uno que contiene un cromosoma. Es posible que el operador genere más de dos hijos en función de los padres, esto se realiza variando la máscara de cruce y repitiendo el proceso (ver figura 3). Para ejemplificar mejor se tiene lo siguiente: sea C1 y C2 cromosomas padres obtenidos por un operador de selección, W la 22

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

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. 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

2.1 Compuertas para Bases de Datos

2.1 Compuertas para Bases de Datos 1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto Uno de los aspectos mas importantes en un sistema multibase de datos es la forma en como llevar a cabo la comunicación

Más detalles

SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA. 3.1. Características

SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA. 3.1. Características SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA 3.1. Características La tendencia hacia el futuro es el de lograr la integración total de componentes realizados por terceras partes, para lo cual es necesario

Más detalles

Capítulo 1. Componentes de CORBA.

Capítulo 1. Componentes de CORBA. Capítulo 1. Componentes de CORBA. La OMA (Object Management Architecture) define en alto nivel de abstracción las reglas necesarias para la distribución de la computación orientada a objetos (OO) en entornos

Más detalles

UTgeNes - Framework para Implementación y Estudio de Algoritmos

UTgeNes - Framework para Implementación y Estudio de Algoritmos 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

Más detalles

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

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado 1. Introducción Unified Modeling Languaje Fuente: Booch- Jacobson-Rumbauch y diversos sitios Internet, entre otros:

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. 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

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

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

Tecnología de objetos distribuidos y arquitectura de componentes. Índice. Bibliografía. Introducción. Tema V

Tecnología de objetos distribuidos y arquitectura de componentes. Índice. Bibliografía. Introducción. Tema V Bibliografía Tema V Tecnología de objetos distribuidos y arquitectura de componentes. Szyperski, C. 1998. Component Software. Addison-Wesley. Ruiz Cortés, 1998. A. CORBA: Una visión general. http://www.lsi.us.es/~aruiz

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.

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

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

TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA

TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA II. Objetos distribuidos y CORBA 1. Objetos Distribuidos 2. CORBA 1. Características 2. Modelo de trabajo 3. ORB 4. Arquitectura

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

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

Diseño del Sistema de Información

Diseño del Sistema de Información Diseño del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 2 ACTIVIDAD DSI 1: DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA... 7 Tarea DSI 1.1: Definición de Niveles de Arquitectura... 9 Tarea DSI

Más detalles

Diseño del Sistema de Información

Diseño del Sistema de Información Diseño del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS...2 ACTIVIDAD DSI 1: DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA...7 Tarea DSI 1.1: Definición de Niveles de Arquitectura...9 Tarea DSI 1.2:

Más detalles

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA PROGRAMACIÓN DIDACTICA ANUAL Parte específica del módulo: 0485. Programación Departamento de Familia Profesional de Informática Curso: 2014-15

Más detalles

CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR

CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR En este capítulo se describe el análisis y diseño de un sistema, denominado e-commerce Constructor, el cual cumple con los siguientes objetivos: Fungir

Más detalles

OMG - CORBA. Object Management Group. Common Object Request Broker (CORBA) http://www.omg.org. http://www.corba.org

OMG - CORBA. Object Management Group. Common Object Request Broker (CORBA) http://www.omg.org. http://www.corba.org OMG - CORBA Object Management Group http://www.omg.org Common Object Request Broker (CORBA) http://www.corba.org OMG - CORBA Objetivo OMG proveer un marco de arquitectura común n para aplicaciones orientadas

Más detalles

Fundamentos del diseño 3ª edición (2002)

Fundamentos del diseño 3ª edición (2002) Unidades temáticas de Ingeniería del Software Fundamentos del diseño 3ª edición (2002) Facultad de Informática necesidad del diseño Las actividades de diseño afectan al éxito de la realización del software

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

Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura

Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura Página 1 de 23 Índice del Documento 1.- Introducción... Página 4 2.- Propuesta

Más detalles

Capítulo III. Análisis y diseño.

Capítulo III. Análisis y diseño. Capítulo III. Análisis y diseño. 3.1 Análisis. El análisis es el intermediario entre los requisitos del sistema y el diseño, esta sección definiremos el análisis con una serie de modelos técnicos del sistema,

Más detalles

Arquitecturas de Software

Arquitecturas de Software Arquitecturas de Software Ingeniería del Universidad Rey Juan Carlos César Javier Acuña cjacunia@escet.urjc.es Índice Introducción Motivación Definición Pipes and Filters Tipos abstractos de datos y OO

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

Matemáticas Evolutivas: Algoritmos Genéticos

Matemáticas Evolutivas: Algoritmos Genéticos Matemáticas Evolutivas: Algoritmos Genéticos María Teresa Iglesias Otero Departamento de Matemáticas Universidade da Coruña Cuál es la mejor forma de...? cuál es el camino más corto a...? cuál es la más

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

DISEÑO DE COMPONENTES DE SOFTWARE *

DISEÑO DE COMPONENTES DE SOFTWARE * DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP * Resumen del capítulo 10 de libro de [Pressman 2010] V:18-11-2008 (c) P. Gomez-Gil, INAOE.

Más detalles

Capítulo 5. Implementación y Tecnologías Utilizadas

Capítulo 5. Implementación y Tecnologías Utilizadas Capítulo 5. Implementación y Tecnologías Utilizadas Cada vez más, se está utilizando Flash para desarrollar aplicaciones basadas en Web, pues permite la construcción de ambientes con mayor interacción.

Más detalles

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el Capitulo II. Análisis de herramientas y tecnologías de desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el lenguaje de Modelo de Objetos llamado UML (Unified

Más detalles

Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes.

Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes. SISTEMAS DISTRIBUIDOS DE REDES 2.- MODELOS ORIENTADOS A OBJETOS DISTRIBUIDOS 2.1. Tecnologías de sistemas distribuidos Para la implementación de sistemas distribuidos se requiere de tener bien identificados

Más detalles

Bienvenidos a la presentación: Introducción a conceptos básicos de programación.

Bienvenidos a la presentación: Introducción a conceptos básicos de programación. Bienvenidos a la presentación: Introducción a conceptos básicos de programación. 1 Los programas de computadora son una serie de instrucciones que le dicen a una computadora qué hacer exactamente. Los

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

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

Etapas del desarrollo

Etapas del desarrollo Capítulo 4 Etapas del desarrollo Este capítulo documenta la aplicación del modelo presentado anteriormente, para el caso de la detección y clasificación de eventos sísmicos sobre señales digitales. El

Más detalles

Antes de imprimir este documento piense en el medio ambiente!

Antes de imprimir este documento piense en el medio ambiente! Versión 1.0 Página 1 de 14 1. OBJETIVO: Suministrar la metodología que se aplicará para la estimación de esfuerzo para los desarrollos nuevos en el ICBF, para lo cual se detallan los aspectos a tener en

Más detalles

Apuntes de Inteligencia Artificial

Apuntes de Inteligencia Artificial PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR FACULTAD DE INGENIERÍA Apuntes de Inteligencia Artificial Algoritmos Genéticos JORGE AGUILAR JARAMILLO Algoritmos Genéticos 8 Algoritmos Genéticos 8.1 Introducción

Más detalles

Tema 1. Arquitectura Cliente/Servidor

Tema 1. Arquitectura Cliente/Servidor Tema 1. Arquitectura Cliente/Servidor SCS Sistemas Cliente/Servidor 4 o informática http://ccia.ei.uvigo.es/docencia/scs 27 de septiembre de 2009 FJRP, FMBR [sistemas cliente-servidor] CCIA 1.1 Sistemas

Más detalles

http://www.cem.itesm.mx/extension/ms

http://www.cem.itesm.mx/extension/ms Diplomado Programación orientada a objetos con Java y UML Las empresas necesitan contar con sistemas de información modernos, ágiles y de calidad para alcanzar sus objetivos y ser cada vez más competitivos

Más detalles

PROGRAMACIÓN BÁSICA DE LA COMPUTADORA. 1 Introducción. Tabla 1: Instrucciones MIPS

PROGRAMACIÓN BÁSICA DE LA COMPUTADORA. 1 Introducción. Tabla 1: Instrucciones MIPS PROGRAMACIÓN BÁSICA DE LA COMPUTADORA 1 Introducción Un sistema de computadora total incluye tanto circuitería (hardware) como programación (software). El hardware consta de los componentes físicos y todo

Más detalles

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 17 CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC303_3 Versión 5 Situación RD 1201/2007 Actualización Competencia

Más detalles

Módulo Profesional 01: Bases de datos (código: 0484).

Módulo Profesional 01: Bases de datos (código: 0484). Módulo Profesional 01: Bases de datos (código: 0484). Actividades de enseñanza-aprendizaje que permiten alcanzar los objetivos del módulo. Interpretar diseños lógicos de bases de datos. Realizar el diseño

Más detalles

Acoplamiento e interoperabilidad

Acoplamiento e interoperabilidad Máster Universitario en Ingeniería Informá3ca Acoplamiento e interoperabilidad Sistemas de Información Orientados a Servicios RODRIGO SANTAMARÍA 2 Acoplamiento débil Tipos de acoplamiento Cabalgando el

Más detalles

Departamento de Informática y Automática INGENIERÍA DEL SOFTWARE PARTE I: TEST EXAMEN FINAL

Departamento de Informática y Automática INGENIERÍA DEL SOFTWARE PARTE I: TEST EXAMEN FINAL Departamento de Informática y Automática INGENIERÍA DEL SOFTWARE PARTE I: TEST EXAMEN FINAL DNI Apellidos y nombre 1. Cuál de las siguientes afirmaciones no es una causa de los problemas del software?

Más detalles

ESCUELA POLITÉCNICA NACIONAL

ESCUELA POLITÉCNICA NACIONAL ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA OPTIMIZACIÓN DE CONTROLADORES DIGITALES PID EN SISTEMAS DINÁMICOS USANDO ALGORITMOS GENÉTICOS PROYECTO PREVIO A LA OBTENCIÓN

Más detalles

Evolución histórica 60 -. Metodologías

Evolución histórica 60 -. Metodologías TEMA 1 INTRODUCCIÓN Historia Evolución de las técnicas de programación Qué es orientado a objetos? Factores cruciales que miden la calidad del software Externos Internos La familia Orientada a objetos

Más detalles

Tipos Abstractos de Datos

Tipos Abstractos de Datos Objetivos Repasar los conceptos de abstracción de datos y (TAD) Diferenciar adecuadamente los conceptos de especificación e implementación de TAD Presentar la especificación algebraica como método formal

Más detalles

Entidad Formadora: Plan Local De Formación Convocatoria 2010

Entidad Formadora: Plan Local De Formación Convocatoria 2010 Entidad Formadora: Enterprise Architect Comenzando Puede iniciar Enterprise Architect desde el ícono que se creó en su escritorio de Windows durante la instalación, o alternativamente: 1. Abrir el menú

Más detalles

Apéndice 1. SOAP 2 2. CORBA 4 3. JMS 6 4. RMI 8

Apéndice 1. SOAP 2 2. CORBA 4 3. JMS 6 4. RMI 8 Apéndice A Conectividad 1. OAP 2 2. CORBA 4 3. JM 6 4. RMI 8 OAP OAP (imple Object Access Protocol) es un protocolo basado en XML que permite comunicar componentes y aplicaciones mediante HTTP. Es como

Más detalles

La Arquitectura de las Máquinas Virtuales.

La Arquitectura de las Máquinas Virtuales. La Arquitectura de las Máquinas Virtuales. La virtualización se ha convertido en una importante herramienta en el diseño de sistemas de computación, las máquinas virtuales (VMs) son usadas en varias subdiciplinas,

Más detalles

BASES DE DATOS. 1.1 Funciones de un DBMS

BASES DE DATOS. 1.1 Funciones de un DBMS BASES DE DATOS Un DBMS, son programas denominados Sistemas Gestores de Base de Datos, abreviado SGBD, en inglés Data Base Management System (DBMS) que permiten almacenar y posteriormente acceder a los

Más detalles

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

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

Más detalles

Capítulo 1. Introducción. 1.1. Antecedentes

Capítulo 1. Introducción. 1.1. Antecedentes Capítulo 1. Introducción En este capítulo se presenta una descripción general del problema a investigar y el enfoque con el que se aborda. Se establece la necesidad de incorporar técnicas de análisis novedosas

Más detalles

Tema 13. Metodologías en el desarrollo de Sistemas de Software. Prof. Oscar Adolfo Vallejos

Tema 13. Metodologías en el desarrollo de Sistemas de Software. Prof. Oscar Adolfo Vallejos Tema 13 Metodologías en el desarrollo de Sistemas de Software Prof. Oscar Adolfo Vallejos Desarrollo de Sistemas de Software Objetivo Conceptos en el contexto más amplio de Software e Ingeniería de Software

Más detalles

Programación Orientada a Objetos Profr. Pedro Pablo Mayorga

Programación Orientada a Objetos Profr. Pedro Pablo Mayorga Actividad 2 Unidad 1 Ciclo de vida del software y Diseño Orientado a Objetos Ciclo de Vida del Software Un modelo de ciclo de vida define el estado de las fases a través de las cuales se mueve un proyecto

Más detalles

2.1 Ingeniería de Software

2.1 Ingeniería de Software Capítulo 2 Marco Teórico Se pretende desarrollar un software que pueda ser aplicado como una herramienta útil para la administración de una empresa. Es necesario tener en cuenta que, en todo desarrollo

Más detalles

Capítulo 6: Instrumentación: Diseño del Sistema de H2O

Capítulo 6: Instrumentación: Diseño del Sistema de H2O Capítulo 6: Instrumentación: Diseño del Sistema de H2O Digital Media Server El video en demanda a través del web aún está restringido a las grandes empresas que pueden pagar por contar por un servicio

Más detalles

Tema 2. Ingeniería del Software I feliu.trias@urjc.es

Tema 2. Ingeniería del Software I feliu.trias@urjc.es Tema 2 Ciclo de vida del software Ingeniería del Software I feliu.trias@urjc.es Índice Qué es el ciclo de vida del Software? El Estándar 12207 Modelos de proceso Qué es el Ciclo de Vida del SW? Definición

Más detalles

Análisis del Sistema de Información

Análisis del Sistema de Información Análisis del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 2 ACTIVIDAD ASI 1: DEFINICIÓN DEL SISTEMA... 6 Tarea ASI 1.1: Determinación del Alcance del Sistema... 6 Tarea ASI 1.2: Identificación

Más detalles

Contenido de la sesión. Diseño de Software Principios del Diseño Arquitectura de Software Especificación de Arquitecturas

Contenido de la sesión. Diseño de Software Principios del Diseño Arquitectura de Software Especificación de Arquitecturas Contenido de la sesión Diseño de Software Principios del Diseño Arquitectura de Software Especificación de Arquitecturas Diseño de Software Es una descripción de la estructura del software que se va a

Más detalles

RAID. Los detalles de las características segunda y tercera, cambian según los distintos niveles RAID. RAID 0 no soporta la tercera característica.

RAID. Los detalles de las características segunda y tercera, cambian según los distintos niveles RAID. RAID 0 no soporta la tercera característica. RAID Como se dijo anteriormente, el ritmo de mejora de prestaciones en memoria secundaria ha sido considerablemente menor que en procesadores y en memoria principal. Esta desigualdad ha hecho, quizás,

Más detalles

Inicio de MO Inicio de MD Inicio de MF. Documento de Análisis. Base de datos de las especificaciones OMT. MO, MD, MF Detallados. Librería de Clases

Inicio de MO Inicio de MD Inicio de MF. Documento de Análisis. Base de datos de las especificaciones OMT. MO, MD, MF Detallados. Librería de Clases 3.2 TÉCNICA DE MODELADO DE OBJETOS (OMT) (JAMES RUMBAUGH). 3.2.1 Introducción. En este documento se trata tanto el OMT-1 como el OMT-2, el primero contenido en el Libro Modelado y Diseño Orientado (Metodología

Más detalles

[ Guía para recién llegados a los ALGORITMOS GENÉTICOS]

[ Guía para recién llegados a los ALGORITMOS GENÉTICOS] UVa Dpto. de Organización de Empresas Escuela de Ingenierías Industriales Elena Pérez www.eis.uva.es/elena [ Guía para recién llegados a los ALGORITMOS GENÉTICOS] El propósito de esta guía es dar soporte

Más detalles

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS

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

Más detalles

Estructura de Datos. Unidad I Tipos de Datos

Estructura de Datos. Unidad I Tipos de Datos Estructura de Datos Unidad I Tipos de Datos Conceptos Básicos Algoritmo: es una secuencia finita de pasos o instrucciones ordenadas crono-lógicamente que describen un método para resolver un problema específico.

Más detalles

Fundamentos de Ingeniería del Software. Capítulo 11. Reutilización del software

Fundamentos de Ingeniería del Software. Capítulo 11. Reutilización del software Fundamentos de Ingeniería del Software Capítulo 11. Reutilización del software Reutilización del software. Estructura 1. Reutilización del software 2. Beneficios de la reutilización 3. Dificultades para

Más detalles

INTEGRACIÓN DE SISTEMAS HEREDADOS

INTEGRACIÓN DE SISTEMAS HEREDADOS CAPÍTULO 2 INTEGRACIÓN DE SISTEMAS HEREDADOS En el presente capítulo, se presenta el problema de integración de sistemas de Software. Una de cuyas características es la presencia de los llamados Sistemas

Más detalles

Ingeniería del Software. Diseño. Diseño en el PUD. Diseño de software. Patrones arquitectónicos. Diseño Orientado a Objetos en UML

Ingeniería del Software. Diseño. Diseño en el PUD. Diseño de software. Patrones arquitectónicos. Diseño Orientado a Objetos en UML Diseño Diseño en el PUD Diseño de software Patrones arquitectónicos Diseño Orientado a Objetos en UML 1 Iteración en PUD Planificación de la Iteración Captura de requisitos: Modelo de casos de uso, Modelo

Más detalles

TEMA 1: INTRODUCCIÓN

TEMA 1: INTRODUCCIÓN 1 DISEÑO Y DESARROLLO DE COMPILADORES TEMA 1: INTRODUCCIÓN Qué es un Compilador? Un compilador no es más que un traductor, es decir, un programa que nos permite pasar información de un lenguaje a otro.

Más detalles

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 6. Actualización

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 6. Actualización Página 1 de 19 CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC303_3 Versión 6 Situación Contraste externo Actualización

Más detalles

Ingeniería de Software

Ingeniería de Software Ingeniería de Software MSDN Ingeniería de Software...1 Ingeniería del Software_/_ Ingeniería y Programación...1 Análisis de Requerimientos...2 Especificación...3 Diseño...4 Desarrollo en Equipo...5 Mantenimiento...6

Más detalles

SERVICIOS: EXPLORACIONES EN SOA y WEB.

SERVICIOS: EXPLORACIONES EN SOA y WEB. SERVICIOS: EXPLORACIONES EN SOA y WEB. López, G. 1 ; Jeder, I 1.; Echeverría, A 1.; Grossi, M.D. 2 ; Servetto, A 2.; Fierro, P. (PhD.) 3 1. Laboratorio de Informática de Gestión - Facultad de Ingeniería.

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

INTRODUCCIÓN A LA INTELIGENCIA ARTIFICIAL: LOS SISTEMAS EXPERTOS

INTRODUCCIÓN A LA INTELIGENCIA ARTIFICIAL: LOS SISTEMAS EXPERTOS Introducción a los Sistemas Expertos 1 INTRODUCCIÓN A LA INTELIGENCIA ARTIFICIAL: LOS SISTEMAS EXPERTOS ÍNDICE 1. INTRODUCCIÓN. EVOLUCIÓN HISTÓRICA 2. DEFINICIÓN Y CARACTERÍSTICAS DE LOS SE. 3. TIPOS Y

Más detalles

CUALIFICACIÓN SISTEMAS DE GESTIÓN DE INFORMACIÓN PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN SISTEMAS DE GESTIÓN DE INFORMACIÓN PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 16 CUALIFICACIÓN SISTEMAS DE GESTIÓN DE INFORMACIÓN PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC304_3 Versión 5 Situación RD 1201/2007 Actualización Competencia

Más detalles

Comunicación entre procesos

Comunicación entre procesos Comunicación entre procesos Patrones de comunicación Comunicación cliente-servidor En la que los mensajes de petición y respuesta proporcionan la base para la invocación remota de métodos o de procedimientos.

Más detalles

INFORMATICA I. Sistemas de Numeración - Representación Interna. Autor: Jorge Di Marco

INFORMATICA I. Sistemas de Numeración - Representación Interna. Autor: Jorge Di Marco Facultad de Ciencias Exactas, Ingeniería y Agrimensura Escuela de Formación Básica Dpto de Matemática Carrera de : Ingeniería Civil, Electricista, Electrónica, Industrial, Mecánica y Agrimensura Autor:

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

1 LA INFORMACION Y SU REPRESENTACION

1 LA INFORMACION Y SU REPRESENTACION 1 LA INFORMACION Y SU REPRESENTACION 1.1 Sistemas de numeración Para empezar a comprender cómo una computadora procesa información, debemos primero entender cómo representar las cantidades. Para poder

Más detalles

MIDDLEWARE: Arquitectura para Aplicaciones Distribuidas Dr. Víctor J. Sosa Sosa vjsosa@tamps.cinvestav.mx

MIDDLEWARE: Arquitectura para Aplicaciones Distribuidas Dr. Víctor J. Sosa Sosa vjsosa@tamps.cinvestav.mx MIDDLEWARE: Arquitectura para Aplicaciones Distribuidas Dr. Víctor J. Sosa Sosa vjsosa@tamps.cinvestav.mx Contenido Middleware: Introducción Definición Genealogía Aplicaciones actuales: Servicios Web Computación

Más detalles

Unidad 1. Introducción a los conceptos de Bases de Datos

Unidad 1. Introducción a los conceptos de Bases de Datos Unidad 1 Introducción a los conceptos de Bases de Datos 1.1 Definición de Base de Datos Dato: Conjunto de caracteres con algún significado, pueden ser numéricos, alfabéticos, o alfanuméricos. Información:

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

LENGUAJES DE PROGRAMACIÓN POR QUÉ HAY TANTOS Y APARECEN NUEVOS? Por: Hanna Oktaba

LENGUAJES DE PROGRAMACIÓN POR QUÉ HAY TANTOS Y APARECEN NUEVOS? Por: Hanna Oktaba LENGUAJES DE PROGRAMACIÓN POR QUÉ HAY TANTOS Y APARECEN NUEVOS? Por: Hanna Oktaba La computadora, a diferencia de otras herramientas que en general apoyan el esfuerzo físico de los humanos, fue inventada

Más detalles

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms Patrones Patrones Es una solución reusable de problemas comunes. Los patrones solucionan problemas que existen en muchos niveles de abstracción. desde el análisis hasta el diseño y desde la arquitectura

Más detalles

MODELADO DE OBJETOS DE DATOS

MODELADO DE OBJETOS DE DATOS Manual Página Web MODELADO DE OBJETOS DE DATOS MANUALES ESPECIALES Documento: Manual Páginas Web (SemanticWebBuilder). Fecha de Elaboración: Marzo de 2009. INFOTEC CONACYT FIDEICOMISO. Página i Glosario

Más detalles

Búsqueda sobre catálogos basada en ontologías

Búsqueda sobre catálogos basada en ontologías Búsqueda sobre catálogos basada en ontologías Alianis Pérez Sosa, Yuniel Eliades Proenza Arias Universidad de las Ciencias Informáticas. Carretera a San Antonio Km 2 ½, Reparto Torrens, La Lisa, Ciudad

Más detalles

FUNDAMENTOS DE LA TEORÍA DE SISTEMA

FUNDAMENTOS DE LA TEORÍA DE SISTEMA FUNDAMENTOS DE LA TEORÍA DE SISTEMA AL TERMINAR LA CLASE UD PODRÁ RESPONDER Qué es un sistema? Cómo pueden ser definidos los sistemas? Cuáles son los parámetros de un sistema? Cuáles son las característica

Más detalles

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo. GLOSARIO Actor: Un actor es un usuario del sistema. Esto incluye usuarios humanos y otros sistemas computacionales. Un actor usa un Caso de Uso para ejecutar una porción de trabajo de valor para el negocio.

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

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

Notas técnicas de JAVA Nro. 4 White Paper

Notas técnicas de JAVA Nro. 4 White Paper Tema: Notas técnicas de JAVA Nro. 4 White Paper (Lo nuevo, lo escondido, o simplemente lo de siempre pero bien explicado) JAVA Basics : Entendiendo la Java Virtual Machine (JVM) Java, JVM, objetos, introducción,

Más detalles

Introducción. http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art143.asp - Gráfica tomada del Artículo de José David Parra

Introducción. http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art143.asp - Gráfica tomada del Artículo de José David Parra Si en otros tiempos el factor decisivo de la producción era la tierra y luego lo fue el capital... hoy día el factor decisivo es cada vez más el hombre mismo, es decir, su conocimiento... Juan Pablo II

Más detalles

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la Servicios web Introducción Un servicio web es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes

Más detalles