CAPÍTULO 2: Diseño del algoritmo

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

Download "CAPÍTULO 2: Diseño del algoritmo"

Transcripción

1 CAPÍTULO 2: Diseño del algoritmo 2.1 Introducción La fase del diseño del algoritmo es la fase previa a la de la implementación del mismo, y no cabe ninguna duda de que el éxito o el fracaso de dicho algoritmo dependerá en gran medida del grado de acierto que hayamos tenido a la hora de abordar nuestro diseño. Empezaremos este capítulo mostrando el modelo de datos que tendrá nuestro sistema, o lo que es lo mismo, deberemos definir la estructura general que tendrá nuestro problema para que el algoritmo que diseñemos pueda ser pasado a un determinado lenguaje de programación para su resolución. Una vez obtenida la jerarquización de nuestro problema pasaremos a definir el tipo de algoritmo que utilizaremos. En primer lugar haremos una pequeña justificación de nuestra elección, racionalizando en la medida de lo posible la elección que hemos hecho, mostrando los pros y los contras de algunas de las alternativas que se nos presentaban. Finalmente y para concluir este capítulo mostraremos la opción escogida, definiéndola con todo el detalle posible y dando en la medida de lo posible todas las pautas para comparar las pautas generales que siguen este tipo de algoritmos, y las características que tendrá el realizado en nuestro proyecto, mostrando las diferencias y similitudes finalmente también por medio de un cuadro (figura 2.3)

2 2.2 Modelo de datos Figura 2.1

3 En la fase de diseño del algoritmo la parte principal y seguramente más importante es la parte que trataremos a continuación, la del diseño del modelo de datos. Si de por sí esta fase ya tiene una importancia capital en cualquier proyecto en el que haya que programar, esta será aún mayor en el caso en el que el lenguaje de programación que se va a utilizar (el lenguaje JAVA, el cual ya explicaremos más adelante) esté orientado a objetos, como es el caso ante el que nos encontramos. Modelar los datos del problema consiste en identificar los distintos conceptos que intervienen en él (lo que en un futuro serán las clases del sistema) y relacionarlos entre sí. Para mostrar gráficamente el modelo del sistema hemos utilizado lenguaje UML (lenguaje de modelado unificado), lenguaje que se creó precisamente con este propósito. Pasando ya a al explicación del modelo en sí podemos observar que todas las clases están representadas en un cuadro, estando unidas algunas de ellas entre sí. Estas uniones representan una relación entre las clases en cuestión y los números que hay sobre las líneas representan la cardinalidad de dicha relación. La primera de las uniones (la que hay entre la clase Turno y la clase TurnoCirujano ) nos indica que cada turno puede pertenecer a uno o varios turnos de cirujano (1 n), mientras que como es lógico cada turno de cirujano posee un solo objeto de tipo turno (1). Esto también puede comprobarse en los atributos de dichas clases (los códigos de las mismas serán presentados más adelante) ya que la clase TurnoCirujano posee como atributo un único objeto de tipo turno. Totalmente análoga es la relación entre la clase Turno y la clase TurnoDeQuirofano, ya que mientras que cada turnodequirofano tiene un solo turno, los objetos de tipo turno pueden pertenecer a muchos turnodequirofano. Esta explicación también sería valida para las relaciones entre las clases Cirujano y TurnoCirujano y Quirófano y TurnoDeQuirofano. Por otra parte la relación entre la clase Quirófano y la clase Paciente tiene el siguiente significado. Cada paciente tiene como atributo una lista de quirófanos en los

4 cuales podrá operarse, mientras que en la clase Quirófano no se hace ninguna referencia a la clase Paciente. Es por esto la cardinalidad de dicha relación. Para finalizar explicaremos la relación entre la clase TurnoDeQuirofano y la clase Paciente. Volviendo al razonamiento del párrafo anterior, en la clase TurnoDeQuirofano hay una lista de los pacientes que serán operados en ese turno y en ese quirófano, mientras que en la clase paciente no hay ninguna referencia a la clase anterior, por lo que la cardinalidad será múltiple desde el punto de vista de la clase TurnoDeQuirofano y simple desde el punto de vista de la clase paciente 2.3 Justificación de la elección En primer lugar y antes de entrar en profundidad en la exposición de las características del tipo de algoritmo utilizado, plasmaremos un breve resumen del porqué de la elección de dicho tipo de algoritmo. El algoritmo seleccionado para resolver el problema al que nos enfrentamos pertenece a la familia de los algoritmos voraces o de tipo greedy, algoritmos que (como su propio nombre indica) buscan la solución de una manera rápida y agresiva. En lugar de explicar bien en que consisten dichos algoritmos (eso lo haremos en el siguiente apartado) vamos a centrarnos en explicar porque lo hemos elegido, y ha sido por una razón fundamental, la codificación de la solución. Muchos de los tipos de algoritmos (genéticos, recocido simulado ) existentes encuentran su solución final simplemente combinando otras muchas. La metodología que siguen consiste en partir de un conjunto inicial de soluciones más o menos aleatorias (población), para ir iterando con ellas e intentando acercarse a una solución que esté lo más próxima al óptimo posible. Estos tipos de algoritmos necesitan una codificación mucho más clara y concisa de sus soluciones.

