Técnicas Avanzadas de Programación Tarea #3. Algoritmos de Grafos Fecha de Entrega: Jueves 17 de Diciembre de 2015

Documentos relacionados
Grafos. Suponiendo que e = [u, v]. Entonces los nodos u y v se llaman extremos de e y u y v se dice que son nodos adyacentes o vecinos.

A B MIN C D E F MAX x E.T.S.I. INFORMÁTICA 4º CURSO. INTELIGENCIA ARTIFICIAL E INGENIERÍA DEL CONOCIMIENTO

Formulación del problema de la ruta más corta en programación lineal

MATEMÁTICAS PARA LA COMPUTACIÓN

Capítulo 6. Relaciones. Continuar

300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos

18º Competencia de MateClubes Ronda Final Nivel 1

TEMA 5 El tipo grafo. Tipo grafo

Este material es de uso exclusivo para clase de algoritmos y estructura de datos, la información de este documento fue tomada textualmente de varios

PRÁCTICA #6 TIPOS DE DATOS ESTRUCTURADOS: Arreglos, Registros y Archivos

OLIMPÍADA JUVENIL DE MATEMÁTICA 2015 CANGURO MATEMÁTICO PRIMER AÑO

3.2. MANEJO DEL ENTORNO

Árboles. Un grafo no dirigido es un árbol si y sólo si existe una ruta unica simple entre cualquiera dos de sus vértices.

Nuevas tecnologías de la programación Práctica 3: Juego del comecocos en Java (curso )

DESPLAZAMIENTO POR LA HOJA DE CÁLCULO

Programación 1 Grado de ingeniería Robótica

Fundamentos de Investigación de Operaciones Modelos de Grafos

9.1. Insertar filas en una hoja

Grafos Los siete puentes de Königsberg: Teoría de Grafos

(b) Cuál es la desventaja principal de una heurística con aprendizaje? es más informada que otra función heurística optimista h 2 *?

Capítulo 4. Tablas. Continuar

PERIODO 3 HOJA DE CÁLCULO CONCEPTOS INTERMEDIOS OPERACIONES CON CELDAS, FILAS Y COLUMNAS EN EXCEL SELECCIONAR COPIAR MOVER BORRAR

Grafos y Redes. 3. Resolución: Dibujar el camino sin levantar el lápiz y pasando sólo una vez por cada arco o arista.

Ejemplo de formato condicional según contenido de la celda

El determinante de una matriz se escribe como. Para una matriz, el valor se calcula como:

Lenguajes de Programación

PRÁCTICA No. 9 RECORRIDOS EN ÁRBOLES BINARIOS

Inteligencia Artificial II Unidad Plan 2010-Ingeniería en Sistemas Computacionales

GRAFOS. Prof. Ing. M.Sc. Fulbia Torres

Algoritmos. Autor: José Ángel Acosta Rodríguez

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Esquema de cifrado DES

Los elementos de una lista unidireccional o secuencia, llamados nodos, constan de dos partes:

Matemáticas Discretas Tc1003 Teoría de Grafos

PRÁCTICAS DE EXCEL PARTE 1

Es un conjunto de objetos llamados vértices o nodos unidos por enlaces llamados aristas o arcos, que permiten representar relaciones binarias entre

Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Organización y Estructura del Computador II Semestre I-2014.

LA DUALIDAD PAR-IMPAR. 1. En una reunión de 25 personas. Puede ser que cada una se salude dándose la mano con todas las demás excepto con una?

Algebra Matricial y Teoría de Grafos

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

Algoritmos y Estructuras de Datos Curso 06/07. Ejercicios

Operaciones combinadas

Trabajo Práctico 5 Estructura Repetitiva

1. Diseñe algoritmos que permitan resolver eficientemente el problema de la mochila 0/1 para los siguientes casos:

El Juego como Problema de Búsqueda

Maribel Martínez y Ginés Ciudad-Real Fichas para mejorar la atención MATRIZ DE LETRAS

Trabajo Práctico N 3. Procesador de textos: MS Word 2010

FABRICA TU TABLERO. Consigue: - Cartulina quadrada de 40 cms de lado. - Regla de por lo menos 5 cms. - Lápiz.

Ejemplo: El problema de la mochila. Algoritmos golosos. Algoritmos y Estructuras de Datos III. Segundo cuatrimestre 2013

Tema 4: Redes y flujos

(e) Con la poda alfa-beta se eliminan nodos que nunca serán alcanzados

Longitud Lado 1 Longitud Lado 2 Perímetro Área. En base a lo anterior, Cuál es la decisión que debe tomar Romualdo?

Propósito: Reconocer, en Ms-Excel, el direccionamiento de Celdas y Rangos por referencias y practicar en su aplicación.

Proyecto 2: recorridos sobre grafos y componentes conexas

