CAPÍTULO 2: Diseño del algoritmo
|
|
- Trinidad Ramos Rojo
- hace 5 años
- Vistas:
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 Algoritmos voraces. Introducción (i) Las personas glotonas (voraces) intentan coger tanto como pueden en cada momento. Los
Más detallesAná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 detallesPRESENTACIÓ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 detallesCAPÍ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 detallesEstrategias 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 detallesTema: 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 detallesTema: 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 detallesAlgoritmos 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 detallesInteligencia 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 detallesAlgoritmos 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 detallesPosibles 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 detallesAlgoritmos 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 detallesPROGRAMACIÓ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 detallesDiseñ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 detallesTEMA 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 detallesDiagramas 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 detallesTema 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 detallesQué 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 detallesCAPITULO 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 detallesINGENIERÍ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 detallesDescripció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 detallesTeorí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 detallesALGORITMICA 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 detallesINGENIERÍ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 detallesNETBEANS 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 detallesQué 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 detallesSon 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 detallesUNIDAD 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 detallesLÓ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 detallesTema: 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 detallesHerramienta 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 detallesClub 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 detallesInicio. 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 detallesUNIVERSIDAD 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 detallesETAPA 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 detallesOntologí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 detallesX = 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 detallesMODELOS 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 detallesMETODOLOGÍ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 detallesTEMA 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 detallesCapí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 detallesMÓ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 detallesProgramació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 detallesPara 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 detallesBIOINFORMÁ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 detallesComparar 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 detalles7. 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 detallesSegundo 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 detallesUniversidad 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 detallesApuntes 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 detallesMetodologí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 detallesCIENCIA 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 detallesCAPÍ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 detallesDIAGRAMAS 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 detallesColecció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 detallesCriterios 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 detallesProgramació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 detallesProducto 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 detallesEs 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 detallesProyecto 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 detallesINSTITUTO 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 detallesa. 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 detallesCOMPUTACIÓ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 detallesSECUENCIA 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 detallesLa 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 detallesTema 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 detallesProgramació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 detallesLa 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 detallesSesió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 detallesMetaheurí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 detallesConceptos. 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 detallesINTRODUCCIÓ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 detallesNombre 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 detallesANÁ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 detallesCONCLUSIONES. 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 detalles1. 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 detallesModelado 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 detalles2. 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 detallesExpositor: 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 detalles4.- 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 detallesGuí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 detallesDe 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 detallesEVALUACIÓ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 detallesExá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 detallesCapí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 detallesINTRODUCCIÓ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 detallesAlgoritmos 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 detallesEs 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 detallesProgramació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 detallesFICHEROS 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 detallesBÚ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 detallesUnidad 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 detallesAlgoritmos 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 detallesExperiencia 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 detalles4. 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 detallesINFORMATIZACIÓ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 detallesProgramació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 detallesGuí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