Você está na página 1de 9

UFERSA / UERN – ppgCC-2022.

2
Disciplina: Projeto e Análise de Algoritmo – PAA
Docentes: Dario Aloise / Heitor Liberalino
Discente: Robson Pires Borges – 13/12/2022

LISTA DE EXERCÍCIOS - PAA

USANDO O ALGORITMO HÚGARO


Passo 1: Obter o menor valor de cada linha e subtrair dos demais elementos da linha.

B C D E F G
A 55 110 108 60 150 88
B 87 142 133 98 139
C 77 91 85 93
D 75 114 82
E 107 41
F 123
Matriz resultante após a subtração.

B C D E F G
A 0 55 53 5 95 33
B 0 55 46 11 52
C 0 14 8 16
D 0 39 7
E 66 0
F 0
Passo 2: Mesmo procedimento para as colunas. Pegar o menor valor de cada coluna e fazer a subtração dos
elementos das colunas.

B C D E F G
A 55 110 108 60 150 88
B 87 142 133 98 139
C 77 91 85 93
D 75 114 82
E 107 41
F 123
Passo 1: Subtraindo o menor valor da 1ª linha com elementos da 1ª linha, menor valor da 2º com a 2ª linha e assim por diante
B C D E F G
A 0 55 53 5 95 33
B 0 55 46 11 52
C 0 14 8 16
D 0 39 7
E 66 0
F 0
Passo 2: Caso não haja elemento zero nas colunas, subtrair pelo menor elemento.
B C D E F G
A 0 55 53 5 87 33
B 0 55 46 3 52
C 0 14 0 16
D 0 31 7
E 58 0
F 0
Passo 3: Riscar as etradas zero com número minimo de traços horizontais e verticais

B C D E F G

A 0 55 53 5 87 33
B 0 55 46 3 52
C 0 14 0 16
D 0 31 7
E 58 0
F 0
Passo 4: Pegar o menor valor e subtrair dos valores não riscados... E onde houver dois raços, somar.
B C D E F G

A 0 55 53 5 84 33
B 0 55 46 0 52
C 0 17 0 19
D 0 28 7
E 55 0
F 0

NÃO CONSEGUI OBTER SOLUÇÃO SATISFATÓRIA.

Segue outra solução por outro método. Usando algoritmo gulos.

Grafo gerado no problema – Grafo Completo.


