Paralelización de problemas de recorrido de árboles Trabajadores replicados y esquema maestro esclavo

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

Download "Paralelización de problemas de recorrido de árboles Trabajadores replicados y esquema maestro esclavo"

Transcripción

1 Metodología de la Programación Paralela Facultad Informática, Universidad de Murcia Esquemas algorítmicos paralelos: Paralelización de problemas de recorrido de árboles Trabajadores replicados y esquema maestro esclavo Domingo Giménez (Universidad de Murcia) Curso / 35

2 Sesión 4 Descomposición del trabajo: Paralelismo de datos. Particionado de datos. Algoritmos relajados. De paralelismo basado en dependencias de datos: Paralelismo síncrono. Dependencias en árbol o grafo. Pipeline. De paralelización de esquemas secuenciales: Divide y Vencerás. Programación Dinámica. Recorridos de árboles: Backtracking y Branch and Bound. De múltiples tareas o trabajadores: Bolsa de tareas. Granja de procesos. Maestro-Esclavo. Domingo Giménez (Universidad de Murcia) Curso / 35

3 Contenido 1 Recorrido de árboles Backtracking Branch and Bound 2 Trabajadores replicados Bolsa de tareas Maestro-Esclavo Esquemas descentralizados 3 Prácticas Domingo Giménez (Universidad de Murcia) Curso / 35

4 Árboles de soluciones Problemas de búsqueda en un espacio de posibles soluciones. Problemas de distintos tipos: búsqueda de una única solución, de todas las soluciones, de la solución óptima, etc. Esquemas típicos de recorrido del árbol: Backtracking, Branch and Bound, etc. Se descompone el espacio de búsqueda en subespacios más pequeños y se asignan a distintos componentes computacionales (hilos, procesos). La generación de subproblemas puede ser estática o dinámica: todas las tareas se generan inicialmente, o se generan nuevas tareas durante el recorrido del árbol. La asignación de tareas puede ser estática o dinámica: se decide inicialmente qué subproblemas resuelve cada elemento de proceso, o se asigna trabajo según la velocidad de cada elemento de proceso. Domingo Giménez (Universidad de Murcia) Curso / 35

5 Contenido 1 Recorrido de árboles Backtracking Branch and Bound 2 Trabajadores replicados Bolsa de tareas Maestro-Esclavo Esquemas descentralizados 3 Prácticas Domingo Giménez (Universidad de Murcia) Curso / 35

6 Ejemplo - Subconjunto que suma una cantidad Problema: Dado un conjunto de n enteros, C ={a 0, a 1,...,a n 1 }, y un entero V, se quiere encontrar un subconjunto S C tal que s i S s i = V. Representación de soluciones: n-tupla X de valores 0 o 1, con a i S sí y sólo sí x i = 1. Árbol de soluciones: Árbol binario. Cada nivel representa un elemento de C, y cada nodo tiene dos hijos que corresponden a los valores x i = 0 y x i = 1. Son solución los nodos terminales en los que n 1 i=0 x ia i = V. Domingo Giménez (Universidad de Murcia) Curso / 35

7 Backtracking - Subconjunto que suma una cantidad Domingo Giménez (Universidad de Murcia) Curso / 35

8 Backtracking - Subconjunto que suma una cantidad Domingo Giménez (Universidad de Murcia) Curso / 35

9 Backtracking - Subconjunto que suma una cantidad Domingo Giménez (Universidad de Murcia) Curso / 35

10 Backtracking - Subconjunto que suma una cantidad Domingo Giménez (Universidad de Murcia) Curso / 35

11 Backtracking - Subconjunto que suma una cantidad Domingo Giménez (Universidad de Murcia) Curso / 35

12 Backtracking paralelo Generación secuencial inicial de un número fijo de tareas. Distribución de tareas: Estática. Balancear la distribución. Si se sabe el coste de cada tarea se puede calcular distribución óptima (problema NP). Si no se sabe, se pueden generar más tareas que procesos y asignarlas aleatoriamente o cíclicamente. Dinámica. Más difícil la gestión. Memoria Compartida, acceso en exclusiva a descriptores de las tareas. Paso de Mensajes, proceso que gestiona la bolsa de tareas (Maestro), y coste alto de la gestión por comunicaciones. Generación dinámica de tareas: se generan tareas y al tratarlas se generan nuevas tareas. Coste de gestión de la bolsa de tareas. La granularidad de las tareas debe ser alta. Domingo Giménez (Universidad de Murcia) Curso / 35

13 Contenido 1 Recorrido de árboles Backtracking Branch and Bound 2 Trabajadores replicados Bolsa de tareas Maestro-Esclavo Esquemas descentralizados 3 Prácticas Domingo Giménez (Universidad de Murcia) Curso / 35

14 Branch and Bound - ideas generales En problemas de búsqueda en un espacio de soluciones. Normalmente problemas de optimización. Se trata de obtener la solución óptima explorando la menor cantidad posible de nodos. Se mantiene una Lista de Nodos Vivos. Se van extrayendo nodos de la LNV y se generan sus hijos. Para cada nodo se generan cota inferior, cota superior y estimación del beneficio (coste) de la solución óptima a partir de él. Ramificación: Los nodos de la LNV se van extrayendo con un criterio que puede estar basado en la estimación del beneficio. Poda: Un nodo se poda si su Cota Superior es menor que la mayor Cota Inferior de los nodos generados. Domingo Giménez (Universidad de Murcia) Curso / 35

15 Branch and Bound - paralelismo 1 Búsqueda paralela usando diferentes algoritmos en diferentes procesos: diferentes formas de calcular las cotas y la estimación del beneficio, y distintos criterios de selección. Se repiten nodos pero hay pocas comunicaciones. Domingo Giménez (Universidad de Murcia) Curso / 35

16 Branch and Bound - paralelismo 1 Búsqueda paralela usando diferentes algoritmos en diferentes procesos: diferentes formas de calcular las cotas y la estimación del beneficio, y distintos criterios de selección. Se repiten nodos pero hay pocas comunicaciones. 2 Expansión en paralelo de cada nodo. Se necesita que la expansión de cada nodo sea costosa: gran número de hijos, alto coste de los cálculos de cada hijo. Gestión de la lista de nodos vivos centralizada muchas comunicaciones. Domingo Giménez (Universidad de Murcia) Curso / 35

