Apêndice B
Poliedros

Embora pertençam ao mundo discreto, problemas de otimização combinatória têm aspectos contínuos e geométricos que é importante explorar.

B.1 O que é um poliedro?

Um poliedro é qualquer conjunto da forma {x:Axb} em que x e b são vetores e A é uma matriz. Mais precisamente, dado um conjunto finito E, um poliedro (= polyhedron) no espaço RE é o conjunto de todos os vetores reais indexados por E que satisfazem as restrições (1)Axb,

sendo b um vetor real indexado por algum conjunto V e A uma matriz real indexada por V×E.  [Poderíamos nos restringir aos vetores e matrizes racionais, uma vez que computadores digitais desconhecem números irracionais.]  Em geral, o mesmo poliedro pode ser representado por muitos pares (A,b) diferentes. Os exemplos abaixo mostram que essa definição é suficientemente flexível para acomodar restrições aparentemente diferentes das especificadas em (1).

Exemplo B.1: Considere a matriz A e o vetor b representados abaixo, com o vetor b na vertical à direita da matriz A.

111213141516212223242526313233343536414243444546

O poliedro {x:Axb} é o conjunto de todos os vetores (x1,x2,x3,x4,x5) que satisfazem o sistema de desigualdades:

11x1+12x2+13x3+14x4+15x5  1621x1+22x2+23x3+24x4+25x5  2631x1+32x2+33x3+34x4+35x5  3641x1+42x2+43x3+44x4+45x5  46

Exemplo B.2: O conjunto de todos os vetores (x1,x2) que satisfazem o sistema de desigualdades abaixo é um poliedro. (Todos os coeficientes são inteiros, mas isso é irrelevante.)

1x1+3x2181x1+0x261x12x221x11x252x1+1x21
figs/ccps/polyhedra-fig-6dot2-xxxx.png

Exemplo B.3: As figuras abaixo sugerem dois poliedros em RE com E={1,2,3}.

figs/grafos-exercicios/cubo-3d.png         figs/grafos-exercicios/dodecaedro-3d.png

Exemplo B.4: Seja P o conjunto de todos os vetores (x1,x2,x3) que satisfazem o sistema de desigualdades abaixo. Esse sistema é equivalente ao que aparece em seguida e tem a forma especificada na definição (1). Portanto, P é um poliedro. Em notação matricial, o poliedro é definido por Axb, sendo A e b a matriz e o vetor exibidos na última parte da figura.

x11x22x1+x25x1+2x20x1+x2+x39x3=3 x11x22x1+x25x12x20x1+x2+x39x33x33 1001010211051200111900130013

As restrições que definem um poliedro não precisam ser independentes entre si. Nesse exemplo, a quarta e a quinta desigualdades do sistema à esquerda são redundantes: o poliedro não se altera se essas desigualdades forem apagadas.

Exemplo B.5: Seja A uma matriz indexada por V×E e c um vetor indexado por E. O conjunto de todos os vetores y que satisfazem as restrições  yAc  é igual ao conjunto {y:ATyc}, onde AT a matriz transposta de A. Como o último conjunto tem a forma especificada na definição (1), {y:yAc} é um poliedro.

Exercícios B.1

  1. Mostre que o conjunto de todos os vetores x que satisfazem as restrições  Axb  é um poliedro.
  2. Mostre que o conjunto de todos os vetores x que satisfazem as restrições  Ax=b  é um poliedro.
  3. Mostre que o conjunto de todos os vetores x que satisfazem as restrições  Axb x0  é um poliedro.

B.2 Vértices de poliedros

Os vetores mais interessantes de um poliedro estão da fronteira, ou casca, do poliedro. Esses vetores satisfazem de maneira justa (isto é, com = no lugar de ) uma ou mais das restrições que definem o poliedro. Dentre esses vetores, os mais relevantes são os bicos, que definiremos de uma maneira geometricamente natural.

Um vetor x de um poliedro P:={x:Axb} no espaço RE é extremo se não existe vetor d0 tal que x+d e xd estão ambos em P.  Os vetores extremos de um poliedro também são conhecidos como vértices.

O conceito de vértice não está restrito a poliedros. Ele se aplica também a qualquer subconjunto convexo (veja o apêndice D) de RE.

Exemplo B.6: Considere o conjunto de todos os vetores (x1,x2) que satisfazem as desigualdades a seguir. (Faça uma figura.)

