Otimização Matemática 1 (Teoria)
Otimização Matemática 1 (Teoria)
Otimização Matemática 1 (Teoria)
Matemática
O problema de afetação
Optimização em Redes
Certezas e incertezas
1
TEMA NOVE
PROBLEMA DE TRANSPORTE
1. Noções Gerais
5.1.1. Situação
5.1.2. Formulação do problema
5.1.3. O algoritmo de BUSACRER – GOWEN
5.1.4. Exercícios Proposto
2
TEMA UM:
O PROBLEMA DOS TRANSPORTES
1. NOÇÕES GERAIS
O problema dos transportes é um caso particular dos problemas de programa
matemática e é utilizado sempre que nos deparamos com um produto homogéneo, dado
por um conjunto de um centro de oferta ou origens e procurado por outro conjunto de
centros de procura ou destinos, desde que:
Se pretenda transportar o produto dado dos centros de oferta para os centros de procura.
Seja nosso objectivo, encontrar a oferta mais barata ou mais rápida de o fazer.
Uma empresa tem 4 padarias e pretende distribuir o pão que produz diariamente por 6
pastelarias 8 exploradas. As 4 padarias têm capacidade diária de produção de
300,400,400 e 500 pães respectivamente.
Pastelarias
01 3 2 5 1 1 3 300
0 2 2 4 3 2 5 400
0 5 4 2 4 5 1 400
0 3 4 3 4 3 2 500
3
O quadro anterior pode simplificar no seguinte diagrama:
01 300 250 𝑃1
02 400 360 𝑃2
400 280 𝑃3
𝑂4 500 200 𝑃4
111226 250 𝑃5
𝑃6
200
Neste caso em que se supõem que a oferta existente nas origens é igual a procura nos
destinos, o objectivo é determinar as quantidades de produto que deveram ser enviadas
desde cada origem até a cada destino de forma que se satisfaça a procura existente e se
esgotem as ofertas das origens a um custo mínimo de transportação.A situação que
descrevemos atrás, pode ser representada mediante o esquema que segue, também
conhecido como fluxograma.
a1 b1
a2 b2
a3 b3
Am bn
4
NOTA: Para concluir pode-se dizer que, desde que a oferta total seja igual a procura
total, o problema de transportes tem sempre solução.
Neste caso, oferta total das padarias é igual a 1600 pães enquanto as 6 pastelarias
procuram 1540 pães, devemos criar uma pastelaria fictícia que consuma os 60 pães
excedentes. Assim sendo: 𝑚𝑖𝑛. 𝐶𝑇𝑇 = 3𝑥11 + 2𝑥12 + 5𝑥13 + 𝑥14 + 𝑥15 + 3𝑥16 +
0𝑥17 +2𝑥21 + 2𝑥22 + 4𝑥23 + 3 𝑥24 + 2𝑥25 + 5𝑥26 + 0𝑥27
5
2. FORMULAÇÃO DE UM PROBLEMA DE TRANSPORTES
Seja:
𝑥𝑖𝑗 → a quantidade de produto a transportar de cada centro de oferta i para cada outro
centro de procura j ao custo unitário de 𝑐𝑖𝑗 .
S.a
… … … de
… … … de
… … … da
𝑥𝑚 1 , 𝑥𝑚 2 , 𝑥𝑚 3 , . .. , 𝑥𝑚 𝑚 ≥ 0 não negatividade
6
Simplificadamente:
𝑛 𝑛
𝑆. 𝑎: ∑ 𝑥𝑖𝑗 ≤ 𝑆𝑖 ; 𝑖 = 1, … , 𝑚
𝑗=1
∑ 𝑥𝑖𝑗 ≥ 𝑑𝑗 ; 𝑗 = 1, … , 𝑛
𝑗=1
𝑥𝑖𝑗 ≤ 0 ; 𝑖 = 1, … , 𝑚 ; 𝑗 = 1, … , 𝑛
Por norma o problema só terá solução se a quantidade total de procura não exceder a
quantidade total de oferta, ou seja se ∑𝑛𝑖=, 𝑆𝑖 ≥ ∑𝑛𝑗=1 𝑑𝑗
Desta forma para conseguir-se que a oferta total seja igual a procura total deve-se criar
um destino fictício quando a oferta total e superior a procura total ou uma origem
fictícia sempre que a procura total seja superior a oferta total.
Os custos de transporte das unidades que saem da origem fictícia ou que entram para o
destino fictício serão nulos. As quantidades transportadas “caminhos
fictícios”correspondem a oferta que fica por utilizar ou a procurar que fica por
satisfazer.
A partir do momento em fica garantido que ∑𝑛𝑖=1 𝑆𝑖 ≥ ∑𝑛𝑗=1 𝑑𝑗, pode-se formular o
problema de transporta com todas as restrições sob forma de igualdade, pois assegura-se
que toda quantidade oferecida terá destino e que toda quantidade procurada será
satisfeita. Diz-se então que o problema esta equilibrado.
7
Simbolicamente tem-se:
0 0 0 0
𝑀𝑖𝑛 𝐶𝑇𝑇 = 𝐶11 𝑥11 + 𝐶12 𝑥12 + 𝐶13 𝑥13 + … + 𝐶14 𝑥14
0 0 0 0
+𝐶21 𝑥21 + 𝐶22 𝑥22 + 𝐶23 𝑥23 +. . . +𝐶24 𝑥24
0 0 0 0
+ 𝐶𝑚1 𝑥𝑚1 + 𝐶𝑚2 𝑥𝑚2 + 𝐶𝑚3 𝑥𝑚3 +. . . +𝐶𝑚,4 𝑥𝑚 4
S.a.:
… … …
… … …
… … …
𝑥𝑚 1 , 𝑥𝑚 2 , 𝑥𝑚 3 , . .. , 𝑥𝑚 4 ≥ 0
Simbolicamente:
𝑛 𝑛
𝑆. 𝑎. : ∑ 𝑥𝑖𝑗 = 𝑠𝑖 ; 𝑖 = 1, … , 𝑚
𝑖=1
∑ 𝑥𝑖𝑗 = 𝑑𝑖 ; 𝑗 = 1, … , 𝑛
𝑖=1
𝑥𝑖𝑗 0 ≥ 𝑖 = 1, … , 𝑚; 𝑗 = 1, … , 𝑛
8
Em que: ∑𝑚 𝑚
𝑖=1 ∑𝑗=1 = 𝑑𝑗.
n m m n
Tal que: xij b j ; xij ai sendo que
j 1 i 1
ai
i 1
b j 1
j A(oferta e procura)
ai b j n b j
ai . A
x
j 1
Seja xij i, y então xij 0 sendo que: ij ai ai
A j 1 A A
m m ai b j m
ai b j . A
xij
i 1 i 1 A
bj
i 1 A
A
bj
Demonstração:
xij b j x
i 1
ij ai ; i 1,, m; j 1,, n
j 1
9
A demonstração não perde generalidade se por exemplo verificarmos que a primeira
equação se pode expressar como combinação linear das restantes.
x11 x12 x1n x21 x22 x2n xm1 x2m xmn b1 b2 bn
Equação A. Se somarmos as equações do primeiro tipo de restrições a partir da segunda
equação obteremos uma nova equação que chamaremos de B ou seja:
O problema de transporte admite uma solução, quanto mais m+n-1 variáveis positivas.
Demonstração:
Consiste em indicar um procedimento para obter uma solução básica possível. Este
procedimento denomina – se método da esquina noroeste e foi proposto por Dantzig.
Vemos detalhar o método para um sistema de três origens e quatro destinos, ou seja:
10
b1 b2 b3 b4
Determinemos um valor para x11 (esquema noroeste). X11=Min (a1.b1). se x11=a1, então
x1j = 0;
a1 0 0 0 0
x21 x22 x23 x24 a2
x31 x32 x33 x34 a3
b1 a1 b2 b3 b4
Segundo passo:
a1 0 0 0 0
b1 a1 x22 x23 x24 a2 b1 a1
0 x32 x33 x34 a3
0 b2 b3 b4
a1 0 0 0 0
b1 a1 b2 x23 x24 a2 b1 a1 b2
0 0 x33 x34 a3
0 b2 b3 b4
11
a1 0 0 0 0
b1 a1 b2 a2 b1 a1 b2 x24 a2 b1 a1 b2
0 0 x33 x34 a3
0 0 b3 a2 b1 a1 b2 b4
Resumidamente teremos:
x34 b4
Nota – se claramente que as suas variáveis tem valores positivos. O número de equações
deste modelo é 3+4=7, isto é, obtivemos uma solução básica possível.
De notar que a1, a2, a3, b1, b2, b3, b4 são números inteiros não negativos e
consequentemente a solução obtida (como combinação da soma e o resto dos a i e dos
bj), também consistirá em números inteiros não negativos.
Exemplo: Determine uma solução básica com: a1=2, a2=4, a3=7, b1=3, b2=2, b3=4, b4=2,
b5=2
2 0 0 0 0 2
1 2 1 0 0 4
0 0 3 2 2 7
3 2 4 2 2
Exemplo: o sistema de equações anterior será agora resolvido pelo método de retro
substituição.
12
1 1 0 0 0 0 0 x11 3
0
1 1 1 0 0 0 x21 4
0 0 1 0 0 0 0 x22 2
0 0 0 1 1 0 0. x23 4
0 0 0 0 1 1 1 x33 7
0 0 0 0 0 1 0 x34 2
0
0 0 0 0 0 1 x35 2
x11 x21 3
x21 x 22 x23 4
x22 2
x23 x23 4
x33 x34 x35 7
x34 2
x35 2
x33 2 2 7 x33 3
x23 3 4 x23 1
x21 2 1 4 x21 1
x11 1 3 x11 2
0btivemos assim uma solução original. Quando o sistema de equações é triangular então
pelo menos uma equação tem contem apenas uma variável ( que pode ser isolada
directamente) se substituir este valor no resto das equações do sistema obtém – se pelo
menos uma equação com uma incógnita e assim sucessivamente até achar todas as
variáveis e isto consiste precisamente no método de retro substituição.
Quinto teorema: Supondo que ai e bj são números inteiros não negativos, então todas as
soluções básicas possíveis do problema de transportes têm valores inteiros.
Sexto teorema: Existe sempre nos problemas de transporte uma solução possível
mínima finita.
Como os coeficientes das equações do sistema são não negativos e todos os ai e bj são
não negativos, então nenhum xij será infinitamente grande.
De facto, os xij não podem ser maiores que os seus correspondentes ai ou bj. Se ai ou bj
são inteiros então uma solução possível mínima básica tem valores finitos inteiros.
Métodos para construção de uma solução básica inicial dos problemas de transporte.
13
O algoritmo de transporte que estudaremos é igual ao método Simplex e parte de uma
solução básica possível para começar as iterações. Vamos tratar de três métodos para
construir uma solução básica possível, um dos quais já foi abordado. Estes métodos são:
Seja c1k o custo mínimo da primeira fila (se existir mas do que um custo mínimo
seleccionaremos aquele que tenha menor sub índice j)
Se x1k = a1 então passamos a segunda fila depois de trocar bk por bk – a1. Seguidamente
encontramos na segunda fila o escaque que tenha custo mínimo e repetimos o processo
Se x1k=bk , então trocamos a1 por a1 – bk e bk por zero e encontramos o seguinte cij mais
pequeno que na primeira fila repetindo o processo.
Exemplo: Determine uma solução básica inicial pelo método do custo mínimo por fila,
no problema cujos dados se oferecem na seguinte tabela:
cij D1 D2 D3 D4 O
O1 8 15 24 12 60
O2 16 25 7 9 70
O3 70 15 24 32 100
D 50 80 30 50 210
14
Solução pelo método de custo mínimo por fila
D1 D2 D3 D4 O
O1 8 15 24 12 40
40
O2 16 25 9
7
40 70
30
O3 32
70 15 24
10 100
10 80
D 50 80 30 50
= 320+210+360+700+1200+320
= 3110
Passamos para segunda fila e localizamos o escaque do custo mínimo na e neste caso
será x23 , sendo assim: x23= Min (30,50) = 30, nesta mesma fila o escaque seguinte de
acordo com o custo mínimo é x24, logo:
Assim podemos concluir que estamos diante de uma solução básica possível.
15
4. MÉTODO DO CUSTO MÍNIMO POR COLUNA
Este método é análogo ao anterior, só que aqui o processo decorre nas colunas.
Exemplo: Determine uma solução básica inicial pelo método do custo mínimo por
coluna, no problema cujos dados se oferecem na seguinte tabela:
D1 D2 D3 D4 O
O1 8 24 12
15
40 40
O2 16 25 9
7
10 30 70
30
O3 70 15 32
24
80 20 100
D 50 80 30 50
A soma das variáveis básicas que aparecem numa fila i, é igual a a i, (oferta
correspondente a origem i).
A soma das variáveis básicas que aparecem numa coluna j, é igual a bj (procura
correspondente ao destino j).
16
simultaneamente mais variáveis básicas na fila e coluna correspondente ao dito
escaque.
Estas propriedades fazem com que a solução obtida seja básica e possível.
Ao resolver qualquer método de PL devemos de forma geral esperar que o número total
de iterações requeridas dependerá do mais próximo que se encontre o valor da FO na
solução possível inicial do mínimo real. Como o método da esquina noroeste não
considera os coeficientes cij não podemos esperar que o valor da FO numa solução
inicial pelo método da esquina noroeste se aproxime do mínimo.
Estudaremos o método que toma em conta os cij e que portanto deverá der uma solução
inicial melhor que o método da esquina noroeste.
Solução inicial
Vamos utilizar como exemplo o problema apresentado na Seção 6.1. Para encontrar
uma solução inicial, será utilizado o método do mínimo custo. Este método consiste nos
seguintes passos:
1. Atribuir o máximo possível à variável com menor custo unitário e preenche com
zeros a linha ou coluna satisfeita. No exemplo, faz-se x31 = 80 já que c31 = 3, utilizando
completamente o fornecimento da Fonte 3. Desta forma, x32 e x33 devem ser iguais a 0.
2. Ajustar os elementos da linha ou coluna não ajustada a partir da variável com menor
custamos. Assim, no exemplo, na primeira coluna temos que fazer x11 = 70 (menor custo
unitário), de forma a atender a capacidade do Destino 1. Logo, x21 deve ser igual a 0.
17
D1 D2 D3
O1 8 5 6
70 50 0 120
O2 15 10
12
0 20 80
60
O3 9
3 10
0 80
80 0
D 150 70 60
Processo iterativo
Cada célula vazia representa uma variável não básica que poderia entrar na base. Para
entrar, a contribuição da variável não básica deve implicar a redução do custo total.
Calculando essas contribuições para a célula x13:
1. Atribua 1 unidade a x13. Assim, não é mais 60, mas 61 o total de unidades na coluna
3.
2. Para não violar a restrição da coluna 3, uma unidade deverá ser subtraída de x23, que
passa a ter 59 unidades, e a coluna 3 com um total de 60 novamente.
3. Agora a linha 2 totaliza 79 e não 80, o que pode ser corrigido com a adição de uma
unidade a x22 (20 → 21).
4. A coluna 2 fica então com um total de 71, o que pode ser corrigido com a subtração
de uma unidade de x12.
Para cada variável zerada, devemos determinar um caminho fechado de forma a calcular
a sua contribuição na função objectivo. Estes caminhos são definidos por linhas
verticais ou horizontais, delimitando um polígono fechado. Apenas em um vértice deste
polígono deve haver uma variável zerada, que é a própria variável não básica que será
incluída na base. Só é possível formar um único caminho com essas características para
cada variável zerada.
18
Vamos agora calcular a contribuição de cada variável não básica na função objectivo
x13 = 0 + 50 = 50;
x23 = 60 - 50 = 10;
x22= 20 + 50 = 70;
x12 = 50 - 50 = 0.
Logo, a variável que sai da base é x12. A seguir, é apresentado o quadro após a primeira
iteração.
D1 D2 D3
O1 8 5 6
70 0 50 120
O2 15 10
12
0 70 80
10
O3 9
3 10
0 80
80 0
D 150 70 60
19
Variável Caminho Contribuição
Como todas as variáveis têm contribuição positiva, isto indica que a inclusão de
qualquer uma delas fará aumentar o valor da função objectivo, portanto a solução
encontrada é óptima.
Para o problema inicial, se a produção total for maior que a capacidade total, criar um
depósito fictício com capacidade = produção total - capacidade total, com custos de
distribuição nulos. Se a produção total for menor que a capacidade total, criar uma
fábrica fictícia.
Outra maneira de se resolver o problema seria tratar as restrições pertinentes não mais
como equações e sim como inequações.
Soluções múltiplas
Ocorrem quando, detectada a solução óptima, um dos valores das contribuições for
zero. O caminho fechado para a variável xij correspondente indicará a forma de obtenção
da solução alternativa.
TEMA DEZ
PROBLEMA DE AFECTAÇÃO
20
necessário - e que é conhecido o tempo cjj necessário para o i-esimo trabalhador
treminar a j-esíma tarefa (ou o valor do i-esímo obecto na j-esímo posiçao O objectivo
é afectar cada um dos trabalhadores a cada uma das tarefas, de modo a que estas sejam
concluídas num tempo total minimo (ou encontrar a permutação que tenha o maior valor
total).
Trabalhos
1 2 3 ... n
1 c11 c12 c13 ... c1n
2 c21 c22 c23 ... c2n
3 c31 cc32 c33 ... c3n
... ... ... ... ... ...
n c1n c2n c3n cnn
PASSO 1:Em cada linha do quadrdo 9.1 localiaza-se o menor elemento , subtraindo-se
este de todos os elementos dessa linha.repete –se este procedimento para cada uma das
coluna (o menor valor das colunas é deterniado apos subtracção ).
A matriz de custo actualizada contera pelo menos um elemento nulo em cada uma das
liha e em cada uma das colunas.
Ver o problema 9.5. de acordo com um resultado basíco da teoria dos grafos ,o número
de rectas necessária na etapa 3 sera precisamente igual ao maior número de zero da
21
matriz de custo actualizada tais que dois deles não estejam sobre uma mesma linha ou
coluna.
22
NÁLISE DE REDES
Em muitos problemas que nos seguem, a forma mais simples os descrever é, representa-
los em formas de grafos, sendo que um grafo proporciona uma representação visual que
trás vantagens na construção modelo matemático com vista a resolução do problema.
Os problemas de fluxo em rede esta associado questões que envolvem distancia como a
forma mais curta de ir de um local ao outro, ou ainda como ligar um conjunto de
localidades entre si com a menor distancia possível. O estudo das redes poderá ir mais
longe do que isto, como os casos dos problemas a serem estudados neste tema:
Este tipo de problema acontece quando se pretende instalar uma rede de distribuição gás
natural, água, electricidade, telefone de modo a que todos os beneficiários fiquem
ligados entre si ou seja que as condutas a instalar tenham o menor comprimento
possível, de modo a minimizar os custos.
23
O problema do fluxo do custo mínimo
Nota: Um grafo é orientado se todos os seus arcos forem orientados e não orientados
quando os seus arcos não apresentam sentidos. Os arcos não orientados denominam-se
também por arestas.
Graficamente
2 7
1 3 6 8
4 5
24
Gráfico orientado
2 5
3
1 6
8
4
7
2 5
1 6 8
3
4 7
Antecessor de 5 ={4}; porque o vértice 4 é o único de onde sai um arco que termina no
vértice 5.
Sucessor de 5 = {6,8}; porque do vértice 5 saem arcos que terminam nos vértices 6 e 6.
Nota: Não é necessário que os arcos que os arcos estejam todos orientados no mesmo
sentido. Os que estiverem orientados de i para f designam-se por ares directo enquanto
25
de f para i chamam-se ares inválidos. Se o vértice inicial for também o vértice final ou
seja de sairmos de um vértice e voltarmos a ele, então estaremos diante de ciclo.
2 4 6
1 8
3 7
5
4 6
2
8
1
3 5 7
OBS: O arco (5,7) esta a ser utilizado no sentido inverso ao da sua orientação.
1 8
3 4 7
OBS: Não é possível sair do sair do vértice 1 e voltar posteriormente ao mesmo sem
utilizar pelo menos um dos arcos ao sentido inverso.
26
NOTA: Se numa cadeia, os arcos estiverem todos orientados no sentido de i para f,
obteremos um caminho de i para f. Se o vértice inicial do caminho for também o vértice
final, termos um circuito
4 6
3
8
1
2 5 7
Definição: Um grafo denomina-se conexo ou fracamente conexo se, para todo par do
vértice do grafo existir pelo menos uma cadeia interligando o par, ou seja se for possível
deslocar-se de um vértice qualquer para um outro através de uma cadeia.
NOTA: Uma forma mais intuitiva de concluir sobre a conexidade de um grafo é não
permitindo “linha de vértices “EXEMPLO:
8 3
2 4
1
2
3 2
3 5
NOTA: Podemos concluir que, os conceitos de cadeia ciclo ou conexidade nos grafos
não orientados correspondem os conceitos de caminho, circuitos e conexidade forte nos
grafos orientados.
Definição: Um grafo diz-se completo se cada dois vértices esta ligada por um arco.
Assim o diagrama de um grafo completo com N vértices tem N(N-1) arcos pois deve-se
considerar que cada um dos restante (N-1 ) vértices. Se o grafo for não orientado divide-
27
se estes valor por dois, porque a aresta esta entre um vértice i e um vértice f substitui os
arcos (i,f) e (f,i).
EXEMPLO
2 3
Vértice: {1,2,3,4}
4(4-1) = 12 Arcos
⟹ (1,2)(2,1)(1,3)(3,1)(1,4)(4,1)
1 4
(2,3)(3,2)(2,4)(4,2)(3,4)(4,3)
EXEMPLOS
2 5
6 8
1 3
4 7
28
O grafo parcial é gerado pelo subconjunto:
𝐴1 = {(1,2)(1,3)(1,4)(2,7)(3,6)(4,5)(5,8)(6,7)(6,7)(7,8)
1 4
2
Subgrafo Parcial
1
2 4
3. Noção de rede
Definição: Uma rede é um grafo onde existem valores associados a todos os arcos ou
arestas. A estes valores dá-se o nome capacidades e podem representar custos, distancia,
tempo volumes, etc.
EX:
12 20
10 26
17
2
33
33 17 6
17 3
3
15
21
15
20
10
29
REDE OREITADA 12
10
2 4 7 26
17
10 8 8
1 3
4
8
21 3 5 6 6
15 6 10
6
REDE NÃO ORIENTADA
8
NOTA: Em relação ao valor que apresentam as capacidades, por exemplo, a capacidade
17 associada ao arco (1,2) poderá apresentar o caudal máximo permitido ao canal fluvial
entre as barragens situadas nos locais correspondentes a, vértices 1 e 2 enquanto a
capacidade 8 associada a aresta (5,7) poderá representar o tempo que um carteiro leva a
distribuir correio em cada um dos sentidos da rua que se situa entre os cruzamentos
representados pelas vértices 5 e7.
Problema:
A empresa REDE VIVA LDA, precisa determinar sob que ruas deverão instalar cabos
telefónicos para ligar todas as estações usando o menor comprimento total de cabos. A
figura abaixo ilustra as 8 estações e o plano de ruas. Sobres cada aresta está
representado o comprimento de cabos necessário para efectuar a respectiva ligação.
12 20
17 4 26
17 2 7
4 8
1
30
8 6 15
3 5
2
3 15
Definição: Chama-se arvore (T) a um grafo com N vértice que seja conexo e sem ciclo,
ou ainda:
→ T é um grafo com (N – 1) arcos e seu ciclo → T não terá ciclos mas adicionando
qualquer arco novo a T, resulta num grafo com exactamente um ciclo.
1 4 8
3 5 6
21 15
10
NOTA: A partir da def de árvore geradora temos aqui de facto um grafo parcial do
esquema anterior (aumentará todos os vértices e considera apenas algumas arestas).
Verifica-se também que o grafo é conexo (não existem ilhas de vértices) e sem ciclo e
devera ter N – 1 = 8 -1 = 7 arestas.
Podemos constatar também que existe uma cadeia entre qualquer par de vértices ou seja,
que é possível encontrar uma ligação de um qualquer vértice para qualquer outro que é
essa ligação é única.
2º
12
4
2 7
17 16
3 8
1 8
15
3 5 31 6
10
17+3+12+15+10+8+26=91
20
2 4 7
3 4
1 8
17
21 10 15
3 5 6
21+3+17+20+4+10+15=90
12
2 4 7
17
8 4
1 3 8
5 6
3
10
17+ 3+12+8+10+4+15=69
5. Formulação do problema
Este problema pode ser formulado em P.L.. seja uma variável de decisão que toma
valor 1 se a aresta (i;j) esta incluída na arvores e o valor o caso contrario.
32
Não devem existir ciclos. Se Cij for o custo associado a aresta (i,j) teremos:
Minimizar
𝑛 𝑛
𝑛 𝑛
𝑆. 𝐴: ∑ 𝑥𝑖𝑗 + ∑ 𝑥𝑖𝑗𝑖 ≥ 1, ∀ 𝑖 = 1, … , 𝑁
𝑗:(𝑖,𝑗)𝐸𝐴=0 𝑗:(𝑗,𝑖)𝐸𝐴=0
𝑛 𝑛
∑ ∑ 𝑋𝑖𝑗 = 𝑁 − 1
𝑖=1 𝑗:(𝑖𝑗)𝐸𝐴=
O primeiro conjunto de restrições garante que para cada um dos vértices, o número total
de arestas que, “sai” e que “entra” nesse vértice é no mínimo uma, ou seja, existe para
cada um dos vértices pelo menos uma aresta considerada na árvore, isto é não existe
vértice que não estejam ligados.
Embora o problema assim formulado possa ser resolvido por um algoritmo de P.L,
como o simplex, a estrutura particular dos problemas de redes permite o
desenvolvimento de algoritmo específico para o efeito.
33
6. ALGORITMO DE KRUSKAL
Em seguida vai introduzindo as arestas por uma nas árvores desde que a sua inclusão
não origine a formação de ciclos com as arestas já colocados. O algoritmo termina
quando estiverem N – 1 aresta colocadas.
12 20
2 4 15
7
17 54 26
8
3 17
1
8
15
21 3 5 6
15 10
Sendo a rede composta por 8 vértices a arvore geradora terá N – 1 = 8 – 1 = 7 vértices.
1º Passo: Ordenar as aresta por ordem crescente das capacidades. Seja tabela
2º Passo: Iniciar a construção da árvore colocando as arestas na ordem dada pela tabela
anterior.
2.1.
34
2 4 7
1 8
3 5 6
Capacidade: 3
2.2.
2 4 7
1 8
3 5 6
Capacidade 3+4=7
2.3. Segundo o raciocínio análogo, colocam-se as três arestas seguintes: (5,7) (5,6) e
(2,4). Deve-se ter atenção que, embora passe a existir um cruzamento entre as aresta
(5,7) e (4,6) isto não constitui um ciclo e depende apenas da posição relativa dos
vértices, pois bastará que o vértice 7 se encontrasse abaixo do vértice 5 para que
deixasse de existir esse cruzamento assim sendo, teremos
12
2 4 7
8
1 8
3 4
3 6
5
Capacidade: 7+8+10+12=37
2.4. A sexta aresta a ser colocada seria a (3,5) entretanto ela dá origem ao surgimento de
um ciclo (repetir a figura). Logo, ignora-se esta aresta e colocamos a aresta seguinte
também com a capacidade 15 a aresta (6,8). Teremos então:
12
35
2 4 4 7
8
1
3 8
5 6 15
3
10
Capacidade: 37+15=52
3º Passo:
Estas colocadas 6 arestas. A próxima aresta a ser colocada será a aresta (1,2) com
capacidade 17 e que não fecha nenhum ciclo. Tratando-se da 7ª aresta, obtemos a árvore
geradora de mínimo custo com capacidade igual a 52+17=69.
8
1
3 5 6
7. Algoritmo de PRIM
Uma das formas de aplicação do algoritmo de PRIM consiste na construção de uma
matriz triangular inferior cujo elemento são as capacidades entre os vértices (como os
mapas das estradas).
O facto de estarmos diante de uma rede não orientadas origina a utilização a aresta (i,j)
no sentido de i para j ou de j para. A matriz das distâncias resultante é uma matriz
triangular inferior
36
31
41
1 81
2 121
3 21 101
4 17 151
5 151
6 171
7 20
8
26
1 2 34 5 6 7 8
2º Passo: cortar a linha e a coluna do vértice 5, isto é seleccionar todas as ligações que
envolvem o vértice 5. Entre os elementos cortados uma vez escolhesse o menor, ou seja
escolhe-se a aresta adjacente com o menor comprimento, neste caso =8, na ligação com
vértice 7.
37
4º passo: mais uma vez escolhe-se o mínimo entre os elementos cortados uma vez, que
neste caso corresponde ao 10 na ligação entre os vértices 5 e 6.
Teremos então que escolher o 2º mínimo dos elementos cortados. e, também de valor
15, más é a ligação entre os vértices 6 e 8.
6º Passo: mais uma vez se cortam a linha e coluna do vértice 8 e determina-se o menor
dos elementos cortados uma vez que corresponde ao 17 da ligação dos vértices 2 e 1.
→ Determina-se então as ligações que formam a árvore geradora do aresto mínimo, que
são os assinalados.
17+3+12+4+10+8+15=69
No entanto, também podem ser aplicadas a redes não orientadas, pois, uma rede não
orientada pode ser considerada como um caso especial de redes orientadas fazendo
corresponder a cada vértice um par arco orientados em sentidos opostos.
PROBLEMA
A empresa, REDE VIVA pretende agora encontrar o caminho mais curto entre a sede da
empresa (vértice 1) e o centro de distribuição (vértice 8) através do sistema de ruas
assinalado na figura abaixo.
12 20
2 4 7 26
4
17 8 8
1 3
4 4
15
3 5 6
15 10
38
3
Este problema pode ser formado em programação linear e tal como no caso da arvore
geradora de custo mínimo, que define as variáveis de decisão como sendo a opção de,
inclusão ou não de cada uma das ligações (i, j) no caminho de custo mínimo ou seja,
neij é uma variável que tenha o valor 1 se o arco (i,j) está incluído no caminho mais
curto entre o vértice final N e toma valor 0 (zero) caso contrario.
O caminho mínimo é constituído por uma sequência de arcos onde cada um deles
começa um vértice e acaba noutro.
Se cij for o comprimento do arco (i.j) o problema pode ser formulado da seguinte
forma:
𝑁 −
∑ 𝑋𝑖𝑗 − ∑ 𝑋𝑗𝑖 = 0, ∀𝑖 = 2, … , 𝑁 − 1
𝑗:(𝑖,𝑗)𝐸𝐴 𝑗:(𝑗,𝑖)𝐸𝐴
∑ 𝑋𝑁𝑗 − ∑ 𝑋𝑗𝑁 = 1
𝑗:(𝑁,𝑗)𝐸𝐴 𝑗:(𝑗,𝑁)𝐸𝐴
A primeira restrição garante que o numero de arcos que sai e o número de arcos que
entra no vértice inicial 1 e1; A terceira restrição garante que a diferença entre o número
de arcos e o número de arcos que entra no vértice 1 é -1.
É a necessidade de minimizar uma combinação linear dos arcos que forem utilizados
que nos garante que só teremos um arco a sair ou a entrar em cada vértice.
39
Se consideramos que não estão definidas quaisquer arco a ir dar ao vértice 1 (o que
equivale a ter 𝑋𝑘1 = 0, ∀ 𝑘 = 1, … , ) ou quaisquer outro arco a sair do vértice N (o
que significa ) a ter X 𝑛 𝑘 = 0 ∀𝑘 = 1, … , 𝑁 a formulação simplifica-se da seguintes
forma:
𝑁 −
∑ 𝑋𝑖𝑗 − ∑ 𝑋𝑗𝑖 = 0, ∀𝑖 = 2, … , 𝑁 − 1
𝑗:(𝑖,𝑗)𝐸𝐴 𝑗:(𝑗,𝑖)𝐸𝐴
∑ 𝑋𝑗𝑁 = 1
𝑗:(𝑁,𝑗)𝐸𝐴
RESOLUÇÃO DO PROBLEMA
12 20
4
17 2 7
26
1
3 17 4 8
3 5 8
21
6 15
15 10
→ Seja o caminho C = {(1,2), (2,4), (4,7), (7,8)}. A ligação entre os vértices 1 e 8 terá o
comprimento M= 17+12+20+26=75.
Esta seria uma maneira de resolver este problema enumerando todos os caminhos em
escolher o que apresentam menos comprimentos. Podemos concluir facilmente que esta
40
pratica é complicada e ……. a medida que aumenta o numero de vértices ou de arcos de
rede.
9. ALGORITMO DE DIJKSTRA
Este algoritmo determina o, caminho mais curto entre o vértice inicial i (chamamos-lhe
1) e todos os vértices de rede com comprimento não negativo. Neste algoritmo, atribui-
se uma etiqueta (sinal qualquer) permanente a qualquer vértice W da rede quando
houver a certeza de que já obtivemos o caminho mais curto entre o vértice inicial 1 e o
vértice 20.
Assim sendo, vamos definir alguns vértice que nos permitirão facilidade e rapidez na
aplicação do.
12
4 20
2 7
17 26
4
1
3 8
17
21 15
3 5 6
15
41
10
Claramente se verifica que o caminho mais curto entre eles é da ligação entre o vértice 1
e 2 logo 𝜋(2) = 17. Sabendo que o vértice antecessor de 2 nesse caminho é o vértice 1,
logo P(2) =1.
De forma análoga temos que o caminho mais curto 1e 3 é o da ligação directa entre eles
donde 𝜋(3) = 21 𝑒 𝑃(3) = 1
Aos restantes vértices que não são sucessor directo de 1 consideramos não termos
obtidos ainda um caminho até eles e assim atribui-se o valor + ∞ ao respectivo 𝜋 e o
valor 0 (zero) ao respectivo P. vejamos a tabela:
vert. 1* 2 3 4 5 6 7 8
Vect
𝜋 0 17 21 +∞ +∞ +∞ +∞ +∞
P 1 1 1 0 0 0 0 0
Em seguida escolhe-se o vértice que se encontra mais perto de1 ou seja, entre todos os
que ainda não têm etiqueta permanente aquele cujo 𝜋 é o mínimo do 𝜋´𝑠 (17 para o
vértice o que se assinala radiado) e etiqueta-se o vértice 2 com (*). Isto significa que
está encontrado o caminho mais curto entre 1 e 2.
Como certificar?
Qualquer outro caminho passaria obrigatoriamente por outro vértice, no caso e 3, que
sabemos não se encontra a uma menor distância é a que liga 1 e 2. Desta forma não é
possível encontrar outro caminho mais curto. Mesmo que a distância entre 1 e 3 fosse
42
igual a de 1e 2 e tivemos que ir pelo vértice 3, para chegarmos ao 2 teríamos ainda a
distancia entre 3 e 2. Assim o estado da tabela será:
Vert. 1* 2* 3 4 5 6 7 8
vect
𝜋 ⑰ 21 +∞ +∞ +∞ +∞ +∞ +∞
P 1 1 0 0 0 0 0 0
=17 + 3
=20
= 17 + 12
=29
Consultando a tabela podemos concluir que o caminho até o vértice 3 tinha como
antecessor o vértice 1 e 𝜋(3) = 21. Assim como o valor agora obtido é menor 𝜋(3) =
20 ao anterior, selecciona-se o novo caminho e actualiza-se este mesmo 𝜋 = 20. Isto
significa que o antecessor do vértice 3 passa a ser o 2 logo P(3)=2.
Vert. 1* 2* 3 4 5 6 7 8
vect
𝜋 17 21 +∞ +∞ +∞ +∞ +∞ +∞
P 1 1 0 0 0 0 0 0
𝜋 ⑳ 29 +∞ +∞ +∞ +∞
P 2 2 0 0 0 0
Etiqueta-se o vértice 3 na rede e na tabela com (*) e podemos a partir dele ir para o
vértice 4 e 5.
O caminho mais curto de 1 a 4 passando por 3 seria este composto pelo caminho curto
de 3 e pelo arco (3,4).
𝜋(3) + 𝐶34 = 20 + 17 = 37
Entretanto, existe já outro caminho de 1 a cujo 𝜋 = 29 logo não nos interessa este
caminho agora obtido. Para o vértice 5 não existe ainda caminho mais curto a partir de
1, por isso o caminho que chega ao 5 tendo como antecessor o 3, será o caminho mais
43
curto até 3 acrescido do arco (3,5) cujo comprimento determina-se: 𝜋(3) + 𝐶35 = 20 +
25 = 35
Comparando com o actual 𝜋(5) = +∞, decidimos actua 𝜋(5) é o antecessor do vértice
5 passa a ser o 3 ou seja: P(5)=. Eis o quadro actual:
Vert. 1* 2* 3 4 5 6 7 8
vect
𝜋 17 21 +∞ +∞ +∞ +∞ +∞ +∞
P 1 1 0 0 0 0 0 0
…. … … … … … … … …
𝜋 35 +∞ +∞ +∞
29
3 0 0 0 +∞
P 2 0
Repetindo o raciocínio, mais uma vez escolhemos o vértice que se encontra mais perto
de 1, ou seja aquele que apresenta o mínimo dos 𝜋´𝑠 entre os vértices não
Sabe-se que já foi obtido o caminho mais curto entre os vértices 1 e 4. Etiqueta-se o
vértice 4 e verifica-se que os sucessores são 6 e 7. Vejamos:
12 20
7
17 2 4 26
3
1 8
17
3 12 5 6
21 15
15
10
→ Para o vértice 6 o caminho mais curto imediatamente pelo vértice 4 será o caminho
mais curto até 4 nos arcos (4,6) o que originara um comprimento total: 𝜋(4) + 𝐶4 6 =
29 + 4 = 33. Comparando com o actual 𝜋(6) + ∞, preferimos o caminho novo e
actualizamos 𝜋(6) = 33 𝑒 𝑃(6) = 4
44
Vert. 1* 2* 3 4 5 6 7 8
vect
… … … … … … … … …
𝜋 49 48
35
4 6
P 3
Neste momento nota-se que o vértice com o caminho mais curto desde o vértice 1 e o 6
com 𝜋(6) = 33 logo o vértice 6 etiquetado, sendo o vértice 8 o seu sucessor não
etiquetado.
2 4 7
12 20
17 26
4
1 3 8
17
12
21 3 5 6 15
15 10
O caminho mais curto para 8 tendo 6 por vértice antecessor será então o caminho mais
curto até 6 seguido do arco (6,8) com comprimento total𝜋(6) + 𝐶6 8 = 35 + 5 = 48.
Comparando com o actual comprimento 𝜋(8) = +∞, novamente preferimos o novo
caminho e actualizamos 𝜋(8) = 48 𝑒 𝑃(8) = 6, logo teremos:
Vert. 1* 2* 3 4 5 6 7 8
vect
… … … … … … … … …
𝜋 49 48
35
4 6
P 3
45
𝜋(5) + 𝐶5 7 = 35 + 8 = 43; comparando com o actual 𝜋(7) = 49, verifica-se que é
preferível optar pelo novo caminho, actualizando 𝜋(7) = 43 𝑒 𝑃(7) = 5. Assim o
quadro terá a forma:
Vert. 1* 2* 3 4 5 6 7 8
Vect
… … … … … … … … …
𝜋 43 48
4 6
P
Etiqueta-se em seguida o vértice 7, porque o caminho mais curto e o seu sucessor não
etiquetado é o 8.
Vert. 1* 2* 3 4 5 6 7 8
vect
𝜋 0 ⑰ 21 +∞ +∞ +∞ +∞ +∞
P 1 1 1 0 0 0 0 0
𝜋 ⑳ 29 +∞ +∞ +∞ +∞
P 2 2 0 0 0 0
𝜋 29 35 +∞ +∞ +∞
29
P 2 3 0 0 0
49 46
35
𝜋 4 6
P 3
𝜋 48
35
P 5 6
𝜋
35
P 6
Resta apenas reconstruir o caminho mais curto donde o vértice 1 ate ao vértice 8. Para
isso verifica-se que o antecessor de 8 e 6 esse caminho é o 6, ou seja 𝜋(8) = 6, temos
assim:
46
6 8
4 6 4
1 2 3 4 5
12
2 4 7 26
17
4
3 17 8
1
8
21 4
15
3 5 6
4 10
4
NOTA: Para concluir pode-se dizer que, desde que a oferta total seja igual a procura
total, o problema de transportes tem sempre solução.
47
REFERÊNCIAS BIBLIOGRÀFICAS
48
em 1998.
18. C. A. de J. Martinhon. Programação Linear e Algoritmos de Pontos
Interiores: uma introdução a VI Semana do Instituto de Matemática e
Física da UFG (Minicurso), 27 páginas, 1991.
24. Manuela Hill, Mariana Marques dos Santos e Ana Líbano: Investigação
Operacional I, II, III. 2008
29. http//www.ericolisboa.eng.br
50
47. PRADO, Darci Santos do. Programação Linear. Belo Horizonte: INDG
Tecnologia e Serviços Ltda, 2003, 206 p, il.: (Serie Pesquisa Operacional v. 1).
48. STEFE, Rodrigo. Projectos Pedagógicos Interdisciplinares Utilizando
Softwares de Produtividades: uma experiencia no ensino fundamental. Dissertação
(Mestrado Integrado Profissional em Computacao) – Universidade Estadual do
Ceara (UECE) e Centro Federal de Educacao Tecnologica do Ceara (CEFET-CE).
Ceara, 2006. 122 p.
49. STANGER, Luiz B. Nocoes Preliminares. Estabelecimento de um Programa de
Pesquisa ou de Producao. Tecnica para Montagem de uma Rede PERT. In: CPM-
CPM: tecnica de planejamento e controle. 1. ed. rev. Rio de Janeiro: Livros
Tecnicos e Cientificos, 1976 (cap. 1, 2 e 3).
50. THIOLLENT, Michel. Metodologia da pesquisa-ação. 13. ed. São Paulo:
Cortez, 2004. (Colecção temas básicos de pesquisa-acao).
51. TRALDI JUNIOR, Armando. Sistema de Inequações do 1º. Grau: uma
abordagem do processo
Ensino -aprendizagem focando os registos de representações. Dissertação (Mestrado
em Educação Matemática) -Pontifícia Universidade Católica de São Paulo, São
Paulo, 2002. 112 p. Impresso.
52. TRIVINOS, Augusto Nibaldo Silva. Introdução à Pesquisa em Ciências
Sociais: a pesquisa qualitativa em educacao. 1. ed. Sao Paulo: Atlas, 1928. 175 p.
53. SILVA, Carlos Alberto da. Uma metodologia para o ensino Operacional no
Ensino Técnico de Nível médio: Estudo de Caso na UNED- Imperatriz/MA.
Dissertação (Mestrado Integrado Profissional em Computação) – Universidade
Estadual do Ceara (UECE) e Centro Federal de Educação Tecnológica do Ceara
(CEFET-CE). Ceara, Fevereiro/2009. 54. WEISS, Neil; YOSELOFF, Mark.
Matemática Finita. Tradução Roberto Angelo de Barros Padilha. Inc. 1975; Rio de
Janeiro: Guanabara Dois: 1978. 584 p. Tradução de: Finite Mathematics.Worth
Publishers Inc.: New York.
51