17 Branch and Bound - paralelismo 1 Búsqueda paralela usando diferentes algoritmos en diferentes procesos: diferentes formas de calcular las cotas y la estimación del beneficio, y distintos criterios de selección. Se repiten nodos pero hay pocas comunicaciones. 2 Expansión en paralelo de cada nodo. Se necesita que la expansión de cada nodo sea costosa: gran número de hijos, alto coste de los cálculos de cada hijo. Gestión de la lista de nodos vivos centralizada muchas comunicaciones. 3 Evaluación paralela de subproblemas: Se asignan a cada proceso varios nodos de la LNV. Posibilidades de distribución: Estática: pocas comunicaciones, se pueden difundir las cotas para podar; la asignación de los nodos puede ser balanceada o ponderada. Dinámica con bolsa de tareas: más comunicaciones. La actualización de la bolsa puede ser inmediata o pospuesta. Domingo Giménez (Universidad de Murcia) Curso / 35

18 Branch and Bound - Subconjunto que suma una cantidad Domingo Giménez (Universidad de Murcia) Curso / 35

19 Branch and Bound - comunicación de las cotas Comunicar las cotas puede contribuir a podar más, pero conlleva comunicaciones. Cuándo y cómo comunicarlas? Domingo Giménez (Universidad de Murcia) Curso / 35

20 Contenido 1 Recorrido de árboles Backtracking Branch and Bound 2 Trabajadores replicados Bolsa de tareas Maestro-Esclavo Esquemas descentralizados 3 Prácticas Domingo Giménez (Universidad de Murcia) Curso / 35

21 Conceptos generales Una serie de elementos de proceso que constituyen una Granja de procesos y que pueden ser del mismo tipo (Trabajadores replicados). Normalmente trabajan resolviendo tareas que se encuentran en una estructura que contiene la definición de las tareas a realizar: Bolsa de tareas. Y la gestión de la bolsa la hace un proceso distinguido (Maestro), que atiende las peticiones y los envíos de otros procesos (Esclavos). Se tiene así el paradigma Maestro-Esclavo. Domingo Giménez (Universidad de Murcia) Curso / 35

22 Contenido 1 Recorrido de árboles Backtracking Branch and Bound 2 Trabajadores replicados Bolsa de tareas Maestro-Esclavo Esquemas descentralizados 3 Prácticas Domingo Giménez (Universidad de Murcia) Curso / 35

23 Trabajadores replicados Se mantiene una bolsa central de tareas. Los trabajadores: Toman tareas de la bolsa. Posiblemente generan otras nuevas. Acaba la computación cuando la bolsa está vacía y todos los trabajadores han acabado (problema de detección de terminación). Útil en problemas combinatorios: búsqueda en árbol. La asignación dinámica de trabajos se hace para balancear la computación. Domingo Giménez (Universidad de Murcia) Curso / 35

24 Bolsa de tareas Bolsa de tareas: conjunto de descriptores de tareas; cada descriptor especifica una computación. En Memoria Compartida: una estructura centralizada de la que los trabajadores toman trabajos y posiblemente depositan otros nuevos. Acceso en exclusión mutua. En Paso de Mensajes: la estructura está en la memoria de uno o varios procesos, la petición y depósito de tareas conllevan comunicación. Tener en cuenta: Contención: Por ser la bolsa de tareas centralizada. Cuantos más procesadores mayor contención. Balanceo: Si se descentraliza la bolsa hay mayor desbalanceo y menor contención compromiso entre contención y balanceo. Terminación: El test de terminación es global sincronización. Domingo Giménez (Universidad de Murcia) Curso / 35

25 Ejemplo - Algoritmo de Dijkstra de camino más corto Grafo con matriz de adyacencia Pasos del algoritmo: paso cola distancias inicial , , , Cómo paralelizar?: Pasos independientemente: Paralelización Síncrona. Procesos tomando elementos de la cola, pero genera nuevos elementos para la cola y modifica el vector de distancias regiones críticas, que limitan el paralelismo. Domingo Giménez (Universidad de Murcia) Curso / 35

26 Esquema de trabajadores replicados con bolsa de tareas en OpenMP inicializar bolsa de tareas; inicializar tareas; omp set num threads(trabajadores); acabados = trabajadores; #pragma omp parallel private(fin,n) { fin=falso; Mientras no fin hacer #pragma omp critical { Si tareas = 0 y acabados = trabajadores entonces fin=verdadero; sino Si tareas 0 entonces acabados = acabados 1; tareas = tareas 1; tomar tarea de la bolsa; finsi } Si tomada tarea entonces resolver tarea y generar n nuevas tareas; #pragma omp critical { tareas = tareas + n; acabados = acabados + 1; insertar las n tareas en la bolsa; } finsi finmientras } bolsa de tareas y variables tareas y acabados son globales. Inicialmente 1 tarea y todos los trabajadores inactivos (acabados = trabajadores). Los hilos trabajan mientras queden tareas u otros hilos trabajando (pueden generar nuevas taareas). No es necesario un Maestro. Todos los hilos hacen el mismo trabajo. Es necesario acceder en exclusión mutua a las variables compartidas. Domingo Giménez (Universidad de Murcia) Curso / 35

27 Contenido 1 Recorrido de árboles Backtracking Branch and Bound 2 Trabajadores replicados Bolsa de tareas Maestro-Esclavo Esquemas descentralizados 3 Prácticas Domingo Giménez (Universidad de Murcia) Curso / 35

28 Maestro-Esclavo - esquema centralizado Comunicaciones entre el maestro y los esclavos. El maestro conoce la condición de fin y la comunica a los esclavos. Domingo Giménez (Universidad de Murcia) Curso / 35

29 Esquema Maestro-Esclavo con número fijo de trabajos y distribución dinámica de trabajo // Se dispone de p procesos esclavos // y de t tareas Si proceso maestro entonces asignar un trabajo a cada esclavo; t = t p; Mientras t 0 hacer Recibe(resultado); Envia(trabajo, esclavo del que ha recibido); t = t 1; finmientras Mientras p 0 hacer Recibe(resultado); Envia(marca de fin, esclavo del que ha recibido); p = p 1; finmientras sino Recibe(trabajo, maestro); resolver trabajo; Envia(resultado, maestro); Recibe(trabajo o marca de fin, maestro); Mientras no recibida marca de fin hacer resolver trabajo; Envia(resultado, maestro); Recibe(trabajo o marca de fin, maestro); finmientras finsi Suponemos que inicialmente hay tareas para todos los esclavos. El Maestro recibe resultados y envía nuevos trabajos. Cuando no le quedan más trabajos manda señales de fin a todos los esclavos. Los Esclavos reciben tareas, las resuelven, mandan el resultado y reciben nuevas tareas, hasta que reciben la señal de fin. Domingo Giménez (Universidad de Murcia) Curso / 35

