• Nenhum resultado encontrado

AULA 21. Otimização Combinatória p. 712

N/A
N/A
Protected

Academic year: 2021

Share "AULA 21. Otimização Combinatória p. 712"

Copied!
24
0
0

Texto

(1)
(2)

Fluxo viável

PF 19.1, 19.2, 19.3, 19.4

(3)

Função-demanda

Uma função-demanda em um grafo (N, A) é qualquer

função que associa um número inteiro b(i) a cada nó i, ou seja, qualquer função

b : N → Z . 2 −4 −3 0 5

(4)

Fluxos e demandas

Um fluxo é uma função de N em Z≥.

Um fluxo x satisfaz uma função-demanda b se, para cada no i, e(i) = x(i, i) − x(i, i) = b(i) . x(ij) 1 2 3 1 3 2 0 2 2 −4 −3 0 5 Otimização Combinatória – p. 715

(5)

Problema do fluxo viável

Problema: Dada uma rede (N, A, u, b) com

função-capacidade u e função-demanda b, encontrar um fluxo que satisfaça b e respeite u.

x(ij)/u(ij) 1/1 2/3 3/ 5 1/3 3/3 2/2 0/ 2 2/7 2 −4 −3 0 5

(6)

Condição de viabilidade

Dada uma rede (N, A, u, b) com função-capacidade u e função-demanda b, se existe fluxo que satifaz b e respeita u, então

−u(T , T ) ≤ b(T) ≤ u(T, T) , para todo subconjunto T de N.

x(ij)/u(ij) 1/1 2/3 3/ 5 1/3 3/3 2/2 0/ 2 2/7 2 −4 −3 0 5 Otimização Combinatória – p. 717

(7)

Condição de viabilidade (equivalente)

Se existe fluxo que satifaz b e respeita u, então

b(N) = 0 e b(T) ≤ u(T, T ) , para todo subconjunto T de N.

x(ij)/u(ij) 1/1 2/3 3/ 5 1/3 2/2 0/ 2 2/7 2 −4 −3 0 5

(8)

Teorema de Gale

Se para todo subconjunto T de N,

−u(T, T ) ≤ b(T) ≤ u(T, T) , então existe fluxo que satifaz b e respeita u.

u(ij) 1 2 2 1 3 1 1 2 2 −4 −3 0 5 Otimização Combinatória – p. 719

(9)

Teorema de Gale

Se para todo subconjunto T de N,

−u(T, T ) ≤ b(T) ≤ u(T, T) , então existe fluxo que satifaz b e respeita u.

u(ij) 1 2 2 1 1 1 2 2 −4 −3 0 5 T

(10)

Algoritmo de fluxo viável

Recebe uma rede simétrica (N, A, u, b) e devolve um fluxo viável x ou um subconjunto S de N que viola a condição de Gale.

FLUXO-VIÁVEL (N, A, u, b)

1 se b(N) 6= 0 então devolva N 2 xˇ ← 0 e ← 0

3 enquanto existe s em N tal que e(s) > b(s) faça

4 Axˇ ← {ij ∈ A : xˇ(ij) < u(ij)}

5 hy, πi ← CAMINHO(N, Axˇ, s)

6 se existe t tal que y(t) = 0 e e(t) < b(t) então

7 INCREMENTE-FLUXO-VIÁVEL(u, xˇ, Aπ, s, t)

8 senão S ← {i ∈ N : y(i) = 0}

9 devolva S

10 x ← FLUXO(xˇ) 11 devolva x

(11)

Incremente fluxo viável

INCREMENTE-FLUXO-VIÁVEL (u, xˇ, Aπ, s, t)

0 Seja P um caminho de s a t em (N, Aπ)

1 δ1 ← min{u(ij) − xˇ(ij) : ij é arco de P} 2 δ2 ← min{e(s) − b(s), b(t) − e(t)}

3 δ ← min{δ1, δ2}

4 para cada arco ij em P faça

5 xˇ(ij) ← xˇ(ij) + δ 6 xˇ(ji) ← xˇ(ji) − δ 7 e(s) ← e(s) − δ

(12)

Invariantes

Na linha 3 valem as seguintes invariantes:

(i1) e(i) = x(i, i) − x(i, i), para cada nó i;

(i2) Pi∈N(b(i) − e(i)) = 0;

(i3) x respeita u.

(13)

Consumo de tempo

O consumo de tempo do algoritmo é FLUXO-VIÁVEL O((n + m)nB).

B := max{|b(i)| : i ∈ N}

Este consumo de tempo não é polinomial. Ele é pseudo-polinomial.

(14)

Algoritmo fortemente polinomial

Um fluxo viável pode ser encontrado resolvendo-se um problema do fluxo máximo em uma rede auxiliar.

u(ij) 1 3 5 3 3 2 2 7 2 −4 −3 0 5 Otimização Combinatória – p. 724