5 Un ejemplo de este tipo de algoritmos es el algoritmo genético. En este algoritmo debe estar totalmente definido el concepto de vecindad entre dos soluciones, así como el cruce y la mutación entre ellas. El concepto de vecindad consiste en marcar una línea que indique cuando dos soluciones son lo suficientemente parecidas para ser consideradas vecinas. Al cruzar y al mutar dos soluciones debemos dar soluciones vecinas a las de la generación anterior, y es ahí donde está el problema. Cómo definimos dos soluciones vecinas, ante un grado tan alto de heterogeneidad? Como hemos visto en el modelo de datos, cada turno de quirófano tendrá un número distinto de bloques, cirujanos, pacientes, quirófanos, etc y ante eso, definir cuando dos soluciones distintas son o no parecidas, se hace una tarea altamente dificultosa. Dicho problema no existe (o al menos no en un grado tan alto) en el algoritmo voraz, ya que este construye una única solución en particular a partir de unos determinados principios en lugar de ir iterando con una población de estas, por lo que la codificación no juega un papel tan relevante. Otro concepto importante a tener es la experiencia anterior a la hora de manejar algoritmos voraces, lo que hace que siempre sea más ventajoso afrontar el problema con este tipo de algoritmo. Por todas estas razones hemos elegido está manera de solucionar la cuestión que se nos plantea, pasando a continuación a detallar todos los entresijos del algoritmo en cuestión. 2.4 Algoritmo voraz Los algoritmos voraces suelen ser algoritmos bastante simples. Suelen acercarse de una manera rápida y agresiva a la solución y no garantizan el óptimo, por lo que la eficiencia de los mismos depende en gran medida de la audacia del diseñador.

6 Son empleados sobre todo para resolver problemas de optimización, como por ejemplo, encontrar la secuencia óptima para procesar un conjunto de tareas por un computador, hallar el camino mínimo de un grafo, etc. En nuestro caso será utilizado para encontrar una combinación de pacientes que maximice la ponderación de los mismos, pero sin perder de vista las fechas de vencimiento. Aunque es difícil dar un esquema y unos elementos genéricos en este tipo de algoritmos ya que suelen implementarse de formas muy distintas, intentaremos proponer y aplicar a nuestro caso los que se utilizan más comúnmente. Habitualmente, los elementos que intervienen son: un conjunto o lista de candidatos (tareas a procesar, vértices del grafo, etc.); un conjunto de decisiones ya tomadas (candidatos ya escogidos); una función que determina si un conjunto de candidatos es una solución al problema (aunque no tiene por qué ser la óptima); una función que determina si un conjunto es completable, es decir, si añadiendo a este conjunto nuevos candidatos es posible alcanzar una solución al problema, suponiendo que esta exista; una función de selección que escoge el candidato aún no seleccionado que es más prometedor; una función objetivo que da el valor/coste de una solución (tiempo total del proceso, la longitud del camino, etc.) y que es la que se pretende maximizar o minimizar En nuestro caso, y como parece lógico, la lista de candidatos serán los pacientes que aún no hayan sido asignados a un turno, cirujano, quirófanos Estos formarán todos parte de una lista de los que se deberán ir seleccionando a los mejores, entendiendo por mejor a los que más ayudan a aumentar el valor de la función objetivo. Análogamente al caso anterior, el conjunto de decisiones ya tomadas serán los pacientes que ya han sido seleccionados, bien sea por su fecha de vencimiento o por su

7 alta ponderación. En ningún caso dichos pacientes saldrán de la lista de decisiones ya tomadas, siendo este por tanto un algoritmo poco flexible. Es aquí donde se observa que no todos los algoritmos voraces tienen porque tener todos los componentes genéricos, ya que en el nuestro esta función no existe. Cualquier conjunto de pacientes ya introducidos en el sistema es una solución al problema, por lo que no es necesario comprobarlo. Simplemente se intentará seguir introduciendo nuevos hasta que la lista haya concluido. Exactamente lo mismo ocurre con esta otra función, ya que para nosotros cualquier conjunto de pacientes siempre será completable. Es tal la diversidad que puede tener una solución, que resulta mucho menos costoso intentar seguir introduciendo pacientes hasta que se acaben, que comprobar si el los huecos que quedan se podría introducir alguno. La función que escoge al candidato más prometedor si existe en el algoritmo diseñado para la resolución de nuestro problema, pero consta de dos partes bien diferenciadas. En la primera de ellas los candidatos más prometedores son los pacientes que tienen una fecha de vencimiento próxima, mientras que en las siguientes son los que tienen una ponderación más alta. En nuestro caso la función objetivo que se pretende optimizar (maximizar en el problema que abordamos) es la suma de las ponderaciones de los pacientes operados, pero sin perder de vista que lo prioritario es el cumplimiento de las fechas para todos y cada uno de los pacientes. Como se ha podido observar el algoritmo voraz es un algoritmo poco homogéneo, aunque se podría dar también un esquema genérico de resolución de problemas el cual fue obtenido de [6] y es expuesto a continuación (figura 2.2), aunque como ya hemos mencionado, no se parecerá demasiado a nuestro algoritmo, el cual será presentado en capítulos posteriores.

8 Figura 2.2 Por otra parte, ahora mostraremos de una manera más esquemática (figura 2.3) los componentes de nuestro sistema, para que se pueda apreciar con mayor claridad lo que explicamos en las líneas anteriores: ESQUEMA GENERAL Conjunto o lista candidatos a entrar en la solución Conjunto o lista de decisiones ya tomadas Función que determina si un conjunto de candidatos es la solución al problema Función que determina si un conjunto es completable Función que se encarga de elegir al candidato más prometedor Función objetivo que se encarga de medir la bondad de una solución ESQUEMA PROPIO Pacientes que aún no han sido seleccionados Pacientes que ya han sido seleccionados No tenemos, puesto que cualquier conjunto admisible puede ser solución No tenemos, puesto que probamos hasta que se acaban los pacientes Función que elige primero por fecha de vencimiento y luego por ponderación Función que suma las ponderaciones de los pacientes elegidos. Figura 2.3

Algorítmica y Lenguajes de Programación. Algoritmos voraces y divide y vencerás

Algorítmica y Lenguajes de Programación. Algoritmos voraces y divide y vencerás Algorítmica y Lenguajes de Programación Algoritmos voraces y divide y vencerás Algoritmos voraces. Introducción (i) Las personas glotonas (voraces) intentan coger tanto como pueden en cada momento. Los

Más detalles

Análisis de algoritmos

Análisis de algoritmos Tema 10: Algoritmos ávidos M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom 1 Contenido Introducción Algoritmos ávidos Forma general de un

Más detalles

PRESENTACIÓN DEL ALGORITMO