30 Esquema Maestro-Esclavo con generación de nuevos trabajos por los esclavos Si proceso maestro entonces generar tareas iniciales; asignar un trabajo a cada esclavo; // solicitudes representa el número de solicitudes de trabajo que ha recibido el maestro y que no ha atendido solicitudes = 0; Mientras solicitudes p hacer Recibe(resultado trabajos o solicitud); Si recibidos trabajos entonces incluir trabajos en la bolsa; Para cada esclavo esperando hacer Si trabajo disponible entonces Envia(trabajo, esclavo); solicitudes = solicitudes 1; finsi finpara finsi Si recibida solicitud entonces solicitudes = solicitudes + 1; Si trabajo disponible entonces Envia(trabajo, esclavo del que ha recibido); finsi finsi finmientras enviar señal de fin a todos los esclavos; sino Recibe(trabajo, maestro); resolver trabajo; Envia(resultado y trabajos, maestro); Recibe(trabajo o marca de fin, maestro); Mientras no recibida marca de fin hacer resolver trabajo; Envia(resultado y trabajos, maestro); Recibe(trabajo o marca de fin, maestro); finmientras finsi Domingo Giménez (Universidad de Murcia) Curso / 35

31 Contenido 1 Recorrido de árboles Backtracking Branch and Bound 2 Trabajadores replicados Bolsa de tareas Maestro-Esclavo Esquemas descentralizados 3 Prácticas Domingo Giménez (Universidad de Murcia) Curso / 35

32 Problemas del esquema de bolsa de tareas centralizado La bolsa de tareas puede convertirse en un cuello de botella: muchas comunicaciones entre el Maestro y los Esclavos. Se puede intentar mejorar: Aumentando la granularidad de las tareas: asignar varias tareas a la vez. Pero esto puede empeorar el balanceo. Quedándose los esclavos con tareas que han generado. Haciendo petición anticipada de tareas. Con una jerarqía de maestros. Dificulta la detección de fin. Se puede intentar solventar el problema descentralizando la bolsa de tareas. Domingo Giménez (Universidad de Murcia) Curso / 35

33 Bolsa de tareas descentralizada Mucho más compleja de gestionar. A quién se hacen las peticiones? Cómo se sabe que no quedan tareas por resolver? Domingo Giménez (Universidad de Murcia) Curso / 35

34 Solicitud cíclica de trabajo Los procesos solicitan trabajos cíclicamente. Cuándo se acaba? Puede pasar que pida a todos y ninguno tenga trabajo, pero que mientras estaba haciendo las peticiones otro proceso que ya había evaluado genere nuevos trabajos. Domingo Giménez (Universidad de Murcia) Curso / 35

35 Algoritmo de Dijkstra de detección de fin Al hacer la petición se manda un testigo Blanco. Si por el camino pasa por un proceso que mandó trabajo a otro el testigo pasa a Negro. Si vuelve el testigo Blanco se acaba. Si vuelve Negro puede volver a pedir. Domingo Giménez (Universidad de Murcia) Curso / 35

36 Contenido 1 Recorrido de árboles Backtracking Branch and Bound 2 Trabajadores replicados Bolsa de tareas Maestro-Esclavo Esquemas descentralizados 3 Prácticas Domingo Giménez (Universidad de Murcia) Curso / 35

37 Más ejemplos en el capítulo 6 del libro de Introducción a la Programación Paralela. Hay un ejemplo del Problema de las reinas con esquema maestro-esclavo con generación de nuevas configuraciones. También ejemplos de Backtracking en el Concurso de Programación Paralela: 2011, problema E. 2012, problema D. 2013, problemas F y G. El mismo con Memoria Compartida y Paso de Mensajes. 2014, problemas F y G. El mismo con Memoria Compartida y Paso de Mensajes. En la práctica se pedirá la implementación de alguno de ellos en OpenMP y MPI, puede que pidiendo una implementación concreta (maestro-esclavo, bolsa centralizada, asignación estática o dinámica...) o bien seleccionando el alumno la técnica a usar. Domingo Giménez (Universidad de Murcia) Curso / 35

Algoritmos en Árbol y Grafo Computación Pipeline