x1+x22x1+x20

O vetor (+1,+1) é um vértice nesse conjunto.

Exemplo B.7: Considere o conjunto de todos os vetores (x1,x2) que satisfazem as restrições a seguir.

x1+x23x1x20x20

Os vértices desse conjunto são (0,0), (32,32) e (3,0). (Faça uma figura.)

Exemplo B.8: Para a matriz A e o vetor b definidos abaixo, considere o poliedro {x:Axb}.

124A125126x320d1108b910

O vetor x e os vetores x+d e xd estão no poliedro. Portanto, x não é vértice do poliedro.

Exemplo B.9: Nem todo poliedro tem vértices. Considere o poliedro P:={x:Axb}, com A e b dados a seguir. (Faça uma figura.)

A+1+1d+11b2

Para qualquer x em P, tanto x+d quanto xd estão em P.

Exemplo B.10: Seja P o poliedro definido pelas desigualdades Axb. Seja x^ um vetor de P tal que Ax^=b. Suponha que x^ não é vértice de P. Então existe um vetor não nulo d tal que A(x^+d)b e A(x^d)b. Segue daí que Ad=0 e portanto o conjunto das colunas de A é linearmente dependente.

Lema B.1 (caracterização dos vértices) Seja A uma matriz indexada por V×E e b um vetor indexado por V. Seja x um vetor do poliedro P:={x:Axb} e I(x) o conjunto de todos os índices i em V tais que A[i,]x=b[i]. O vetor x é vértice de P se e somente se o conjunto das colunas da matriz A[I(x),] é linearmente independente.

Prova do se: Suponha que x não é vértice do poliedro. Então existe um vetor não nulo d tal que Ax+Adb e AxAdb. Para cada i em I(x), temos b[i]+A[i,]db[i]eb[i]A[i,]db[i], uma vez que A[i,]x=b[i]. Portanto, A[i,]d=0 para cada i. Logo, o conjunto das colunas de A é l.d.. Em particular, o conjunto das colunas de A[I(x),] é l.d..

Prova do somente se: Suponha que o conjunto das colunas de A[I(x),] é l.d.. Então existe um vetor não nulo d indexado por E tal que A[I(x),]d=0. Logo, A[I(x),](x±d)b[I(x)]. Por outro lado, A[h,]x<b[h] para cada h em VI(x). Logo, para algum número positivo ϵ suficientemente pequeno temos A[VI(x),](x±ϵd)b[VI(x)]. Em suma, A(x±ϵd)b e portanto x não é vértice de P. ■

O lema poderia ser enunciado assim: x é vértice do poliedro se e somente se o posto da matriz A[I(x),E] é |E|. Em outras palavras, x é vértice se e somente se o posto de colunas da matriz A[I(x),E] é pleno, e assim x é a única solução do sistema de equações A[I(x),E]x=b[I(x)].

Exemplo B.11: O lado esquerdo da figura abaixo mostra uma matriz A, um vetor b (à direita da matriz), e um vetor x^ (abaixo da matriz). Seja I(x^) o conjunto das 6 primeiras linhas de A. Então A[i,]x^=b[i] se e somente se iI(x^). Observe que o conjunto das colunas de A[I(x^),] é l.i.. (Portanto, o conjunto das colunas de A também é l.i..)  O vetor x^ é vértice do poliedro Axb.

1000201003001040001511005333342002010000430234510003010040010500016310093101143110133111182345

Agora considere os objetos A, b e x^ do lado direito da figura. Seja I(x^) o conjunto das 4 últimas linhas de A. Então A[i,]x^=b[i] se e somente se iI(x^). Embora o conjunto das colunas de A seja l.i., o conjunto das colunas de A[I(x^),] é l.d.. Portanto, o vetor x^ não é vértice do poliedro Axb.

Exemplo B.12: Considere novamente o poliedro P do exemplo B.4. Veja abaixo, mais uma vez, o sistema de desigualdades que define P. O subsistema formado pela primeira, segunda e sexta desigualdades (veja a coluna esquerda da segunda parte da figura) é satisfeito com igualdade pelo vetor (1,2,3) e por nenhum outro. Esse vetor pertence a P e portanto é um vértice de P.

x11x22x1+x25x1+2x20x1+x2+x39x3=3 x1=1x2=2x3=3x1=1x1+x2=5x3=3