Autómatas Deterministas. Ivan Olmos Pineda

Procesos estocásticos Cadenas de Márkov

Grafos. Amalia Duch Brown Octubre de 2007

Matrices. Ejercicio 1. Dada la matriz A = 2. completa: a 11 =, a 31 =, a 23 =, = 3, = 2, = 7.

Propiedades de lenguajes independientes del contexto

Inicio del programa. Entrada de datos. Proceso de datos. Salida de datos. Fin del programa

ICM Fundamentos de Computación

VARIABLES LOCALES Y VARIABLES GLOBALES

(d) Puede haber estrategias que funcionan mejor que Minimax si el contrincante es

1. GRAFOS : CONCEPTOS BASICOS

Aplicación del algoritmo PRM a la planificación de caminos de robots móviles. David Alejo Teissière

CESDE ESCUELA DE INFORMÁTICA TALLER DE CONOCIMIENTO HOJA DE CALCULO EXCEL - MOMENTO 1

1. Nueva rejilla de datos

Metaheurísticas y heurísticas. Algoritmos y Estructuras de Datos III

Tablas. Una tabla se utiliza para ordenar los datos. Facilita y agiliza la lectura.

Análisis de Presupuestos, Herramientas de Análisis Y Si

INSTRUMENTACIÓN N AVANZADA. ARRAYS EN LABVIEW Relacionando Datos Arrays y Clusters

Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap)

Departamento de Tecnologías de la Información. Tema 4. Máquinas de Turing. Ciencias de la Computación e Inteligencia Artificial

ALGORITMO MINIMAX. o Nodo: Representa una situación del juego. o Sucesores de un nodo: Situaciones del juego a las que se

INSTITUCIÓN EDUCATIVA JOSÉ EUSEBIO CARO ÁREA DE TECNOLOGÍA E INFORMÁTICA 2016 DOCENTE JESÚS EDUARDO MADROÑERO RUALES GRADO OCTAVO TEMA

PRÁCTICAS DE OPENOFFICE CALC

APRENDIENDO EXCEL Tema 1

Convertir un AFND a un AFD

Guardar en formato de Microsoft Word

Apuntes elaborados por: Aaron Asencio, Eduardo Quevedo, Raquel López Revisado por: Javier Miranda el???

Fundamentos de programación JAVA

Problemas de Recursividad

6.1.- Introducción a las estructuras de datos Tipos de datos Arrays unidimensionales: los vectores Operaciones con vectores.

Laboratorio de Visión para Robots. Práctica 2

En esta lección vamos a ver más utilidades y opciones sobre la

El TAD Grafo. El TAD Grafo

Teoría de grafos y optimización en redes

PRACTICAS DE OPENOFFICE CALC Práctica 1

Universidad de Cantabria. Facultad de Ciencias Ingeniería en Informática. Ingeniería del Software II

Existen diferentes recursos interactivos que han sido utilizados para la enseñanza

MICROSOFT EXCEL PARA DIRECCIÓN FINANCIERA I. 1. Resolución de problemas de simulación de Montecarlo mediante el uso de la hoja de cálculo.

Visión artificial y Robótica Modelos de movimiento y mapas. Depto. de Ciencia de la Computación e Inteligencia Artificial

16 Análisis sintáctico I

Conceptos básicos útiles. PF-5028 Minería de datos Prof. Braulio José Solano Rojas UCR

Concurso de laberinto A Coruña, 7 de noviembre

A continuación se describen cuáles son los elementos principales de las tablas, cómo crear una y cómo modificarla.

Relaciones. Estructuras Discretas. Relaciones. Relaciones en un Conjunto. Propiedades de Relaciones en A Reflexividad


A5 Introducción a la optimización en redes

BC3 FORMACIÓN EXCEL 2010

Transcripción:

UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE COMPUTACIÓN Técnicas Avanzadas de Programación Tarea #3. Algoritmos de Grafos Fecha de Entrega: Jueves 17 de Diciembre de 2015 Esta tarea consta de dos problemas que deberán ser resueltos por Ud. 1. Parte A Una forma de crear un laberinto aleatorio es modificando un DFS. La idea es inicialmente suponer que se tiene un grafo en donde cada posición del laberinto es un vértice del grafo. Suponiendo inicialmente que no hay paredes en el laberinto, cada vértice tendrá a lo sumo 4 vecinos, como se muestra en la Figura??. Figura 1: Grafo inicial para un laberinto de 4 4 Ahora bien, si se hace un recorrido DFS del grafo, pero usando direcciones aleatorias en lugar de usar siempre el mismo patrón de direcciones, es posible crear un árbol parecido al de la Figura?? Figura 2: Posible recorrido DFS aleatorio 1

