PUC-Rio
Departamento de Informática
Prof. Marcus Vinicius S. Poggi de Aragão
Período: 2001.1
6 de junho de 2001
Horário: 3as-feiras e 5as-feiras de 16 às 18 horas
Estruturas Discretas (INF 1631)
1o Trabalho de Implementação
Este trabalho deve ser entregue em papel e em meio magnético.
-
(3.0) Seja um grafo conexo G=(V,E), não-orientado, e we, para e Î E os
pesos associados às arestas de G. Seja o problema de encontrar a árvore geradora de
peso máximo de G que contém o vértice 1 Î V e o teorema abaixo.
Teorema 1 (K):
Sabe-se encontrar a árvore de peso máximo de G=(V,E) que contém o
vértice 1 e possui K vértices.
-
Prove este teorema por indução simples.
- Apresente o algoritmo correspondente.
- Escreva seu código explicitando
os trechos do mesmo que contém a prova (cada um dos seus passos) do
caso base e do passo indutivo, a prova garante a corretude do seu algoritmo.
- Teste seu algoritmo em no mínimo 10 instâncias diferentes do problema
(estas estarão disponíveis na página). Teste em uma instância pequena, desenhe o
grafo e mostre que o seu código encontrou uma solução correta.
- (3.0) Considere um grafo não-orientado G=(V,E).
Seja o problema de encontrar um CONJUNTO INDEPENDENTE maximal.
Um conjunto independente C Í V, é um conjunto de vértices tal que
para qualquer par de vértices v e w em C, (v,w) ÏE. Isto é,
um conjunto independente é um subgrafo sem arestas.
Teorema 2 (K):
Sabe-se obter uma conjuno independente MAXIMAL de GK=(VK,EK), onde
VK={1, 2, ..., K } e EK={ (u,w) | u Î VK Ù w Î VK }.
-
Prove este teorema por indução simples. Argumente porque essa
prova garante que o novo conjunto encontrado é maximal.
- Apresente o algoritmo correspondente.
- Escreva seu código explicitando
os trechos do mesmo que contém a prova (cada um dos seus passos) do
caso base e do passo indutivo, a prova garante a corretude do seu algoritmo.
- Teste seu algoritmo em no mínimo 10 instâncias diferentes do problema
(estas estarão disponíveis na página). Teste em uma instância pequena, desenhe o
grafo e mostre que o seu código encontrou uma solução correta.
- (4.0) Considere que você possui um caminhão com capacidade para transportar
P quilos. Sua missão é retirar de um armazém um grupo de objetos cujo peso total
não excede a capacidade do caminhão (P) e cujo valor total é o maior possível.
Você possui uma lista de todos os objetos do armazém, os objetos em N={1,2, ...,n},
onde para cada objeto i é apresentado seu peso em quilos wi (wi é um inteiro
positivo) e seu valor vi. Seja o teorema abaixo.
Teorema 3 (K):
Sabe-se obter um subconjunto SK(u) de NK={1, 2, ..., K } e seu valor total
VK(u) tal que VK(u) é máximo, onde u é o peso total dos objetos em SK(u),
para u=0, 1, ..., P; isto é, para cada peso possível de estar no caminhão.
-
Prove este teorema por indução simples. Argumente porque essa
prova garante que o novo conjunto encontrado é maximal.
- Apresente o algoritmo correspondente.
- Escreva seu código explicitando
os trechos do mesmo que contém a prova (cada um dos seus passos) do
caso base e do passo indutivo, a prova garante a corretude do seu algoritmo.
- Teste seu algoritmo em no mínimo 10 instâncias diferentes do problema
(estas estarão disponíveis na página). Teste em uma instância pequena, mostrando
que o seu código encontrou uma solução correta.
This document was translated from LATEX by HEVEA.