Algoritmos en Árbol y Grafo Computación Pipeline Metodología de la Programación Paralela 2015-2016 Facultad Informática, Universidad de Murcia Esquemas algorítmicos paralelos: Algoritmos en Árbol y Grafo Computación Pipeline Domingo Giménez (Universidad

Más detalles

Paralelismo Relajado Paralelismo Síncrono

Paralelismo Relajado Paralelismo Síncrono Metodología de la Programación Paralela Facultad Informática, Universidad de Murcia Esquemas algorítmicos paralelos: Paralelismo Relajado Paralelismo Síncrono Domingo Giménez (Universidad de Murcia) 1

Más detalles

Esquemas algorítmicos paralelos - Particionado y Paralelismo de Datos

Esquemas algorítmicos paralelos - Particionado y Paralelismo de Datos Metodología de la Programación Paralela 2015-2016 Facultad Informática, Universidad de Murcia Esquemas algorítmicos paralelos - Particionado y Paralelismo de Datos Domingo Giménez (Universidad de Murcia)

Más detalles

Esquemas algorítmicos paralelos - Particionado y Paralelismo de Datos

Esquemas algorítmicos paralelos - Particionado y Paralelismo de Datos Metodología de la Programación Paralela Facultad Informática, Universidad de Murcia Esquemas algorítmicos paralelos - Particionado y Paralelismo de Datos Domingo Giménez (Universidad de Murcia) 1 / 31

Más detalles

Divide y Vencerás Programación Dinámica

Divide y Vencerás Programación Dinámica Metodología de la Programación Paralela Facultad Informática, Universidad de Murcia Esquemas algorítmicos paralelos: Divide y Vencerás Programación Dinámica Domingo Giménez (Universidad de Murcia) 1 /

Más detalles

Heurísticas en el recorrido de árboles de soluciones

Heurísticas en el recorrido de árboles de soluciones Heurísticas en el recorrido de árboles de soluciones. Árboles de soluciones. Repaso de backtracking y branch and bound. Uso de heurísicas en backtracking 4. Uso de heurísticas en branch and bound . Árboles

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

Multiplicación de matrices dispersas

Multiplicación de matrices dispersas Multiplicación de matrices dispersas Alumno: Irene Sánchez Linares Índice Descripción del problema Representación Algoritmo secuencial Esquemas algorítmicos Elección del esquema OpenMP MPI Estudio experimental

Más detalles

ALGORITMOS Y PROGRAMACIÓN PARALELA. Esquemas de programación paralela

ALGORITMOS Y PROGRAMACIÓN PARALELA. Esquemas de programación paralela ALGORITMOS Y PROGRAMACIÓN PARALELA Esquemas de programación paralela REFERENCIAS Almeida, Giménez, Mantas, Vidal: Introducción a la. Cap 5 y 6 Wilkinson, Allen Quinn Esquemas de 1 Esquemas de algoritmos

Más detalles

PARTE II: ALGORÍTMICA

PARTE II: ALGORÍTMICA Programa de teoría Parte I. Estructuras de Datos.. Abstracciones y especificaciones.. Conjuntos y diccionarios.. Representación de conjuntos mediante árboles. 4. Grafos. Parte II. Algorítmica.. Análisis

Más detalles

Problema de las N Reinas. Resolución paralela

Problema de las N Reinas. Resolución paralela Problema de las N Reinas Resolución paralela Indice Introducción al problema Representación y Soluciones Resolución secuencial Resolución paralela Conclusiones Bibliografía 2 3 Introducción Introducción

Más detalles

UNIDAD II Metodología de programación paralela. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM

UNIDAD II Metodología de programación paralela. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM UNIDAD II Metodología de programación paralela UNIDAD II: Metodología de programación paralela Metodología de programación paralela Algunos conceptos que nos ayudarán a entender mejor el tema. Modelos

Más detalles

PARTE II: ALGORÍTMICA

PARTE II: ALGORÍTMICA PARTE II: ALGORÍTMICA 5.. Método general 5.2. Análisis de tiempos de ejecución 5.3. Ejemplos de aplicación 5.3.. Problema de la mochila 0/ 5.3.2. Problema de la asignación 5.3.3. Resolución de juegos A.E.D.

Más detalles

Teoría de Algoritmos. Capitulo 5: Algoritmos para la Exploración de Grafos.

Teoría de Algoritmos. Capitulo 5: Algoritmos para la Exploración de Grafos. Teoría de Algoritmos Capitulo 5: Algoritmos para la Exploración de Grafos. Tema 14: Backtracking y Branch and Bound Branch and Bound Problema de la Mochila Problema del Viajante de Comercio Los 15 numeros

Más detalles

Tema 07: Backtraking. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

Tema 07: Backtraking. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom Tema 07: Backtraking M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Backtraking Búsqueda en profundidad

Más detalles

Programa de teoría. Algoritmos y Estructuras de Datos II. 3. Algoritmos voraces. 1. Análisis de algoritmos 2. Divide y vencerás

Programa de teoría. Algoritmos y Estructuras de Datos II. 3. Algoritmos voraces. 1. Análisis de algoritmos 2. Divide y vencerás Programa de teoría Algoritmos y Estructuras de Datos II 1. Análisis de algoritmos 2. Divide y vencerás 3. Algoritmos voraces 4. Programación dinámica 5. Backtracking 6. Ramificación y poda A.E.D. II 1

Más detalles

Paralelismo en la ordenación por mezcla

Paralelismo en la ordenación por mezcla Paralelismo en la ordenación por mezcla Índice MergeSort secuencial. MergeSort paralelo : descomposición en tareas. Descomposición funcional. Descomposición recursiva. Descomposición de dominio. Grafo

Más detalles

Procesamiento Paralelo

Procesamiento Paralelo Procesamiento Paralelo Principios de diseño de algoritmos paralelos Javier Iparraguirre Universidad Tecnológica Nacional, Facultad Regional Bahía Blanca 11 de Abril 461, Bahía Blanca, Argentina jiparraguirre@frbb.utn.edu.ar

Más detalles

Diseño de Algoritmos Paralelos Prof. Gilberto Díaz

Diseño de Algoritmos Paralelos Prof. Gilberto Díaz Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas Diseño de Algoritmos Paralelos Prof. Gilberto Díaz gilberto@ula.ve Departamento de Computación, Escuela de Sistemas, Facultad de Ingeniería

Más detalles

PROGRAMACIÓN PARALELA. Modelos de programación paralela Paradigmas de programación paralela

PROGRAMACIÓN PARALELA. Modelos de programación paralela Paradigmas de programación paralela PROGRAMACIÓN PARALELA Modelos de programación paralela Paradigmas de programación paralela Tipos de paralelismo Paso de mensajes Paralelismo de datos Memoria compartida Paradigmas de programación paralela

Más detalles

Granularidad y latencia

Granularidad y latencia Niveles de paralelismo y latencias de comunicación Niveles de paralelismo. Granularidad o tamaño de grano. Latencia de comunicación. Particionado de los programas. Empaquetado de granos. Planificación

Más detalles

x x 2 s s= (x 1, x 2 ) ... ? (sin explorar) M= (x 1, x 2, x 3, x 4,..., x n ) valor(m) =?

x x 2 s s= (x 1, x 2 ) ... ? (sin explorar) M= (x 1, x 2, x 3, x 4,..., x n ) valor(m) =? Exploración de grafos Grafos Recorridos sobre grafos Búsqueda primero en profundidad Búsqueda primero en anchura Backtracking ( vuelta atrás ) Descripción general Espacio de soluciones Implementación Ejemplos

Más detalles

Parte de Algoritmos de la asignatura de Programación Master de Bioinformática. Búsqueda exhaustiva

Parte de Algoritmos de la asignatura de Programación Master de Bioinformática. Búsqueda exhaustiva Parte de Algoritmos de la asignatura de Programación Master de Bioinformática Búsqueda exhaustiva Web asignatura: http://dis.um.es/~domingo/algbio.html E-mail profesor: domingo@um.es Transparencias preparadas

Más detalles

a) Para calcular los órdenes sólo es necesario contar el número de veces que se pasa por el bucle más interno. El coste sería n

a) Para calcular los órdenes sólo es necesario contar el número de veces que se pasa por el bucle más interno. El coste sería n EXAMEN DE ALGORÍTMICA. Segundo Ingeniería Técnica en Informática de Gestión y de Sistemas. Diciembre 2003 1) (3 puntos) El siguiente programa obtiene la subcadena más larga de números iguales dentro de

Más detalles

Grupo de Computación Científica y Programación Paralela

Grupo de Computación Científica y Programación Paralela Grupo de Computación Científica y Programación Paralela Universidad de Murcia domingo@um.es http://dis.um.es/~domingo Reunión de proyecto de investigación, Valencia, 12-13 noviembre 2009 Contents 1 El

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

3. DISEÑO DE ALGORITMOS PARALELOS Y DISTRIBUIDOS

3. DISEÑO DE ALGORITMOS PARALELOS Y DISTRIBUIDOS 3. DISEÑO DE ALGORITMOS PARALELOS Y DISTRIBUIDOS Uno de los ingredientes más importantes para el procesamiento paralelo son sin duda los algoritmos paralelos que tienen un considerable interés en su desarrollo.

Más detalles

Diseño de algoritmos paralelos

Diseño de algoritmos paralelos Diseño de algoritmos paralelos Curso 2011-2012 Esquema del capítulo Visión general de algunos algoritmos serie. Algoritmo paralelo vs. Formulación paralela Elementos de un Algoritmo paralelo Métodos de