PRESENTACIÓN DEL ALGORITMO PRESENTACIÓN DEL ALGORITMO Puede ser en distintas formas, analizaremos cuatro: a) Descripción Narrada b) Pseudocódigo c) Diagramas de Flujo d) Diagramas N- S (Nassi-Schneiderman o de Chapin) Descripción

Más detalles

CAPÍTULO 4 METODOLOGÍA PROPUESTA

CAPÍTULO 4 METODOLOGÍA PROPUESTA CAPÍTULO 4 METODOLOGÍA PROPUESTA En este capítulo, se describen los métodos utilizados en el procedimiento propuesto para obtener soluciones del PLIDMC. En la actualidad, muchos de los problemas de optimización

Más detalles

Estrategias de Diseño de Algoritmos

Estrategias de Diseño de Algoritmos Estrategias de Diseño de Algoritmos Introducción A través de los años, los científicos de la computación han identificado diversas técnicas generales que a menudo producen algorit mos eficientes para la

Más detalles

Tema: Algoritmos para la ruta más corta en un Grafo.

Tema: Algoritmos para la ruta más corta en un Grafo. Programación IV. Guía No. 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Algoritmos para la ruta más corta en un Grafo. Objetivos Específicos Definir el concepto de camino

Más detalles

Tema: Recorrido de Grafos. Ruta más corta

Tema: Recorrido de Grafos. Ruta más corta PED104. Guía N 12 Página 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación con Estructuras de Datos Tema: Recorrido de Grafos. Ruta más corta Competencia Desarrolla sistemas de información

Más detalles

Algoritmos mas complejos. Algoritmos y Estructuras de Datos II (Programación I) Mgter. Vallejos, Oscar A.

Algoritmos mas complejos. Algoritmos y Estructuras de Datos II (Programación I) Mgter. Vallejos, Oscar A. Algoritmos mas complejos Divide y Vencerás Técnica empleada en cosas dispares. También en el diseño de algoritmos. (ordenación: Quicksort; Mergesort). Consiste básicamente en dividir un problema original

Más detalles

Inteligencia Artificial

Inteligencia Artificial Algoritmos genéticos Bases En la naturaleza todos los seres vivos se enfrentan a problemas que deben resolver con éxito, como conseguir más luz solar o conseguir comida. La Computación Evolutiva interpreta

Más detalles

Algoritmos Voraces. Diseño y Análisis de Algoritmos

Algoritmos Voraces. Diseño y Análisis de Algoritmos Algoritmos Voraces Diseño y Análisis de Algoritmos Contenidos Contenidos 1 Introducción 2 Ejemplos básicos 3 Cambio de monedas 4 Problema de la mochila 5 Problemas de planificación de tareas 6 Patrones

Más detalles

Posibles trabajos HIA

Posibles trabajos HIA Posibles trabajos HIA Posibles trabajos Comparar otras herramientas de Minería de Datos con Weka Estudiar la influencia del ruido en bagging y boosting Estudiar la influencia del parámetro de poda en J48

Más detalles

Algoritmos genéticos

Algoritmos genéticos Algoritmos genéticos Introducción 2 Esquema básico 3 El problema de la mochila 7 Asignación de recursos 0 El problema del viajante 3 Variantes del esquema básico 5 Por qué funciona? 9 Observaciones finales

Más detalles

PROGRAMACIÓN LINEAL PROGRAMACIÓN LINEAL.

PROGRAMACIÓN LINEAL PROGRAMACIÓN LINEAL. PROGRAMACIÓN LINEAL. La programación lineal es una técnica de modelado (construcción de modelos). La programación lineal (PL) es una técnica matemática de optimización, es decir, un método que trata de

Más detalles

Diseño Estructurado de Algoritmos

Diseño Estructurado de Algoritmos Diseño Estructurado de Algoritmos 1 Sesión No. 3 Nombre: Metodología de resolución de problemas a través de computadoras. Segunda parte. Objetivo de la sesión: Al concluir la sesión el estudiante aplicará

Más detalles

TEMA 3: Áreas de la IA: Ejemplos de investigación actual.

TEMA 3: Áreas de la IA: Ejemplos de investigación actual. Tema 3: Áreas de la IA: Ejemplos de investigación actual pp. 1 TEMA 3: Áreas de la IA: Ejemplos de investigación actual. Algoritmos Genéticos 1 Introducción 2.1 Operadores Bibliografía Bibliografía S.

Más detalles

Diagramas UML JUAN CARLOS CONDE RAMÍREZ INTRODUCTION TO PROGRAMMING

Diagramas UML JUAN CARLOS CONDE RAMÍREZ INTRODUCTION TO PROGRAMMING Diagramas UML JUAN CARLOS CONDE RAMÍREZ INTRODUCTION TO PROGRAMMING Objetivos Comprender la importancia del modelado y el uso de diagramas para la Ingeniería y la arquitectura. Conocer las ventajas que

Más detalles

Tema 5: Algoritmos Genéticos

Tema 5: Algoritmos Genéticos Tema 5: Algoritmos Genéticos José Luis Ruiz Reina Miguel A. Gutiérrez Naranjo Departamento de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Inteligencia Artificial Búsqueda

Más detalles

Qué es SGBD? Mencionar 4 tipos de SGBD. SGBD de red. Román Gutiérrez Sosa. SGBD jerárquicos. Modelo de datos relacionales.

Qué es SGBD? Mencionar 4 tipos de SGBD. SGBD de red. Román Gutiérrez Sosa. SGBD jerárquicos. Modelo de datos relacionales. Qué es SGBD? Es un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. El propósito general de los sistemas de gestión

Más detalles

CAPITULO 2: MARCO TEÓRICO. En el desarrollo de este capítulo se presentan descripciones generales,

CAPITULO 2: MARCO TEÓRICO. En el desarrollo de este capítulo se presentan descripciones generales, CAPITULO 2: MARCO TEÓRICO En el desarrollo de este capítulo se presentan descripciones generales, definiciones y métodos, que nos pueden ayudar a entender con claridad el método que desarrolló en esta

