Embora pertençam ao mundo discreto, problemas de otimização combinatória têm aspectos contínuos e geométricos que é importante explorar.
Um poliedro é qualquer conjunto da forma $\conj{x : Ax \leq b}$ 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 $\R^E$ é o conjunto de todos os vetores reais indexados por $E$ que satisfazem as restrições \begin{equation}\label{def:polyhedron} Ax \leq b\,\text{,} \end{equation}
sendo $b$ um vetor real indexado por algum conjunto $V$ e $A$ uma matriz real indexada por $V\times 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 \eqref{def:polyhedron}.
Exemplo B.1: Considere a matriz $A$ e o vetor $b$ representados abaixo, com o vetor $b$ na vertical à direita da matriz $A$.
O poliedro $\conj{x : Ax \leq b}$ é o conjunto de todos os vetores $(x_1, x_2, x_3, x_4, x_5)$ que satisfazem o sistema de desigualdades:
Exemplo B.2: O conjunto de todos os vetores $(x_1,x_2)$ que satisfazem o sistema de desigualdades abaixo é um poliedro. (Todos os coeficientes são inteiros, mas isso é irrelevante.)
Exemplo B.3: As figuras abaixo sugerem dois poliedros em $\R^E$ com $E=\conj{1,2,3}$.
Exemplo B.4: Seja $P$ o conjunto de todos os vetores $(x_1,x_2,x_3)$ que satisfazem o sistema de desigualdades abaixo. Esse sistema é equivalente ao que aparece em seguida e tem a forma especificada na definição \eqref{def:polyhedron}. Portanto, $P$ é um poliedro. Em notação matricial, o poliedro é definido por $Ax \leq b$, sendo $A$ e $b$ a matriz e o vetor exibidos na última parte da figura.
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\times E$ e $c$ um vetor indexado por $E$. O conjunto de todos os vetores $y$ que satisfazem as restrições $yA \leq c$ é igual ao conjunto $\conj{y: \tr{A} y \leq c}$, onde $\tr{A}$ a matriz transposta de $A$. Como o último conjunto tem a forma especificada na definição \eqref{def:polyhedron}, $\conj{y : yA \leq c}$ é um poliedro.
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 $\leq$
)
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 := \conj{x : Ax \leq b}$ no espaço $\R^E$ é extremo se não existe vetor $\d\neq 0$ tal que $x+\d$ e $x-\d$ 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 $\R^E$.
Exemplo B.6: Considere o conjunto de todos os vetores $(x_1,x_2)$ que satisfazem as desigualdades a seguir. (Faça uma figura.)
O vetor $(+1,+1)$ é um vértice nesse conjunto.
Exemplo B.7: Considere o conjunto de todos os vetores $(x_1,x_2)$ que satisfazem as restrições a seguir.
Os vértices desse conjunto são $(0,0)$, $(\frac{3}{2},\frac{3}{2})$ e $(3,0)$. (Faça uma figura.)
Exemplo B.8: Para a matriz $A$ e o vetor $b$ definidos abaixo, considere o poliedro $\conj{x: Ax \leq b}$.
O vetor $x$ e os vetores $x+\d$ e $x-\d$ 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 := \conj{x: Ax \leq b}$, com $A$ e $b$ dados a seguir. (Faça uma figura.)
Para qualquer $x$ em $P$, tanto $x+\d$ quanto $x-\d$ estão em $P$.
Exemplo B.10: Seja $P$ o poliedro definido pelas desigualdades $Ax \leq b$. Seja $\xhat$ um vetor de $P$ tal que $A\xhat = b$. Suponha que $\xhat$ não é vértice de $P$. Então existe um vetor não nulo $\d$ tal que $A(\xhat+\d) \leq b$ e $A(\xhat-\d)\leq b$. Segue daí que \[ A\d = 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\times E$ e $b$ um vetor indexado por $V$. Seja $x$ um vetor do poliedro $P := \conj{x : Ax \leq b}$ e $I(x)$ o conjunto de todos os índices $i$ em $V$ tais que \[ A[i,\all]x = b[i]\text{.} \] O vetor $x$ é vértice de $P$ se e somente se o conjunto das colunas da matriz $A[I(x),\all]$ é 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 + A\d \leq b$ e $Ax - A\d \leq b$.
Para cada $i$ em $I(x)$, temos
\[
b[i] + A[i,\all]\d \leq b[i] \quad \text{e} \quad
b[i] - A[i,\all]\d \leq b[i]\text{,}
\]
uma vez que $A[i,*]x=b[i]$.
Portanto, $A[i,\all]\d=0$ para cada $i$.
Logo, o conjunto das colunas de $A$ é l.d..
Em particular, o conjunto das colunas de $A[I(x),\all]$ é l.d..
Prova do somente se
:
Suponha que o conjunto das colunas de $A[I(x),\all]$ é l.d..
Então existe um vetor não nulo $\d$ indexado por $E$ tal que
$A[I(x),\all] \d = 0$.
Logo,
\[
A[I(x),\all](x \pm \d) \leq b[I(x)]\text{.}
\]
Por outro lado, $A[h,\all]x \lt b[h]$ para cada $h$ em $V\setm I(x)$.
Logo, para algum número positivo $\epsilon$ suficientemente pequeno
temos
\[
A[V\setm I(x),\all](x \pm \epsilon \d) \leq b[V\setm I(x)]\text{.}
\]
Em suma, $A(x \pm \epsilon \d) \leq 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 $\xhat$ (abaixo da matriz). Seja $I(\xhat)$ o conjunto das $6$ primeiras linhas de $A$. Então $A[i,\all]\xhat=b[i]$ se e somente se $i\in I(\xhat)$. Observe que o conjunto das colunas de $A[I(\xhat),\all]$ é l.i.. (Portanto, o conjunto das colunas de $A$ também é l.i..) O vetor $\xhat$ é vértice do poliedro $Ax \leq b$.
Agora considere os objetos $A$, $b$ e $\xhat$ do lado direito da figura. Seja $I(\xhat)$ o conjunto das $4$ últimas linhas de $A$. Então $A[i,\all]\xhat=b[i]$ se e somente se $i\in I(\xhat)$. Embora o conjunto das colunas de $A$ seja l.i., o conjunto das colunas de $A[I(\xhat),\all]$ é l.d.. Portanto, o vetor $\xhat$ não é vértice do poliedro $Ax \leq b$.
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$.
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,-\frac{1}{2},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 $\conj{x : Ax \leq b}$ 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 $\conj{x : Ax \leq b}$ é finito. ■
Um poliedro $P$ é limitado (= bounded)
se existem vetores $l$ e $u$ em $\R^E$ tais que $l \leq x \leq u$
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 $(x_1,x_2)$ que satisfazem as desigualdades abaixo. (Faça uma figura.) Esse poliedro é ilimitado.
Exemplo B.14: Considere novamente o poliedro do exemplo B.4. Trata-se do conjunto de todos os vetores $(x_1,x_2,x_3)$ que satisfazem o sistema de desigualdades abaixo. Esse poliedro é limitado pois $0\leq x_i\leq 5$ para todo $i$. (Verifique!)
Lema B.4 Todo poliedro limitado não vazio tem pelo menos um vértice.
Esboço da prova: Seja $\conj{x : Ax \leq b}$ um poliedro limitado e $x$ um vetor do poliedro. Seja $I(x)$ o conjunto dos índices $i$ tais que $A[i,\all]x=b[i]$. Se $x$ não é vértice, então existe um vetor não nulo $\d$ tal que $x+\d$ e $x-\d$ estão no poliedro. Seja $\epsilon$ o maior número positivo tal que $x+\epsilon \d$ está no poliedro. Um tal $\epsilon$ está bem definido pois o poliedro é limitado. Seja $x'$ o vetor $x+\epsilon \d$. O conjunto de índices $i$ para os quais $A[i,\all]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 $x\geq 0$.
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.