(15)

Algoritmo fortemente polinomial

Um fluxo viável pode ser encontrado resolvendo-se um problema do fluxo máximo em uma rede auxiliar.

u(ij) 4 3 1 3 5 3 3 2 2 7 2 5 s t 0 0 0 0 0

(16)

Algoritmo fortemente polinomial

Um fluxo viável pode ser encontrado resolvendo-se um problema do fluxo máximo em uma rede auxiliar.

x(ij)/u(ij) 4/4 3/ 3 1/1 2/3 3/ 5 1/3 3/3 2/2 0/ 2 2/7 2/ 2 5/5 s t 0 0 0 0 0 Otimização Combinatória – p. 724

(17)

Algoritmo fortemente polinomial

Um fluxo viável pode ser encontrado resolvendo-se um problema do fluxo máximo em uma rede auxiliar.

x(ij)/u(ij) 1/1 2/3 3/ 5 1/3 3/3 2/2 0/ 2 2/7 2 −4 −3 0 5

(18)

Circulações

PF 26

(19)

Delimitação inferior

Uma função-limite-inferior é qualquer função l de A em Z≥ . Uma circulação satisfaz uma função l se l ≤ x.

l(ij)/x(ij) 2/5 3/3 1/ 2 0/8 2/3 4/4 1/ 10 2/7 0 0 0 0 0

(20)

Problema da circulação viável

Dado uma rede (N, A, l, u) com função-limite-inferior l e função-capacidade u tais que l ≤ u, encontrar uma

circulação que satisfaz l e respeita u.

l(ij)/x(ij)/u(ij) 2/5/6 3/3/3 1/ 2/ 3 0/8/ 9 2/3/4 4/4 /4 1/ 10/ 11 2/7/8 0 0 0 0 0 Otimização Combinatória – p. 727

(21)

Existe circulação viável?

l(ij)/x(ij)/u(ij) 2/?/6 3/?/3 1/ ?/ 3 0/?/ 9 2/?/4 4/? /4 1/ ?/ 8 2/?/8 0 0 0 0 0

(22)

Teorema de Hoffman

Existe uma circulação x tal que l ≤ x ≤ u se e somente se l ≤ ucor e

l(T, T ) ≤ u(T , T ) para todo subconjunto T de N.

l(ij)/x(ij)/u(ij) 2/?/6 3/?/3 1/ ?/ 3 0/?/ 9 2/?/4 4/? /4 1/ ?/ 8 2/?/8 0 0 0 0 0 Otimização Combinatória – p. 729

(23)

Teorema de Hoffman (2)

Seja (N, A, u, l) uma rede com funções capacidades u e l. Existe uma circulação x tal que l ≤ x ≤ u se e somente se

l(T, T ) ≤ u(T , T ) para todo subconjunto T de N.

Demonstração (esboço):

(⇒) Suponha que x é uma circulação satisfazendo as condições e T é um subconjunto de N, então

l(T , T) ≤ x(T, T) = x(T , T ) ≤ u(T , T) .

(24)

Teorema de Hoffman (3)

Demonstração (esboço):

(⇐) Escolha um fluxo x tal que l ≤ x ≤ u e Φ = X(|e(i)| : i ∈ N) é mínimo.

Se Φ = 0, então x é uma circulação.

Podemos supor Φ > 0. Seja t ∈ N tal que e(t) > 0.

Seja T := {i ∈ N : existe ti-pseudo-caminho incremento}. 0 < e(T )

= x(T, T) − x(T, T ) = l(T, T) − u(T, T ) .

Referências

Documentos relacionados

Esta dissertação está organizada como segue: o Capítulo 2 apresenta a funda- mentação teórica, abrangendo conceitos de otimização combinatória, problemas de

O valor de cada unidade de participação é calculado mensalmente ao dia 21 (ou no dia útil anterior, no caso de não ser um dia útil) e no final de cada mês dividindo o valor

“Eu queria um lugar relaxante e convidativo para ajudar os homens a se sentirem à vontade para conversar e aprender mais sobre maquiagem, cortar o cabelo ou até conversar sobre

Em contraste com a técnica de algoritmos genéticos com representação binária que possui uma versão específica para resolver problemas de otimização

Estudamos um limite superior para o corte maximal de um grafo G em função do maior autovalor da matriz Laplaciana de G e descrevemos algumas classes para as quais o limite superior

O algoritmo de Bellman e Ford pode ser divido em passos um passo para cada valor de

O PACT é caracterizado como um problema de otimização combinatória, definindo a quantidade e os locais de instalação de chaves telecomandadas para minimizar a

III Workshop do Projeto Dicionário Histórico do Português do Brasil 47 Exemplos de buscas (7) ● Sufixos ● Unitex : &lt;&lt;mente$&gt;&gt; ● Philologic: .*mente ● Resultados