graph RADIOS {
layout="circo"

A -- B [color="red" label=55];
A -- C [color="blue" label=110];
A -- D [color="blue" label=108];
A -- E [color="red" label=60];
A -- F [color="blue" label=150];
A -- G [color="red" label=88];

B -- C [color="red" label=87];
B -- D [color="blue" label=142];
B -- E [color="blue" label=133];
B -- F [color="red" label=98];
B -- G [color="blue" label=139];

C -- D [color="red" label=77];
C -- E [color="red" label=91];
C -- F [color="red" label=85];
C -- G [color="red" label=93];

D -- E [color="red" label=75];
D -- F [color="blue" label=114];
D -- G [color="red" label=82];

E -- F [color="blue" label=107];
E -- G [color="red" label=41];

F -- G [color="blue" label=123];

RESOLVENDO PELO MÉTODO DE COLORAÇÃO DE MAPAS.


Usando um algoritmo guloso, ordenando os vértices por maior grau e considerando o grafo com as arestas
com restrições (menores que 100).
graph RADIOS {
layout="circo"

C [style="filled" fillcolor="red"]
G [style="filled" fillcolor="blue"]
E [style="filled" fillcolor="yellow"]
A [style="filled" fillcolor="red"]
B [style="filled" fillcolor="green"]
D [style="filled" fillcolor="green"]
F [style="filled" fillcolor="yellow"]

A -- B [color="blue" label=55];
A -- E [color="blue" label=60];
A -- G [color="blue" label=88];

B -- C [color="blue" label=87];
B -- F [color="blue" label=98];

C -- D [color="blue" label=77];
C -- E [color="blue" label=91];
C -- F [color="blue" label=85];
C -- G [color="blue" label=93];

D -- E [color="blue" label=75];
D -- G [color="blue" label=82];

E -- G [color="blue" label=41];
}

Obtemos um grafo 4-colorível, ou seja, 4 frequências distintas.


NÚMERO DE PERÍODOS (i) 4

CUSTO DE PRODUÇÃO (P) 1, 1, 1, 2

CUSTO DE ESTOCAGEM (S) 1, 1, 1, 1

CUSTO DE SETUP (X) 20, 10, 45, 15

DEMANDA (d) 8, 5, 13, 4

CAPACIDADE (C) <= bigM >> = 100.000

Se, i = 4:

Ct = Pt2 +

C1 = Fi¹+ => 1 + 4 =
C2 = P2 + => 1 + 3 = 4

C3 = P3 + => 1 + 2 = 3

C4 = P3 + => 2 + 1 = 3
C = (5, 4, 3, 3)

Soma das demandas de i a t:


dit = (di1, di2, di3, di4) = (8, 13, 26, 30)
constante =

Custo(1) = Q1 + C1d1 = 60
Custo(2) = min [ 60 +c1d2, custo(1) +Q2 + C2d2] = min [85, 90] = 85
Custo(3) = min [ 85 + C1d3, 90 + c2d3, custo(2) + Q3 + c3d3] = min [150, 142, 169] = 12
Custo(4) = min [150 + C1d4, 142 + C2d4, 169 + 4 + c3d4, custo(3) + Q4 + c4d4)
= min [170, 158, 181, 169] = 158
NÃO CONSEGUI RESOLVER
graph Grafo_Exercicio_3
{
layout="dot"
1 -- 2;
1 -- 3;
2 -- 4;
2 -- 5;
2 -- 6;
5 -- 9;
5 -- 10;
3 -- 7;
3 -- 8;
8 -- 11;
8 -- 12;
}

Início das folhas:


Custo (6) = Custo (7) = Custo (n) = 0;
Custo (9) = 2; Custo (4) = 4
Custo (10) = Custo(12) = 3

Subindo um nível, temos:


Custo (5) = max [0, -6, +2 + 3] = -1 = 0
Custo (8) = max [0, 1 + 0 + 3] = 4

● Agora todos os sucessores dos nós 2 e 3 são conhecidos

Custo (2) = max [0, -1 + 4 + 0] = 3


Custo (3) = max [0, -1 + 0 + 4] = 3

● Custo (1) = max [0, -2 +3 + 3] = 4

Pelo princípio da otimalidade as subárvores ótimas é obtido por meio do max entre o somatório
dos custos de cada nó.

Prova:

Cortando as subárvores: T(4), T(6), e T(7) custo (1) + custo (2) + custo(5) + custo (9) + custo (10):

= 4 + 3 + 0 + 2 + 3 = 12
custo(1) + custo(3) + custo(8) + custo (11) + custo(12) =
4 + 3 + 4 + 0 + 3 = 14

Logo, a sub-area ótima é composta pelos nós 1, 3, 8, 11 e 12 de valor de custo (i) = 4 e valor
custo total = 14

graph Grafo_Exercicio_3 {
layout="dot";
1 -- 2;
1 -- 3 [color="red"];
2 -- 4;
2 -- 5;
2 -- 6;
5 -- 9;
5 -- 10;
3 -- 7;
3 -- 8 [color="red"];
8 -- 11 [color="red"];
8 -- 12 [color="red"];

1[color="red"]
3[color="red"]
8[color="red"]
11[color="red"]
12[color="red"]
}
Se o caminho mais curto de S à t passa pelo nó p, os subcaminhos (s, p) e (p, t) são
caminhos mais curtos de (s, p) e de p à t respectivamente.
Caso esta afirmação não seja verdadeira, o subcaminho mais curto nos permitiria construir
um caminho mais curto de s à t, o que seria uma contradição.

Façamos d(v) = min{d(i) + Civ}


i ∈ v - (v)

Se o tamanho dos caminhos mais curtos de s à cada vizinho de v, encontra-se o caminho


mais curto de s à v.

Para o problema de achar o caminho mais curto do nó 1 a todos os nós a recorrência para
v = 2,…, n, levando a um algoritmo de O(m). Para um grafo direcionado, arbitrários com
pesos não negativos, c ∈ R + | A |.

Definindo o tamanho de um caminho mais curto de S à i que contenha K arcos, ou seja:

Dk(j) = min {Dk - 1(j)}, min [Dk -1(i) + Cij]}


i ∈ v -(j)

Esta é, então, a abordagem, de PD para o problema.

Você também pode gostar