Más detalles

Resolución del problema. Problema: Los puntos extremos no tienen por qué ser enteros

Resolución del problema. Problema: Los puntos extremos no tienen por qué ser enteros Resolución del problema Problema: Los puntos extremos no tienen por qué ser enteros Si fueran enteros no habría problema por qué no obtener la envoltura convexa? demasiado costoso Hay unas formulaciones

Más detalles

Búsqueda en espacio de estados

Búsqueda en espacio de estados Búsqueda en espacio de estados Departamento de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Inteligencia Artificial CCIA, US Búsqueda en espacio de estados IA 1 / 35 Metodología

Más detalles

Programa de teoría. Parte I. Estructuras de Datos

Programa de teoría. Parte I. Estructuras de Datos Programa de teoría Parte I. Estructuras de Datos 1. Abstracciones y especificaciones 2. Conjuntos y diccionarios 3. Representación de conjuntos mediante árboles 4. Grafos 1. Análisis de algoritmos 2. Divide

Más detalles

Relación de Ejercicios. Programación Paralela 4º de Grado en Ingeniería Informática.

Relación de Ejercicios. Programación Paralela 4º de Grado en Ingeniería Informática. 1. Por qué el modelo de programación que se sigue al programar con MPI es independiente de la asignación? 2. Describir gráficamente una solución eficiente para realizar una operación de reducción global

Más detalles

Ampliación de Algoritmos y Estructura de Datos Curso 02/03. Ejercicios

Ampliación de Algoritmos y Estructura de Datos Curso 02/03. Ejercicios 272. En un problema determinado, una solución está dada por una tupla de n elementos (x, x 2,..., x n ). Para cada elemento existen en total m posibles valores. Comparar el número de nodos generados para

Más detalles

Problemas de programación entera: El método Ramifica y Acota. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

Problemas de programación entera: El método Ramifica y Acota. Investigación Operativa, Grado en Estadística y Empresa, 2011/12 Problemas de programación entera: El método Ramifica y Acota Prof. José Niño Mora Investigación Operativa, Grado en Estadística y Empresa, 2011/12 Esquema La estrategia Divide y vencerás Árboles de enumeración

Más detalles

METODOLOGÍA DE LA PROGRAMACIÓN PARALELA. Modelos de programación paralela Paradigmas de programación paralela

METODOLOGÍA DE LA PROGRAMACIÓN PARALELA. Modelos de programación paralela Paradigmas de programación paralela METODOLOGÍA DE LA PROGRAMACIÓN PARALELA Modelos de programación paralela Paradigmas de programación paralela Tipos de paralelismo Paso de mensajes Paralelismo de datos Memoria compartida Tipos de paralelismo

Más detalles

Ingeniería en Computación

Ingeniería en Computación Universidad Autónoma del Estado de México Centro Universitario UAEM Valle de México Ingeniería en Computación Unidad de Aprendizaje: Programación Paralela y Distribuida Tema: Introducción a los Sistemas

Más detalles

Nociones básicas de computación paralela

Nociones básicas de computación paralela Nociones básicas de computación paralela Javier Cuenca 1, Domingo Giménez 2 1 Departamento de Ingeniería y Tecnología de Computadores Universidad de Murcia 2 Departamento de Informática y Sistemas Universidad

Más detalles

Sistemas Operativos Distribuidos

Sistemas Operativos Distribuidos Contenidos del Tema Gestión de procesos Modelos de sistema Asignación de procesadores Estrategias dinámicas Estrategias estáticas Ejecución remota de procesos Modelos de sistema Organización de los procesadores

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 y Estructuras de Datos II, Grado Ingeniería Informática Examen 10 de septiembre de 2011