O subsistema formado pela primeira, terceira e sexta desigualdades (veja a coluna direita da segunda parte da figura) é satisfeito com igualdade apenas por (1,4,3). Esse vetor pertence a P e portanto é um vértice de P. Analogamente, o subsistema formado pela segunda, terceira e sexta desigualdades define o vértice (3,2,3). Esses são os três únicos vértices de P.

Agora veja alguns subsistemas que não definem vértices. O subsistema formado pela primeira, quarta, e sexta desigualdades é satisfeito com igualdade apenas pelo vetor (1,12,3), mas esse vetor não pertence a P. O subsistema formado pela primeira, segunda, terceira e sexta desigualdades não é satisfeito com igualdade por nenhum vetor. O subsistema formado pela primeira e segunda desigualdades é satisfeito com igualdade por mais de um vetor.

Corolário B.2 O poliedro {x:Axb} tem um vértice se e somente se A tem posto igual ao número de colunas. ■

Corolário B.3 O número de vértices do poliedro {x:Axb} é finito. ■

Exercícios B.2

  1. Complete os detalhes da prova do lema B.1.
  2. Prove o corolário B.2.
  3. Prove o corolário B.3.
  4. ★ Seja Q o poliedro {y:yAc}, onde A é uma matriz indexada por V×E e c um vetor indexado por E. Seja y um vetor de Q e considere o conjunto de índices J(y)={jE:yA[,j]=c[j]}. Mostre que y é vértice de Q se e somente se o conjunto das linhas da matriz A[,J(y)] é l.i..
  5. ★ Seja P o poliedro {x:Axb e x0}, onde A é uma matriz indexada por V×E e b um vetor indexado por V. Seja x um vetor de P e considere os conjuntos de índices  I(x)={iV:A[i,]x=b[i]} J(x)={jE:x[j]=0}.  Mostre que x é vértice de P se e somente se o conjunto das colunas da matriz A[I(x),EJ(x)] é l.i..
  6. ★ Seja P o poliedro {x:Ax=b e x0}, onde A é uma matriz indexada por V×E e b um vetor indexado por V. Seja x um vetor de P e considere o conjunto de índices J(x)={jE:x[j]=0}. Mostre que x é vértice de P se e somente se o conjunto das colunas da matriz A[V,EJ(x)] é l.i..

B.3 Poliedros limitados

Um poliedro P é limitado (= bounded) se existem vetores l e u em RE tais que lxu para todo x em P. Em termos informais, um poliedro é limitado se cabe em um cubo. Um poliedro é ilimitado (= unbounded) se não for limitado.

Exemplo B.13: Considere o conjunto de todos os vetores (x1,x2) que satisfazem as desigualdades abaixo. (Faça uma figura.) Esse poliedro é ilimitado.

x1x24x1x22

Exemplo B.14: Considere novamente o poliedro do exemplo B.4. Trata-se do conjunto de todos os vetores (x1,x2,x3) que satisfazem o sistema de desigualdades abaixo. Esse poliedro é limitado pois 0xi5 para todo i. (Verifique!)

x11x22x1+x25x1+2x20x1+x2+x39x3=3

Lema B.4 Todo poliedro limitado não vazio tem pelo menos um vértice.

Esboço da prova: Seja {x:Axb} um poliedro limitado e x um vetor do poliedro. Seja I(x) o conjunto dos índices i tais que A[i,]x=b[i]. Se x não é vértice, então existe um vetor não nulo d tal que x+d e xd estão no poliedro. Seja ϵ o maior número positivo tal que x+ϵd está no poliedro. Um tal ϵ está bem definido pois o poliedro é limitado. Seja x o vetor x+ϵd. O conjunto de índices i para os quais A[i,]x=b[i] é um superconjunto próprio de I(x). Repita o processo com x no papel de x. Depois de um número finito de iterações, teremos um vértice. ■

A recíproca do lema não é verdadeira: muitos poliedros ilimitados têm vértices. Por exemplo, o vetor 0 é vértice do poliedro definido pelas desigualdades x0.

Poliedros inteiros

Um poliedro limitado é inteiro (= integral) se todos os seus vértices forem vetores inteiros. Poliedros limitados inteiros têm especial importância em otimização combinatória.

Exercícios B.3

  1. Prove o lema B.4.
  2. Seja P um poliedro não necessariamente limitado. Suponha que x0 para todo x em P. Mostre que P tem um vértice. [CCPS 6.3]