Más detalles

INGENIERÍA DE SOFTWARE. Sesión 8: Tipos de diagramas

INGENIERÍA DE SOFTWARE. Sesión 8: Tipos de diagramas INGENIERÍA DE SOFTWARE Sesión 8: Tipos de diagramas Contextualización La representación de las aplicaciones se puede dar mediante diagramas, en los cuales se expresan las entradas de información, las salidas,

Más detalles

Descripción del problema:

Descripción del problema: PROBLEMA DEL AGENTE VIAJERO USANDO BÚSQUEDA TABU PROYECTO FINAL PROGRAMACIÓN CIENTIFICA ANGELES BAEZ OLVERA 4 JUNIO 2009 Descripción del problema: El problema del agente viajero o TSP como se le conoce

Más detalles

Teoría de los Lenguajes de Programación Práctica curso

Teoría de los Lenguajes de Programación Práctica curso Teoría de los Lenguajes de Programación Práctica curso 2013-2014 Índice 1. Introducción: Sumas...3 2. Enunciado de la práctica...3 2.1 Método de Resolución...3 Generación de los nodos...4 Función Principal...5

Más detalles

ALGORITMICA Y PROGRAMACION POR OBJETOS I

ALGORITMICA Y PROGRAMACION POR OBJETOS I ALGORITMICA Y PROGRAMACION POR OBJETOS I Nivel 1 Problemas, Soluciones y Programas Marcela Hernández Hoyos Solucionar un Problema = Construir un Programa Problema Programador Herramientas y Lenguajes Análisis

Más detalles

INGENIERÍA DEL SOFTWARE

INGENIERÍA DEL SOFTWARE INGENIERÍA DEL SOFTWARE Sesión No. 7 Nombre: Lenguaje unificado de modelado UML INGENIERÍA DEL SOFTWARE 1 Contextualización Por qué utilizar un lenguaje unificado? Cuando desarrollamos un proyecto entre

Más detalles

NETBEANS JAVA PROGRAMACIÓN ORIENTADA A OBJETOS

NETBEANS JAVA PROGRAMACIÓN ORIENTADA A OBJETOS NETBEANS JAVA PROGRAMACIÓN ORIENTADA A OBJETOS Como se vio en teoría, la definición de una clase consta de dos partes fundamentales: 1 - La declaración de la clase: Indica el nombre de la clase precedido

Más detalles

Qué es un Diagrama de Flujo?

Qué es un Diagrama de Flujo? Qué es un Diagrama de Flujo? Un diagrama de flujo, también llamado Flujograma de Procesos o Diagrama de Procesos, representa la secuencia o los pasos lógicos (ordenados) para realizar una tarea mediante

Más detalles

Son una clase particular de los algoritmos evolutivos.

Son una clase particular de los algoritmos evolutivos. Algoritmos Genéticos (AGs) Los AGs son técnicas de resolución para problemas de Búsqueda Optimización Aprendizaje en máquinas Son una clase particular de los algoritmos evolutivos. Los AGs intentan resolver

Más detalles

UNIDAD DE CONTROL SEGMENTADA PLANIFICACIÓN DE PIPES ESTÁTICOS

UNIDAD DE CONTROL SEGMENTADA PLANIFICACIÓN DE PIPES ESTÁTICOS Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

LÓGICA COMPUTACIONAL. Descripción del CURSO

LÓGICA COMPUTACIONAL. Descripción del CURSO LÓGICA COMPUTACIONAL Descripción del CURSO Antes de entrar en el maravilloso mundo de la programación debemos de conocer cómo trabaja internamente nuestra computadora. Este curso cubre las necesidades

Más detalles

Tema: Algoritmos para la ruta más corta en un Grafo.

Tema: Algoritmos para la ruta más corta en un Grafo. Programación IV. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Algoritmos para la ruta más corta en un Grafo. Objetivos Específicos Definir el concepto de camino

Más detalles

Herramienta software para resolver procesos de decisión de Markov utilizando recocido simulado

Herramienta software para resolver procesos de decisión de Markov utilizando recocido simulado Herramienta software para resolver procesos de decisión de Markov utilizando recocido simulado Cristhian D SANDOVAL Ximena GALINDO Roberto E SALAS RESUMEN Este artículo expone el diseño del prototipo de

Más detalles

Club GeoGebra Iberoamericano. 9 INECUACIONES 2ª Parte

Club GeoGebra Iberoamericano. 9 INECUACIONES 2ª Parte 9 INECUACIONES 2ª Parte INECUACIONES INTRODUCCIÓN Los objetivos de esta segunda parte del tema serán la resolución de inecuaciones con GeoGebra y la aplicación que tiene este software para la representación

Más detalles

Inicio. Cálculos previos GRASP. Resultados. Fin. Figura 5.1: Diagrama de flujo del algoritmo.

Inicio. Cálculos previos GRASP. Resultados. Fin. Figura 5.1: Diagrama de flujo del algoritmo. 5. DISEÑO FUNCIONAL En este apartado vamos a detallar los diagramas funcionales que han constituido la base para la posterior implantación informática de la metaheurística. 5.1. Diseño funcional del algoritmo

Más detalles

UNIVERSIDAD MEXIQUENSE DEL BICENTENARIO CAMPUS ACAMBAY LICENCIATURA EN INFORMÁTICA DESARROLLO DE APLICACIÓN PARA AMBIENTES DISTRIBUIDOS

UNIVERSIDAD MEXIQUENSE DEL BICENTENARIO CAMPUS ACAMBAY LICENCIATURA EN INFORMÁTICA DESARROLLO DE APLICACIÓN PARA AMBIENTES DISTRIBUIDOS UNIVERSIDAD MEXIQUENSE DEL BICENTENARIO CAMPUS ACAMBAY LICENCIATURA EN INFORMÁTICA DESARROLLO DE APLICACIÓN PARA AMBIENTES DISTRIBUIDOS Proyecto de Implementación de un Sistema de Información Bass line