Algoritmos y Estructuras de Datos II, Grado Ingeniería Informática Examen 10 de septiembre de 2011 Algoritmos y Estructuras de Datos II, Grado Ingeniería Informática Examen 10 de septiembre de 2011 (OJO, se cuentan las soluciones con todo detalle para que se entienda bien, pero en el examen no hace

Más detalles

PARTE II: ALGORÍTMICA

PARTE II: ALGORÍTMICA Programa de teoría Parte I. Estructuras de Datos.. Abstracciones y especificaciones.. Conjuntos y diccionarios.. Representación de conjuntos mediante árboles. 4. Grafos. Parte II. Algorítmica.. Análisis

Más detalles

Computación de Altas Prestaciones Sistemas computacionales

Computación de Altas Prestaciones Sistemas computacionales Computación de Altas Prestaciones Sistemas computacionales Domingo Giménez Departamento de Informática y Sistemas Universidad de Murcia, Spain dis.um.es/~domingo Universidad de Murcia 1 Motivación Problemas

Más detalles

9. Programación lineal entera.

9. Programación lineal entera. 9. rogramación lineal entera. Introducción Método de ramificación y poda rogramación lineal entera Un problema de programación entera es aquel en el que alguna o todas sus variables deben tomar valores

Más detalles

Algoritmos y Estructuras de Datos Curso 06/07. Ejercicios

Algoritmos y Estructuras de Datos Curso 06/07. Ejercicios 9..En un problema de backtracking estamos interesados en almacenar de forma explícita el árbol recorrido por el algoritmo. De cada nodo del árbol sólo necesitamos saber un número, que indica el orden en

Más detalles

Tema 2. Divide y vencerás.

Tema 2. Divide y vencerás. Programa de teoría Parte I. Estructuras de Datos. 1. Abstracciones especificaciones. 2. Conjuntos diccionarios. 3. Representación de conjuntos mediante árboles. 4. Grafos. Parte II. Algorítmica. 1. Análisis

Más detalles

Cómputo paralelo con openmp y C

Cómputo paralelo con openmp y C Cómputo paralelo con openmp y C Sergio Ivvan Valdez Peña Guanajuato, México. 13 de Marzo de 2012 Sergio Ivvan Valdez Peña Cómputo Guanajuato, paralelo conméxico. openmp y () C 13 de Marzo de 2012 1 / 27

Más detalles

máx 5x 1 + 7x 2 s.a 2x 1 + x x 1 + 9x 2 41 x 1 0, x 2 0, enteras, z opt z opt 38

máx 5x 1 + 7x 2 s.a 2x 1 + x x 1 + 9x 2 41 x 1 0, x 2 0, enteras, z opt z opt 38 Programación Lineal Entera / Investigación Operativa PROBLEMAS DE INVESTIGACIÓN OPERATIVA. Hoja 4. Resuelve el siguiente problema de programación entera por el método Branch and Bound: máx 5x + 7x s.a

Más detalles

Búsqueda en espacio de estados

Búsqueda en espacio de estados Búsqueda en espacio de estados Departamento de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Abstracción Problema Representación como espacio de estados Implementación del

Más detalles

Tema: Programación Dinámica.

Tema: Programación Dinámica. Programación IV. Guía No. 12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Programación Dinámica. Objetivos Específicos Definir el concepto de programación dinámica. Interpretar

Más detalles

Introducción a las RdP. Optimización basada en redes de Petri. Redes de Petri. Son objeto de estudio: RdP. Ejemplos:

Introducción a las RdP. Optimización basada en redes de Petri. Redes de Petri. Son objeto de estudio: RdP. Ejemplos: Seminario sobre toma de decisiones en logística y cadenas de suministro Introducción a las RdP Optimización basada en redes de Petri https://belenus.unirioja.es/~emjimene/optimizacion/transparencias.pdf

Más detalles

Tema 2, 3 y 4 GRUPO 82 - INGENIERÍA INFORMÁTICA. Bernardo D Auria. 3 Diciembre Departamento de Estadística. Universidad Carlos III de Madrid

Tema 2, 3 y 4 GRUPO 82 - INGENIERÍA INFORMÁTICA. Bernardo D Auria. 3 Diciembre Departamento de Estadística. Universidad Carlos III de Madrid Bernardo D Auria Departamento de Estadística Universidad Carlos III de Madrid GRUPO 82 - INGENIERÍA INFORMÁTICA Diciembre 2008 Ejercicio T2-JN12 Comprueba que el problema lineal min x x 1 + x 2 2x x +

Más detalles

Depto. Sistemas I.O. y Computación. informáticos y Computación Univ. La Laguna

Depto. Sistemas I.O. y Computación. informáticos y Computación Univ. La Laguna Sobre el papel de la programación paralela en los nuevos planes de estudios de informática Francisco Almeida Domingo Giménez José M. Mantas Antonio M. Vidal Depto. Estadística, Depto. Informática y Depto.

Más detalles

Tema: Programación Dinámica.

Tema: Programación Dinámica. Programación IV. Guía 11 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Programación Dinámica. Objetivos Específicos Definir el concepto de programación dinámica. Interpretar

Más detalles

Lusitania. Pensando en Paralelo. César Gómez Martín

Lusitania. Pensando en Paralelo. César Gómez Martín Lusitania Pensando en Paralelo César Gómez Martín cesar.gomez@cenits.es www.cenits.es Esquema Introducción a la programación paralela Por qué paralelizar? Tipos de computadoras paralelas Paradigmas de

Más detalles

Tema 2. Metodología de diseño de algoritmos paralelos

Tema 2. Metodología de diseño de algoritmos paralelos Tema 2. Metodología de diseño de algoritmos paralelos CONTENIDOS 1 Descomposición en tareas Conceptos previos Técnicas de descomposición 2 El problema de la asignación. Objetivos Estrategias generales

Más detalles

Algoritmos y Estructuras de Datos Curso 04/05. Ejercicios

Algoritmos y Estructuras de Datos Curso 04/05. Ejercicios 0. En un problema determinado, una solución está dada por una tupla de n elementos (x, x,..., x n ). Para cada elemento existen en total m posibles valores. Comparar el número de nodos generados para resolver

Más detalles

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD CIENCIAS DE LA COMPUTACION

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD CIENCIAS DE LA COMPUTACION BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD CIENCIAS DE LA COMPUTACION PROGRAMA DE LA MATERIA CORRESPONDIENTE A LA LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN. Coordinación: NOMBRE DE LA MATERIA:

Más detalles

1. Método general. 2. Análisis de tiempos de ejecución. 3. Ejemplos de aplicación Problema de las 8 reinas Problema de la mochila 0/1.

1. Método general. 2. Análisis de tiempos de ejecución. 3. Ejemplos de aplicación Problema de las 8 reinas Problema de la mochila 0/1. Backtracking. Método general. 2. Análisis de tiempos de ejecución. 3. Ejemplos de aplicación. 3.. Problema de las 8 reinas. 3.2. Problema de la mochila 0/. Método general El backtracking (método de retroceso

Más detalles

Cilk. Un entorno de programación paralela. Tomás Muñoz Rodríguez < > 17 de noviembre de 2011

Cilk. Un entorno de programación paralela. Tomás Muñoz Rodríguez < > 17 de noviembre de 2011 Un entorno de programación paralela Tomás Muñoz Rodríguez < tomas.munoz@um.es > 17 de noviembre de 2011 Profesor: Domingo Jiménez Cánovas Asignatura: Metodología de la Programación Paralela Facultad de

Más detalles

Algoritmo de ramificación y acotación

Algoritmo de ramificación y acotación Algoritmo de ramificación y acotación Investigación Operativa Ingeniería Técnica en Informática de Gestión UC3M Curso 08/09 Descripción de los objetivos En esta práctica desarrollaremos el algoritmo de

Más detalles

RELACIÓN DE PROBLEMAS DE CLASE DE PROGRAMACIÓN LINEAL ENTERA

RELACIÓN DE PROBLEMAS DE CLASE DE PROGRAMACIÓN LINEAL ENTERA RELACIÓN DE PROBLEMAS DE CLASE DE PROGRAMACIÓN LINEAL ENTERA SIMPLEX Y LINEAL ENTERA a Resuelve el siguiente problema con variables continuas positivas utilizando el método simple a partir del vértice

Más detalles

Capítulo 6: EVALUACIÓN Y COMPARACIÓN DE MÉTODOS

Capítulo 6: EVALUACIÓN Y COMPARACIÓN DE MÉTODOS Capítulo 6: EVALUACIÓN Y COMPARACIÓN DE MÉTODOS En este capítulo, se realiza la evaluación y comparación de los métodos de paralelización de recurrencias descritos y propuestos en este trabajo. Los resultados

Más detalles

Aproximaciones a problemas NP duros: Algoritmos heurísticos y aproximados

Aproximaciones a problemas NP duros: Algoritmos heurísticos y aproximados Aproximaciones a problemas NP duros: Algoritmos heurísticos y aproximados Algoritmos aproximados Decimos que H es un algoritmo ε- aproximado para el problema Π si para algún ε > 0 x H (I) - x*(i) ε x*(i)

Más detalles

Algoritmos paralelos para la Multiplicación de Matrices

Algoritmos paralelos para la Multiplicación de Matrices Introducción Paralelizar onclusiones Trabajo ibliografía lgoritmos paralelos para la Multiplicación de Matrices Universidad de Murcia - UM 18 de diciembre de 2008 Introducción Paralelizar onclusiones Trabajo

Más detalles

Programación II. Mario Aldea Rivas Programación II 16/05/11 1

Programación II. Mario Aldea Rivas Programación II 16/05/11 1 Programación II Bloque temático 1. Lenguajes de programación Bloque temático 2. Metodología de programación Bloque temático. Esquemas algorítmicos Tema 4. Introducción a los Algoritmos Tema 5. Algoritmos

Más detalles

Parte de Algoritmos de la asignatura de Programación Master de Bioinformática. Grafos

Parte de Algoritmos de la asignatura de Programación Master de Bioinformática. Grafos Parte de Algoritmos de la asignatura de Programación Master de Bioinformática Grafos Web asignatura: http://dis.um.es/~domingo/algbio.html E-mail profesor: domingo@um.es Transparencias preparadas a partir

Más detalles

ÍNDICE INTRODUCCIÓN...13

ÍNDICE INTRODUCCIÓN...13 ÍNDICE INTRODUCCIÓN...13 CAPÍTULO 1. LENGUAJE ALGORÍTMICO...15 1.1 DEFINICIÓN DE ALGORITMO...16 1.2 LA ROTACIÓN DE UNA LISTA DE NÚMEROS NATURALES...20 1.3 CUESTIONES...23 1.3.1 Dos comerciales en el restaurante...23

Más detalles

Programación Lineal Entera. Programación Entera

Programación Lineal Entera. Programación Entera Programación Lineal Entera PE Programación Entera Modelo matemático, es el problema de programación lineal Restricción adicional de variables con valores enteros. Programación entera mita Algunas variables

Más detalles

CAPÍTULO 4 PROGRAMACIÓN LINEAL ENTERA

CAPÍTULO 4 PROGRAMACIÓN LINEAL ENTERA CAPÍTULO 4 PROGRAMACIÓN LINEAL ENTERA Programación Lineal Entera Es una técnica que permite modelar y resolver problemas cuya característica principal es que el conjunto de soluciones factibles es discreto.

Más detalles

Tema 6: Gestión de la Entrada/Salida

Tema 6: Gestión de la Entrada/Salida Tema 6: Gestión de la Entrada/Salida SSOO - Curso 2005/06 E. Domínguez C. Villarrubia Departamento de Tecnologías y Sistemas de Información Escuela Superior de Informática Universidad de Castilla - La

Más detalles

COMPARACIÓN DE MODELOS DE SINCRONIZACIÓN EN PROGRAMACIÓN PARALELA SOBRE CLUSTER DE MULTICORES

COMPARACIÓN DE MODELOS DE SINCRONIZACIÓN EN PROGRAMACIÓN PARALELA SOBRE CLUSTER DE MULTICORES COMPARACIÓN DE MODELOS DE SINCRONIZACIÓN EN PROGRAMACIÓN PARALELA SOBRE CLUSTER DE MULTICORES Autor: A.P.U. Enzo Rucci Director: Ing. Armando E. De Giusti Co-Director: Lic. Franco Chichizola Tesina de

Más detalles

PROGRAMA DE ESTUDIO Área de Formación : Fecha de elaboración: 28 de mayo de 2010 Fecha de última actualización:

PROGRAMA DE ESTUDIO Área de Formación : Fecha de elaboración: 28 de mayo de 2010 Fecha de última actualización: PROGRAMA DE ESTUDIO Programa Educativo: Área de Formación : Licenciatura en Sistemas Computacionales Integral profesional Horas teóricas: 2 Horas prácticas: 2 Total de Horas: 4 Cómputo paralelo Total de

Más detalles

Computación Matricial y Paralela

Computación Matricial y Paralela Computación Matricial y Paralela Programación en Memoria Compartida Javier Cuenca Dpto. de Ingeniería y Tecnología de Computadores Domingo Giménez Dpto. de Informática y Sistemas Universidad de Murcia

Más detalles

Tema 6: Gestión de la Entrada/Salida

Tema 6: Gestión de la Entrada/Salida Tema 6: Gestión de la Entrada/Salida SSOO - Curso 2005/06 E. Domínguez C. Villarrubia Departamento de Tecnologías y Sistemas de Información Escuela Superior de Informática Universidad de Castilla - La

Más detalles

Paralelismo _Arquitectura de Computadoras IS603

Paralelismo _Arquitectura de Computadoras IS603 Paralelismo _Arquitectura de Computadoras IS603 INTRODUCCION El objetivo de esta investigación, es conceptualizar las diferentes tipos de paralelismo referente al área de Arquitectura de Computadoras,

Más detalles

Programación II. Mario Aldea Rivas Programación II 04/04/11 1. Mario Aldea Rivas Programación II 04/04/11 2

Programación II. Mario Aldea Rivas Programación II 04/04/11 1. Mario Aldea Rivas Programación II 04/04/11 2 Programación II Bloque temático 1. Lenguajes de programación Bloque temático 2. Metodología de programación Bloque temático 3. Esquemas algorítmicos Tema 5. Algoritmos voraces, heurísticos y aproximados

Más detalles

Estructuras de Datos y Algoritmos: Boletín de Problemas del segundo parcial

Estructuras de Datos y Algoritmos: Boletín de Problemas del segundo parcial Estructuras de Datos y Algoritmos: Boletín de Problemas del segundo parcial (Facultad de Informática) Curso 00 0 Estructuras de Datos y Algoritmos (FI-UPV) Curso 00 0 Árboles. Si la acción P fuera escribir

Más detalles

Pertinencia de la enseñanza del cómputo paralelo en el currículo de las ingenierías. Proyecto PAPIME PE104911

Pertinencia de la enseñanza del cómputo paralelo en el currículo de las ingenierías. Proyecto PAPIME PE104911 Back tracking(o búsqueda atrás) es una técnica de programación para hacer búsqueda sistemática a través de todas las configuraciones posibles dentro de un espacio de búsqueda. Para lograr esto, los algoritmos

Más detalles

GRADUADO EN INGENIERÍA DE COMPUTADORES - FICHA TÉCNICA

GRADUADO EN INGENIERÍA DE COMPUTADORES - FICHA TÉCNICA GRADUADO EN INGENIERÍA DE COMPUTADORES - FICHA TÉCNICA DATOS DESCRIPTIVOS ASIGNATURA: Procesamiento Paralelo Nombre en inglés: Parallel Processing MATERIA: Algorítmica y complejidad Créditos Europeos:

Más detalles

José Matías Cutillas Lozano PROGRAMACIÓN PARALELA Y COMPUTACIÓN DE ALTAS PRESTACIONES

José Matías Cutillas Lozano PROGRAMACIÓN PARALELA Y COMPUTACIÓN DE ALTAS PRESTACIONES José Matías Cutillas Lozano PROGRAMACIÓN PARALELA Y COMPUTACIÓN DE ALTAS PRESTACIONES MÁSTER EN NUEVAS TECNOLOGÍAS EN INFORMÁTICA Diciembre 2010 Introducción Por qué utilizar Matlab paralelo? MATLAB es

Más detalles

TEMA 1. INTRODUCCIÓN A LA PROGR. DISTRIBUIDA Y PARALELA

TEMA 1. INTRODUCCIÓN A LA PROGR. DISTRIBUIDA Y PARALELA Relación de Ejercicios Programación Distribuida y Paralela. 4 o de Ingeniería Superior en Informática. Departamento de Lenguajes y Sistemas Informáticos TEMA 1. INTRODUCCIÓN A LA PROGR. DISTRIBUIDA Y PARALELA

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

Estructura de Datos. Temario Unidad VI. Árboles Árboles Binarios

Estructura de Datos. Temario Unidad VI. Árboles Árboles Binarios Estructura de Datos Árboles Árboles Binarios Temario Unidad VI 6.1 Definición y operaciones 6.2 Implementación 6.3 Recorrido en Árboles Binarios 6.4 Árboles AVL y su implementación 6.5 Árboles n-arios

Más detalles

ASIGNATURA: (TIS-106) Estructuras de Datos II DOCENTE: Ing. Freddy Melgar Algarañaz TEMA 4. Montículos binarios (heaps)

ASIGNATURA: (TIS-106) Estructuras de Datos II DOCENTE: Ing. Freddy Melgar Algarañaz TEMA 4. Montículos binarios (heaps) TEMA 4. Montículos binarios (heaps) Veamos otro tipo especial de árbol binario, los llamados heaps (montículos), que se pueden representar eficazmente con un vector. Definición: un montículo de máximos

Más detalles

RESOLUCIÓN DE MODELOS DE PROGRAMACIÓN ENTERA

RESOLUCIÓN DE MODELOS DE PROGRAMACIÓN ENTERA 11 de Junio de 2012 RESOLUCIÓN DE MODELOS DE PROGRAMACIÓN ENTERA MÉTODOS DE ENUMERACIÓN, RAMIFICACIÓN Y ACOTACIÓN Postgrado de Investigación de Operaciones Facultad de Ingeniería Universidad Central de

Más detalles

Análisis Post Optimal y Algoritmo de Ramificación y Acotamiento

Análisis Post Optimal y Algoritmo de Ramificación y Acotamiento Universidad de Chile Facultad de Ciencias Físicas y Matemáticas Departamento de Ingeniería Industrial IN34A: Clase Auxiliar Análisis Post Optimal y Algoritmo de Ramificación y Acotamiento Marcel Goic F.

Más detalles

Práctica N o 8 Desigualdades Válidas - Algoritmos de Planos de Corte - Algoritmos Branch & Cut

Práctica N o 8 Desigualdades Válidas - Algoritmos de Planos de Corte - Algoritmos Branch & Cut Práctica N o 8 Desigualdades Válidas - Algoritmos de Planos de Corte - Algoritmos Branch & Cut 8.1 Para cada uno de los siguientes conjuntos, encontrar una desigualdad válida que agregada a la formulación

Más detalles

Programa de teoría. Algoritmos y Estructuras de Datos II. 2. Divide y vencerás. 1. Análisis de algoritmos

Programa de teoría. Algoritmos y Estructuras de Datos II. 2. Divide y vencerás. 1. Análisis de algoritmos Programa de teoría Algoritmos y Estructuras de Datos II 1. Análisis de algoritmos 2. Divide y vencerás 3. Algoritmos voraces 4. Programación dinámica 5. Backtracking 6. Ramificación y poda A.E.D. II 1

Más detalles

Algoritmos en paralelo para una variante del problema bin packing

Algoritmos en paralelo para una variante del problema bin packing Algoritmos en paralelo para una variante del problema bin packing Proyecto : 542-144-261 MSc. Geovanni Figueroa M. MSc. Ernesto Carrera R. Instituto Tecnológico de Costa Rica Vicerrectoría de Investigación

Más detalles

Redes (IS20) Ingeniería Técnica en Informática de Sistemas. CAPÍTULO 5: Subcapa de acceso al medio

Redes (IS20) Ingeniería Técnica en Informática de Sistemas.  CAPÍTULO 5: Subcapa de acceso al medio Redes (IS20) Ingeniería Técnica en Informática de Sistemas http://www.icc.uji.es CAPÍTULO 5: Subcapa de acceso al medio ÍNDICE Curso 2002-2003 - Redes (IS20) -Capítulo 5 1 Tipos de redes: de difusión y

Más detalles

Métodos de Optimización para la toma de decisiones

Métodos de Optimización para la toma de decisiones Facultad de Ingeniería Departamento de Ciencias de la Ingeniería Magíster en Logística y Gestión de Operaciones Métodos de Optimización para la toma de decisiones MLG-521 Programación Entera 1º Semestre

Más detalles

Análisis de algoritmos paralelos

Análisis de algoritmos paralelos METODOLOGÍA DE LA PROGRAMACIÓN PARALELA Análisis de algoritmos paralelos REFERENCIAS La mayoría de los libros de la bibliografía, en particular: Foster, cap 3 Kumar, Grama, Gupta, Karypis, cap 4 Wilkinson,

Más detalles

Casos especiales de la P. L.

Casos especiales de la P. L. Casos especiales de la P. L. Programación Lineal Entera Un modelo de programación lineal que no acepta soluciones fraccionales. En este caso, la formulación es similar a la de un problema general de programación

Más detalles

Universidad Nacional Autónoma de México Instituto de Geofísica

Universidad Nacional Autónoma de México Instituto de Geofísica Universidad Nacional Autónoma de México Instituto de Geofísica Aplicación del Cómputo Paralelo a la Modelación de Sistemas Continuos en Ciencias e Ingeniería Presentan: Antonio Carrillo Ledesma Ismael

Más detalles

Antonio Carrillo Ledesma Ismael Herrera Revilla

Antonio Carrillo Ledesma Ismael Herrera Revilla Universidad Nacional Autónoma de México Instituto de Geofísica Aplicación del Cómputo Paralelo a la Modelación de Sistemas Continuos en Ciencias e Ingeniería Mediante el Método FETI Dual-Primal Presentan:

Más detalles

Taller de Programación Paralela

Taller de Programación Paralela Taller de Programación Paralela Departamento de Ingeniería Informática Universidad de Santiago de Chile April 17, 2008 Motivación Programar aplicaciones paralelas no es una tarea trivial. Paralelismo

Más detalles

Inteligencia Artificial I

Inteligencia Artificial I Ingeniería en Sistemas Computacionales Inteligencia Artificial I Rafael Rivera López Departamento de Sistemas y Computación 1 Ago-Dic 2008 Veracruz, Ver. Unidad IV Técnicas de Búsqueda y Satisfacción de

Más detalles