Luego, a partir de ese recorrido es posible remover todos los arcos que no generaron una visita a un nodo, para de esta forma obtener el laberinto que se observa en la Figura??. Figura 3: Izquierda: Grafo obtenido. Derecha: Laberinto equivalente Su programa deberá tener como entrada dos enteros N, M que representan las dimensiones del laberinto. La salida debe ser una represetnación gráfica del laberinto usando el formato de Portable Bitmap (pbm) que puede ser leído por programas de edición de imágenes como GIMP o Photoshop. El formato pbm es bastante conveniente ya que en su versión más sencilla maneja imágenes en blanco y negro en formato de texto (no binario). Una forma de generar esta imagen es pensar que cada vértice del grafo está rodeado de máximo 4 paredes, pero si existe un arco entre un par de vértices es necesario remover una de las paredes. El formato de archivos pbm es el siguiente: P1 M N Fila 1... Fila i... Fila N En donde P1 es literalmente el string P1. M y N son el número de columnas y filas de la imagen. Habrán N filas cada una de las cuales tendrá un número 0 o 1. Un ejemplo de un posible archivo pbm es el siguiente (puede copiarlo en un archivo de texto con extensión pbm y abrirlo con GIMP o Photoshop): P1 5 4 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 2

La Figura?? muestra un ejemplo de un laberinto generado con el método anterior. Es importante resaltar que deben evitarse caminos muy cortos que hacen que el laberinto no sea visualmente agradable, como se muestra en la Figura??. Figura 4: Laberinto de 20 20 Figura 5: Laberinto de 20 20 con caminos muy cortos 2. Parte B Pedro tiene dos robots controlados con control remoto, pero únicamente un control remoto. Suponga que los robots están en un tablero de N N celdas y se 3

desea llevarlos a las posiciones a y b del tablero. El control remoto únicamente permite girar a la izquierda o a la derecha 90, o avanzar un paso hacia adelante, pero como hay un solo control remoto, cada vez que hagas un movimiento ambos robots lo harán. Por ejemplo, en la Figura 1, la imagen de la izquierda muestra la situación inicial. La flecha que apunta a la derecha es un robot de cara al este, y la flecha apuntando hacia arriba es un robot apuntando hacia el norte. Las posiciones a y b son los destinos de los robots. La imagen del centro muestra el resultado luego de mover un paso hacia adelante. La imagen de la derecha muestra el resultado luego de girar los robots a la izquierda. Figura 6: Movimiento de los robots. Las celdas grises son paredes Ahora Pedro desea que lo ayudes a calcular el número mínimo de movimientos necesarios para llevar a los robots desde sus posiciones originales hasta sus destinos finales. Si a un robot se le ordena moverse hacia una pared el no lo hará (recuerde que son robots, no fantasmas). Si les ordena a los dos robots que caminen a la misma posiciíon tampoco lo harán (de nuevo, no son fantasmas). Refiérase a la Figura 2 para más información. En la imagen de la izquierda los robots pueden llegar a sus destinos en tres movimientos, aunque uno de los robots no se mueve en todos esos pasos. La imagen de la derecha muestra una situaciíon en la que los robots no pueden avanzar ya que ocuparían la misma posición. Nótese que pueden haber paredes dentro del tablero. Los robots no pueden moverse dentro de una pared o fuera del tablero. Entrada La entrada debe ser leída por la entrada estándar (stdin). La entrada consiste de varios casos. La primera línea de cada caso comuienza con un entero N que indica el tamaño del tablero (N N), 2 N 50. Las siguientes N líneas describen el tablero, y contienen N caracteres cada una. Un. indica una celda vacía, un N, E, S o O indica la posición original del robot, de cara al Norte, Este, Sur u Oeste respectivametne; una D indica un destino para un robot (cualquiera de los robots), y * indica una pared. La entrada culminará con un caso donde N = 0. Ejemplo: 4

Figura 7: Algunas situaciones especiales 5 D... N...S *...*...D 5 S..S. D..D. 3 SN. ***.DD 0 Salida La salida debe ser escrita por la salida estándar (stdout). Para cada caso de la entrada, imprima una línea con un entero indicando el mínimo número de movimientos necesarios para mover los robots a sus destinos. Imprima 1 si no hay forma de lograr que los robots lleguen a sus destinos. Ejemplo para la entrada anterior: 8 3-1 Esta tarea puede implementarse usando los lenguajes C, C++ o Java. Debe en- 5

tregar el o los archivos fuente. Esta tarea puede hacerse en equipos de 2 personas.la tarea debe ser enviada a tapucv@gmail.com. El asunto del correo debe ser: [TAP-T4-CI1.CI2]. Por ejemplo, si la tarea es entregada por alguien con cédula 66.334.333, el asunto del correo debe ser: [TAP-T4-66334333]. En caso de que sean dos cédulas estas deben separarse por un punto: [TAP-T4-66334333.44345665]. GDTAP 6