Más detalles

ETAPA Cómo se llaman los profesionales que escriben el código de los programas? Programadores.

ETAPA Cómo se llaman los profesionales que escriben el código de los programas? Programadores. ETAPA 1 1. A qué se le llama programa? Es un conjunto de instrucciones, comandos, órdenes o procedimientos escritos en un lenguaje de programación para que una computadora pueda realizar una tarea determinada

Más detalles

Ontologías. Javier Béjar cbea (LSI-FIB-UPC) Inteligencia Artificial Curso 2006/ / 16

Ontologías. Javier Béjar cbea (LSI-FIB-UPC) Inteligencia Artificial Curso 2006/ / 16 Ontologías - Introducción Ontologías El objeto de estudio de la ciencia de la Ontología es el estudio de las categorías que existen en un dominio El resultado de este estudio es lo que denominamos una

Más detalles

X = a 0 + a 1 m + a 2 m a r m r,

X = a 0 + a 1 m + a 2 m a r m r, EL NÚMERO NATURAL En este captulo vamos a introducir el concepto de número natural a partir de la Teoría de Conjuntos. Piaget demostró que el procedimiento que vamos a seguir para alcanzar el concepto

Más detalles

MODELOS DE KRIPKE. Lógicas para la Informática y la Inteligencia Artificial

MODELOS DE KRIPKE. Lógicas para la Informática y la Inteligencia Artificial enero, 2007 MODELOS DE KRIPKE Lógicas para la Informática y la Inteligencia Artificial Ana de la Viuda López Departamento de Informática y Automática Universidad de Salamanca TABLA DE CONTENIDOS TABLA

Más detalles

METODOLOGÍAS PARA EL DESARROLLO DE SISTEMAS

METODOLOGÍAS PARA EL DESARROLLO DE SISTEMAS !387" APÉNDICE A, APARTADO 1 METODOLOGÍAS PARA EL DESARROLLO DE SISTEMAS DOCUMENTACIÓN 1. La necesidad de los diagramas Los diagramas o representaciones gráficas representan una parte fundamental en el

Más detalles

TEMA I: INTRODUCCIÓN A LOS CIRCUITOS SECUENCIALES

TEMA I: INTRODUCCIÓN A LOS CIRCUITOS SECUENCIALES TEM I: INTROUIÓN LOS IRUITOS SEUENILES Hasta ahora, únicamente hemos visto circuitos combinacionales, es decir, circuitos en los que las salidas dependen única y exclusivamente de las combinaciones de

Más detalles

Capítulo 2: Introducción.

Capítulo 2: Introducción. Capítulo 2: Introducción. - 13 - 2. Introducción. En este capítulo realizaremos una descripción de los apartados de la memoria que permitirá una mejor comprensión de ésta. Capítulo a capítulo iremos introduciendo

Más detalles

MÓDULOS DE DISEÑO EN INGENIERÍA

MÓDULOS DE DISEÑO EN INGENIERÍA MÓDULOS DE DISEÑO EN INGENIERÍA El diseño de productos tecnológicos (artefactos, procesos, sistemas e infraestructura) está en el centro de la naturaleza de la ingeniería. El diseño en ingeniería es un

Más detalles

Programación Orientada a Objetos

Programación Orientada a Objetos Programación Orientada a Objetos PROGRAMACIÓN ORIENTADA A OBJETOS 1 Sesión No. 8 Nombre: El Modelo de diseño con UML Contextualización Los modelos que podemos crear con UML son varios, por lo que debemos

Más detalles

Para comenzar a ejecutar la interfaz se escribirá lo siguiente en la pantalla principal de Matlab: >>proyecto

Para comenzar a ejecutar la interfaz se escribirá lo siguiente en la pantalla principal de Matlab: >>proyecto Capítulo 4. Manual de usuario. En este apartado del proyecto se va a realizar una guía para facilitar el uso del programa, así como dar a conocer sus diferentes opciones y posibilidades. La interfaz se

Más detalles

BIOINFORMÁTICA. Examen Extraordinario Septiembre 2011

BIOINFORMÁTICA. Examen Extraordinario Septiembre 2011 BIOINFORMÁTICA Examen Extraordinario Septiembre 2011 Considérese el siguiente problema (Optimización de funciones): Se desea encontrar el valor óptimo para la siguiente función donde los valores para cada

Más detalles

Comparar Longitudes de Barra WhitePaper Agosto de 2007

Comparar Longitudes de Barra WhitePaper Agosto de 2007 Comparar Longitudes de Barra WhitePaper Agosto de 2007 Contenidos 1. Propósito 3 2. Comparar longitud de Barras 4 2.1. Ubicación desde Ventas 4 2.2. Ubicación desde Producción 5 2.3. Configuración de la

Más detalles

7. PARAMETRIZACIÓN SOBRE LA RED DE PRUEBA

7. PARAMETRIZACIÓN SOBRE LA RED DE PRUEBA 7. PARAMETRIZACIÓN SOBRE LA RED DE PRUEBA 7.1. Red de prueba Para realizar el análisis de los parámetros del problema e intentar encontrar los valores óptimos de estos se ha hecho uso de un modelo de ciudad

Más detalles

Segundo parcial. Martes, 23 de abril de 2003

Segundo parcial. Martes, 23 de abril de 2003 5.053 Segundo parcial Martes, 3 de abril de 003 Se permite traer una hoja de papel con anotaciones por una cara. Responda a todas las preguntas en los cuadernillos de examen.. Controle el tiempo. Si un

Más detalles

Universidad Nacional de Educación a Distancia. Ingeniería Técnica en Informática de Sistemas. Introducción a la Inteligencia Artificial (2º curso)

