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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4. Programación Paralela

4. Programación Paralela 4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios

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

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

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

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

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

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

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

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

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

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

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

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

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

Tema 4. Diseño arquitectónico.

Tema 4. Diseño arquitectónico. Tema 4. Diseño arquitectónico. Introducción, Objetivos del Diseño. Ingeniería del Software II 2011 Para la transformación del modelo de análisis en un modelo de diseño del sistema, se definen los objetivos

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

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

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

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

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

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

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

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

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

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

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

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

Clientes Donantonio. Especificación de requisitos software. Juan José Amor David Escorial Ismael Olea

Clientes Donantonio. Especificación de requisitos software. Juan José Amor David Escorial Ismael Olea Especificación de requisitos software Tabla de contenidos Juan José Amor David Escorial Ismael Olea 1. Introducción...3 1.1. Propósito...3 1.2. Ámbito del sistema...3 1.3. Definiciones, acrónimos y abreviaturas...3

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

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

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

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

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

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

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

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

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

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

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

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio). 1 GLOSARIO A continuación se definen, en orden alfabético, los conceptos básicos que se han abordado a lo largo del desarrollo de la metodología para la gestión de requisitos bajo la Arquitectura Orientada

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

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

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

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 3: Estructura del sistema operativo. 3.1 Componentes del sistema. 3.2 Servicios del sistema operativo. 3.3 Llamadas al sistema. 3.4 Programas

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

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

JAVA EE 5. Arquitectura, conceptos y ejemplos.

JAVA EE 5. Arquitectura, conceptos y ejemplos. JAVA EE 5. Arquitectura, conceptos y ejemplos. INTRODUCCIÓN. MODELO DE LA APLICACIÓN JEE5. El modelo de aplicación Java EE define una arquitectura para implementar servicios como lo hacen las aplicaciones

Más detalles

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

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

Más detalles

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

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

CAPITULO 1. Introducción a los Conceptos Generales de Bases de Datos Distribuidas

CAPITULO 1. Introducción a los Conceptos Generales de Bases de Datos Distribuidas CAPITULO 1 Introducción a los Conceptos Generales de 1.1 Preliminares Las empresas necesitan almacenar información. La información puede ser de todo tipo. Cada elemento informativo es lo que se conoce

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

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

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

República Bolivariana de Venezuela Ministerio Popular de Educación y Deportes UNEFA Cátedra: Base de Datos Unidad I. Introducción

República Bolivariana de Venezuela Ministerio Popular de Educación y Deportes UNEFA Cátedra: Base de Datos Unidad I. Introducción República Bolivariana de Venezuela Ministerio Popular de Educación y Deportes UNEFA Cátedra: Base de Datos Unidad I. Introducción Dato: Hecho o valor a partir del cual se puede inferir una conclusión.

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

Programación de red con Cisco Application Centric Infrastructure

Programación de red con Cisco Application Centric Infrastructure Informe técnico Programación de red con Cisco Application Centric Infrastructure Descripción general En este documento se examina la compatibilidad de la programación de Cisco Application Centric Infrastructure

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

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

PERFIL DEL INGENIERO DE SISTEMAS FUSM

PERFIL DEL INGENIERO DE SISTEMAS FUSM PERFIL DEL INGENIERO DE SISTEMAS FUSM PERFIL DEL INGENIERO DE SISTEMAS DE LA FUSM El perfil del Ingeniero de Sistemas presencial de la Fundación Universitaria San Martín, Bogotá, está en capacidad de modelar

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

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

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

La importancia del desarrollo para el buen diseño del software

La importancia del desarrollo para el buen diseño del software La importancia del desarrollo para el buen diseño del software RESUMEN N L González Morales. 1 En este ensayo se examinan los temas vistos en clase que son Desarrollo de Orientado a Objetos y Arquitectura

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

Capítulo 2. Marco Teórico

Capítulo 2. Marco Teórico Capítulo 2. Marco Teórico 2.1. Frameworks para Aplicaciones Web en Java Con el crecimiento exponencial de Internet en los últimos años, las aplicaciones Web se han convertido en una parte básica y común

Más detalles

Memoria Compartida Distribuida (DSM) Sistema de Archivos

Memoria Compartida Distribuida (DSM) Sistema de Archivos Memoria Compartida Distribuida (DSM) La memoria compartida distribuida es una abstracción que se propone como alternativa a la comunicación por mensajes. Memoria compartida basada en páginas: este esquema

Más detalles

Introducción a la P.O.O. Patrick Hernández Cuamatzi

Introducción a la P.O.O. Patrick Hernández Cuamatzi Introducción a la P.O.O. Patrick Hernández Cuamatzi Introducción } Debemos diferenciar entre Programación Orientada a Objetos (P.O.O.) y Lenguaje Orientado a Objetos (L.O.O.). } La P.O.O. es una filosofía,

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

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

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

Unidad V: Programación del lado del servidor

Unidad V: Programación del lado del servidor Unidad V: Programación del lado del servidor 5.1 Introducción al lenguaje La Programación del lado del servidor es una tecnología que consiste en el procesamiento de una petición de un usuario mediante

Más detalles

PATRONES. Experto. Solución:

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

Más detalles

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

Sistemas de Numeración

Sistemas de Numeración UNIDAD Sistemas de Numeración Introducción a la unidad Para la mayoría de nosotros el sistema numérico base 0 aparentemente es algo natural, sin embargo si se establecen reglas de construcción basadas

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

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

Uso de los Servicios Web en la nueva arquitectura de N-Capas del Sistema Económico Integral Rodas XXI.

Uso de los Servicios Web en la nueva arquitectura de N-Capas del Sistema Económico Integral Rodas XXI. Ponencia para Evento de Redes. Autor: Rubén Rivera Rodríguez, Citmatel Resumen Uso de los Servicios Web en la nueva arquitectura de N-Capas del Sistema Económico Integral Rodas XXI. Las nuevas tendencias

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

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

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

Más detalles