Universidad Nacional de Educación a Distancia. Ingeniería Técnica en Informática de Sistemas. Introducción a la Inteligencia Artificial (2º curso) Universidad Nacional de Educación a Distancia Ingeniería Técnica en Informática de Sistemas Introducción a la Inteligencia Artificial (2º curso) Soluciones exámenes septiembre 2010 Ejercicio 1. (Valoración:

Más detalles

Apuntes de Teórico de Programación 3. Apuntes de Teórico PROGRAMACIÓN 3. Greedy. Versión 1.1

Apuntes de Teórico de Programación 3. Apuntes de Teórico PROGRAMACIÓN 3. Greedy. Versión 1.1 Apuntes de Teórico PROGRAMACIÓN 3 Greedy Versión 1.1 1 Índice Índice... Introducción... 3 Ejemplo 1 (problema de las monedas)... 3 Ejemplo (problema de la mochila)... 4 Aplicaciones del método Greedy a

Más detalles

Metodología para la solución de problemas programables

Metodología para la solución de problemas programables Metodología para la solución de problemas programables Nosotros efectuamos día a día una serie de pasos, acciones y procedimientos para solucionar problema y esto es de forma natural y casi inconscientemente

Más detalles

CIENCIA DE LA COMPUTACION

CIENCIA DE LA COMPUTACION CIENCIA DE LA COMPUTACION Docentes Profesor: Alejandro Rozenfeld Jefe de trabajos prácticos: Andrea L. Riera Sebastián Villar Ayudantes diplomados: Fabio Bucciarelli Marcelo Marchioni Ayudante Alumno:

Más detalles

CAPÍTULO 5 APLICACIÓN HEURÍSTICA

CAPÍTULO 5 APLICACIÓN HEURÍSTICA CAPÍTULO 5 APLICACIÓN HEURÍSTICA El presente capítulo muestra la aplicación de los conceptos teóricos mencionados en el capítulo anterior con el fin de obtener una solución inicial al problema de la clasificación

Más detalles

DIAGRAMAS DE FLUJO. Tabla de contenido

DIAGRAMAS DE FLUJO. Tabla de contenido Tabla de contenido 1. INTRODUCCIÓN...1 2. Qué es un DIAGRAMA DE FLUJO?...2 3. SIMBOLOGÍA...2 4. CONSIDERACIONES...5 5. SÍMBOLOS COMPUESTOS...6 6. REPRESENTACIÓN DE UN DIAGRAMA EN PSEINT...7 7. EJEMPLO

Más detalles

Colección de Tesis Digitales Universidad de las Américas Puebla. Romero Martínez, Modesto

Colección de Tesis Digitales Universidad de las Américas Puebla. Romero Martínez, Modesto 1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto El procesamiento de consultas en un sistema multibase de datos es la pieza mas importante para la operación del

Más detalles

Criterios de divisibilidad y Congruencias

Criterios de divisibilidad y Congruencias Criterios de divisibilidad y Congruencias Rafael F. Isaacs G. * Fecha: 9 de marzo de 2007 Cuando tenemos un número muy grande escrito en base 10 y deseamos saber si es múltiplo por ejemplo de 9 no necesitamos

Más detalles

Programación Orientada a Objetos

Programación Orientada a Objetos Programación Orientada a Objetos PROGRAMACIÓN ORIENTADA A OBJETOS 1 Sesión No. 12 Nombre: Análisis y diseño orientado a objetos Contextualización Cada análisis debe contemplar elementos exclusivos del

Más detalles

Producto final de la tarea. Justificación de la tarea. Objetivos

Producto final de la tarea. Justificación de la tarea. Objetivos Área: Conocimiento del medio natural, social y cultural Bloque: La diversidad de los seres Vivos Ciclo: Primero Producto final de la tarea Creación de un juego de mesa de preguntas, respuestas y todo tipo

Más detalles

Es decir, se va a mostrar la equivalencia más eficiente entre las distintas relaciones representables en E-R y MR.

Es decir, se va a mostrar la equivalencia más eficiente entre las distintas relaciones representables en E-R y MR. 05/03/2012 En este tema vamos a hablar de la traducción, o mejor, la transformación de los conceptos representados en un esquema Entidad-Relación a sus correspondientes en Modelo Relacional. Esta "traducción",

Más detalles

Proyecto Tecnológico. Protege al huevo

Proyecto Tecnológico. Protege al huevo Proyecto Tecnológico Protege al huevo Índice 1. Planteamiento del Problema... 3 2. Aclaraciones para desarrollar las diferentes fases del proceso tecnológico.... 4 3. Memoria... 7 4. Instrucciones para

Más detalles

INSTITUTO TECNOLÓGICO DE MORELIA

INSTITUTO TECNOLÓGICO DE MORELIA DEPARTAMENTO DE SISTEMAS Y COMPUTACION INSTRUMENTACIÓN DIDÁCTICA DEL PERIODO AGOSTO-DICIEMBRE DE 2011 MATERIA: FUNDAMENTOS DE PROGRAMACION (A1O3) HT 3 HP 2 CR 5 NO. DE UNIDADES 6 GRUPO: A CARRERA: INGENIERIA

Más detalles

a. Diseñe un algoritmo que maximice el número de contenedores cargados.

a. Diseñe un algoritmo que maximice el número de contenedores cargados. ALGORITMOS GREEDY RELACIÓN DE EJERCICIOS Y PROBLEMAS 1. Se tiene un buque mercante cuya capacidad de carga es de k toneladas y un conjunto de contenedores c 1,, c n cuyos pesos respectivos son p 1,, p

Más detalles

COMPUTACIÓN BIOLÓGICA

COMPUTACIÓN BIOLÓGICA COMPUTACIÓN BIOLÓGICA Pedro Isasi 1 1 Departamento de Informática Universidad Carlos III de Madrid Avda. de la Universidad, 30. 28911 Leganés (Madrid). Spain email: isasi@ia.uc3m.es Presentación TEMARIO

Más detalles

SECUENCIA DIDÁCTICA. Módulo IV Competencia de Módulo:

SECUENCIA DIDÁCTICA. Módulo IV Competencia de Módulo: SECUENCIA DIDÁCTICA Nombre de curso: Simulación de Sistemas. Antecedente: Ninguno Módulo IV Competencia de Módulo: Clave de curso: COM1505B21 Clave de antecedente: Ninguna Desarrollar software con la finalidad

Más detalles

La eficiencia de los programas

La eficiencia de los programas La eficiencia de los programas Jordi Linares Pellicer EPSA-DSIC Índice General 1 Introducción... 2 2 El coste temporal y espacial de los programas... 2 2.1 El coste temporal medido en función de tiempos

Más detalles

Tema 5. Diagramas de flujo. Computacion - FA.CE.NA.

Tema 5. Diagramas de flujo. Computacion - FA.CE.NA. Tema 5 Diagramas de flujo D i ag ram a d e F l u j o TEMA5 Diagramas de Flujo. Representación simbólica. Símbolos utilizados. Convenciones. Técnicas de construcción de diagramas. Estructuras básicas. Normas

Más detalles

Programación Orientada a Objetos

Programación Orientada a Objetos Programación Orientada a Objetos PROGRAMACIÓN ORIENTADA A OBJETOS 1 Sesión No. 3 Nombre: Conceptos de lenguaje orientado a objetos Contextualización Como se ha mencionado en las sesiones anteriores, los

Más detalles

La aplicación de separación de voz separalab

La aplicación de separación de voz separalab Capítulo 4 La aplicación de separación de voz separalab 4.1 Introducción Este capítulo del proyecto está dedicado exclusivamente al aspecto práctico de la realización del mismo. Presentaremos varias simulaciones

Más detalles

Sesión No. 9. Nombre: Teoría del productor. Introducción MICROECONOMÍA 1

Sesión No. 9. Nombre: Teoría del productor. Introducción MICROECONOMÍA 1 Microeconomía MICROECONOMÍA 1 Sesión No. 9 Nombre: Teoría del productor Introducción En una pequeña y mediana empresa, el propietario comúnmente dirige todas las operaciones; en cambio en las grandes empresas,

Más detalles

Metaheurísticas. Seminario 3. Problemas de optimización con técnicas basadas en poblaciones

Metaheurísticas. Seminario 3. Problemas de optimización con técnicas basadas en poblaciones Metaheurísticas Seminario 3. Problemas de optimización con técnicas basadas en poblaciones 1. Estructura de un Algoritmo Genético/Memético y Aspectos de Implementación 2. Problemas de Optimización con

Más detalles

Conceptos. Generales ALGORITMOS

Conceptos. Generales ALGORITMOS Conceptos 1 Generales ALGORITMOS Que es un Algoritmo? 2 Es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos

Más detalles

INTRODUCCIÓN A LAS TÉCNICAS DE MEDIDA

INTRODUCCIÓN A LAS TÉCNICAS DE MEDIDA INTRODUCCIÓN A LAS TÉCNICAS DE MEDIDA Esta documentación tiene como objetivo explicar las técnicas más habituales para realizar medidas en el. Asimismo propone varias recomendaciones para ejecutarlas de

Más detalles

Nombre de la asignatura: Análisis y modelado de sistemas de información

Nombre de la asignatura: Análisis y modelado de sistemas de información Nombre de la asignatura: Análisis y modelado de sistemas de información Créditos: 3 2-5 Aportación al perfil Formular, gestionar y evaluar el desarrollo de proyectos informáticos en las organizaciones.

Más detalles

ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS

ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS OBJETIVOS GENERALES Analizar, Diseñar e Implementar Sistemas Computacionales utilizando el Paradigma de la Orientación a Objetos a través del conocimiento de su sustentación

Más detalles

CONCLUSIONES. 1. La implementación del Recocido Simulado V.2 es una versión fácil de

CONCLUSIONES. 1. La implementación del Recocido Simulado V.2 es una versión fácil de CONCLUSIONES 1. La implementación del Recocido Simulado V.2 es una versión fácil de utilizar, sencilla en codificación, ocupa poco espacio en disco; haciéndolo un software manejable y adaptable a cualquier

Más detalles

1. Introducción 2. Esquema básico 3. Codificación 4. Evaluación 5. Selección 6. Operadores 7. Ejemplo. Algoritmos genéticos

1. Introducción 2. Esquema básico 3. Codificación 4. Evaluación 5. Selección 6. Operadores 7. Ejemplo. Algoritmos genéticos 1. Introducción 2. Esquema básico 3. Codificación 4. Evaluación 5. Selección 6. Operadores 7. Ejemplo Algoritmos genéticos Introducción Propuestos por Holland, mediados 70, computación evolutiva Popularizados

Más detalles

Modelado y autooptimización en esquemas paralelos de backtracking

Modelado y autooptimización en esquemas paralelos de backtracking Modelado y autooptimización en esquemas paralelos de backtracking Manuel Quesada y Domingo Giménez Universidad de Murcia XX Jornadas de Paralelismo A Coruña, 18 Sept 2009 Índice 1 Introducción 2 Técnica

Más detalles

2. ANÁLISIS DEL PROBLEMA

2. ANÁLISIS DEL PROBLEMA 2. ANÁLISIS DEL PROBLEMA 2.1. Descripción del problema de Nesting 2.1.1. Situación de la industria del calzado. La industria del calzado en México es un sector importante en la economía por su participación

Más detalles

Expositor: Mauricio Galvez Legua

Expositor: Mauricio Galvez Legua ó Expositor: Mauricio Galvez Legua mgl10may62@hotmail.com 1 Qué es la ó La Robótica es una ciencia aplicada que se ocupa del estudio, desarrollo y aplicaciones de los robots. El estudio de la robótica

Más detalles

4.- Modelos de resolución exacta empleados.

4.- Modelos de resolución exacta empleados. 4.- Modelos de resolución exacta empleados. Una vez explicada la batería de problemas con la que vamos a trabajar, y según la metodología a seguir en este proyecto, pasamos a describir los modelos de resolución

Más detalles

Guía práctica de estudio 7

Guía práctica de estudio 7 Guía práctica de estudio 7 Algoritmos de Grafos. Parte 2. Elaborado por: Revisión: Ing. Laura Sandoval Montaño Facultad de Ingeniería U.N.A.M. Guía Práctica 7 Estructura de datos y Algoritmos II Algoritmos

Más detalles

De acuerdo al proceso de desarrollo de un sistema, se han hecho las siguientes tareas:

De acuerdo al proceso de desarrollo de un sistema, se han hecho las siguientes tareas: Sistema de aprendizaje de matemáticas avanzadas para ingeniería, utilizando entrelazamiento curricular y evaluación adaptativa por computadora (MAPI-CAT) Reporte de avances De acuerdo al proceso de desarrollo

Más detalles

EVALUACIÓN DE BACHILLERATO PARA EL ACCESO A LA UNIVERSIDAD

EVALUACIÓN DE BACHILLERATO PARA EL ACCESO A LA UNIVERSIDAD ANEXO A EVALUACIÓN DE BACHILLERATO PARA EL ACCESO A LA UNIVERSIDAD Curso 2016/2017 Asignatura: MATEMÁTICAS APLICADAS A LAS CIENCIAS SOCIALES II Tiempo máximo de la prueba: 90 minutos Estructura de la prueba:

Más detalles

Exámenes: creación. Creación de exámenes con la herramienta Exámenes. Lección 18 a

Exámenes: creación. Creación de exámenes con la herramienta Exámenes. Lección 18 a Creación de exámenes con la herramienta Exámenes Lo primero es situarnos en la asignatura en la cual queremos crear el examen (Álgebra) y posicionarnos en la herramienta Exámenes Para crear un examen debemos

Más detalles

Capítulo IV. Diseño del sistema.

Capítulo IV. Diseño del sistema. Capítulo IV. Diseño del sistema. Este capítulo profundizará sobre la ingeniería de software necesaria para llevar a cabo la implementación del sistema. Por medio de UML podremos analizar de forma gráfica

Más detalles

INTRODUCCIÓN Y MEDIDAS DE RENDIMIENTO BENCHMARK

INTRODUCCIÓN Y MEDIDAS DE RENDIMIENTO BENCHMARK Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

Algoritmos y la Resolución de problemas

Algoritmos y la Resolución de problemas Algoritmos y la Resolución de problemas Corina Flores Villarroel UMSS 1 Introducción Continuamente el hombre se ve enfrentado a una gran diversidad de problemas, desde... qué color de auto comprar?, por

Más detalles

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute. Los problemas que se plantean en la vida diaria suelen ser resueltos mediante el uso de la capacidad intelectual y la habilidad manual del ser humano. La utilización de la computadora en la resolución

Más detalles

Programación orientada a objetos Semestre 6 Fascículo No. 2

Programación orientada a objetos Semestre 6 Fascículo No. 2 Programación orientada a objetos Semestre 6 Fascículo No. 2 Tabla de contenido Requerimientos UML Unified Modeling Language Diagramas de casos de uso (funcional) Procesos Entradas Salidas Actores Herramientas

Más detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 2. Estructura de un Fichero. Operaciones. Básicas.

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 2. Estructura de un Fichero. Operaciones. Básicas. FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 2. Estructura de un Fichero. Operaciones Básicas. 1.- Introducción. 2.- Organización: Campos y Registros. 3.- Acceso a la Información.

Más detalles

BÚSQUEDA DE RUTAS DE METRO

BÚSQUEDA DE RUTAS DE METRO 8Proyecto 3 BÚSQUEDA DE RUTAS DE METRO 1. DESCRIPCIÓN DEL PROBLEMA En este proyecto se quiere implementar un algoritmo evolutivo para buscar el mejor camino entre dos puntos de una red de metro. La calidad

Más detalles

Unidad III: Introducción a la Programación

Unidad III: Introducción a la Programación Unidad III: Introducción a la Programación 3.1 Características del lenguaje de programación Un lenguaje de programación es un idioma artificial diseñado para expresar procesos que pueden ser llevadas a

Más detalles

Algoritmos voraces (greedy)

Algoritmos voraces (greedy) Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 21 de marzo de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Algoritmos voraces 21 de marzo de 2018 1 / 45 1 Algoritmos voraces (greedy) Aplicaciones de

Más detalles

Experiencia de Usuario: Principios y Métodos

Experiencia de Usuario: Principios y Métodos Experiencia de Usuario: Principios y Métodos Yusef Hassan Montero www.yusef.es Todos los derechos reservados, 2015 Este libro ha sido escrito usando Calmly Writer (www.calmlywriter.com) Capítulo de ejemplo.

Más detalles

4. MÉTODO EXACTO DE RESOLUCIÓN Y ALGORITMO TABÚ

4. MÉTODO EXACTO DE RESOLUCIÓN Y ALGORITMO TABÚ 4. MÉTODO EXACTO DE RESOLUCIÓN Y ALGORITMO TABÚ En este apartado vamos a realizar una detallada descripción de las metodologías que posteriormente utilizaremos para contrastar el nivel de calidad alcanzado

Más detalles

INFORMATIZACIÓN DE UN VIDEOCLUB

INFORMATIZACIÓN DE UN VIDEOCLUB INFORMATIZACIÓN DE UN VIDEOCLUB José Fernández Expósito Ejercicio 5, Tema 3 INGENIERÍA DEL SOFTWARE Visión general: Se pretende analizar la posible creación de un sistema automatizado de manejo de los

Más detalles

Programación Orientada a Objetos

Programación Orientada a Objetos Programación Orientada a Objetos PROGRAMACIÓN ORIENTADA A OBJETOS 1 Sesión No. 10 Nombre: Diagrama de colaboración Contextualización El uso de los diagramas es importante, permiten el análisis de la información

Más detalles

Guía para la documentación de proyectos de software

Guía para la documentación de proyectos de software Estructura y contenido Guía para la documentación de proyectos de software Organización de Computadoras Universidad Nacional del Sur 2017 1. Definiciones y especificación de requerimientos Los requerimientos/requisitos

Más detalles