• Nenhum resultado encontrado

Material da Aula Remota 01

N/A
N/A
Protected

Academic year: 2021

Share "Material da Aula Remota 01"

Copied!
5
0
0

Texto

(1)

Programac¸˜ao Inteira Mista e Branch-and-Bound

Resumo. Este material foi proposto como ac¸˜ao emergencial devido a pande-mia de Covid-19. Portanto pode conter erros devido ao curto prazo para sua montagem/revis˜ao.

1. Introduc¸˜ao

Problemas de otimizac¸˜ao frequentemente podem ser modelados como problemas linea-res, o que possibilita a resoluc¸˜ao exata dos mesmo. Neste artigo ser˜ao abordados alguns conceitos b´asicos sobre este tema.

Em [WINSTON 2004] o autor define em que um problema de programac¸˜ao li-near (PPL) como sendo um problema de otimizac¸˜ao que: 1) busca alcanc¸ar um valor m´aximo (ou m´ınimo) para uma func¸˜ao linear (chamada de func¸˜ao objetivo) composta por vari´aveis de decis˜ao e coeficientes; 2) cada uma das restric¸˜oes podem ser equac¸˜oes ou inequac¸˜oes lineares; 3) o valor das vari´aveis de decis˜ao deve satisfazer todas as restric¸˜oes do problema; e 4) Os valores v´alidos das vari´aveis de decis˜ao devem ser especificados nas restric¸˜oes ( Podem ser valores n˜ao nulos, positivos ou em casos espec´ıficos, toda a faixa de valores positivos, nulo ou negativos).

Os problemas de programac¸˜ao linear pode ser divididos em trˆes classes:

1. Problemas com todas as vari´aveis cont´ınuas - chamados problemas de programac¸˜ao linear (PPL); 2. Problemas com todas as vari´aveis inteiras - chamados pro-blemas de programac¸˜ao inteira (PPI); 3. Propro-blemas com vari´aveis cont´ınuas e inteiras-chamados problemas de programac¸˜ao mista (PPM).

Para a resoluc¸˜ao dos problemas de programac¸˜ao linear PPL pode-se utilizar o algoritmo Simplex. Este m´etodo teve origem nos anos de 1947, nos Estados Unidos, e atribui-se a George Bernard Dantizig Ourisson a sua primeira formulac¸˜ao. O m´etodo consiste em um procedimento iterativo que, a partir de uma soluc¸˜ao b´asica fact´ıvel, faz uma busca na vizinhanc¸a por soluc¸˜oes b´asicas fact´ıveis melhores at´e encontrar o valor ´otimo para a func¸˜ao objetivo [Belfiore and F´avero 2013].

De acordo [Hillier and Lieberman 2010], pode parecer que os problemas inteiros e mistos, derivados do PPL, sejam relativamente f´aceis de resolver. Afinal, PPL podem ser resolvidos com extrema eficiˆencia e a ´unica diferenc¸a ´e que os problemas de PPI tˆem muito menos soluc¸˜oes a serem consideradas. Contudo, existem duas fal´acias para esta ideia.

A primeira fal´acia est´a no fato de haver um n´umero finito de soluc¸˜oes vi´aveis, o que garante que o problema seja solucion´avel. De fato, os PPI, e por consequˆencia os PPM, com regi˜ao vi´avel limitada possuem apenas um n´umero finito de soluc¸˜oes vi´aveis. Contudo, o conjunto de soluc¸˜oes, mesmo sendo finito, pode ser muito grande. Para exem-plificar considere o caso simples de problemas de PLI com vari´aveis bin´arias. Com n vari´aveis, existem 2nsoluc¸˜oes a serem consideradas. Assim, cada vez que o valor de n ´e aumentada em uma unidade, o n´umero de soluc¸˜oes poss´ıveis dobra.

(2)

A segunda fal´acia ´e que remover algumas soluc¸˜oes vi´aveis de um problema de programac¸˜ao linear, que possuem valores das fracion´arios para as vari´aveis facilitar´a a soluc¸˜ao. Pelo contr´ario, segundo ele, ´e pelo fato de poder analisar as soluc¸˜oes vi´aveis n˜ao inteiras que se pode garantir encontrar a soluc¸˜ao ´otima do problema. As soluc¸˜oes ´otimas para PPLs, garantidamente, encontram-se nas bordas de seus poli´edros matem´aticos, que n˜ao necessariamente s˜ao pontos onde todas as vari´aveis assumem valores inteiros. Exis-tem algoritmos capazes de percorrer as bordas de um poli´edro maExis-tem´atico de modo efi-ciente, caso do algoritmo Simplex, e que portanto s˜ao capazes de resolver os problemas quando ´e permitido que as vari´aveis assumam valores fracion´arios. Neste sentido, PPL geralmente s˜ao consideravelmente mais f´aceis de resolver do que PLI e PLM.

Uma abordagem, possivelmente ingˆenua, para os problemas inteiros e mistos ´e a enumerac¸˜ao de suas soluc¸˜oes. Considerando um problema com n vari´aveis bin´arias, o n´umero de soluc¸˜oes cresce exponencialmente, o que muitas vezes impossibilita a explorac¸˜ao total do espac¸o de busca. Com n = 10 o n´umero de soluc¸˜oes poss´ıveis ´e 2n = 1024, j´a para n = 30 existem 2n = 1.073.781.824 possibilidades.

Este grande n´umero de possibilidaes, inviabiliza o uso de enumerac¸˜ao em grande parte dos casos, fazendo com que seja necess´ario o uso de estrat´egias com embasamento mais sofisticado. Uma das poss´ıveis estrat´egias para resolver um PPI/PPM ´e usar como base de aproximac¸˜ao a soluc¸˜ao do problema ignorando-se as restric¸˜oes de integralidade. Essa abordagem ´e chamada de relaxamento, e alguns os algoritmos mais bem-sucedidos para a soluc¸˜ao de PLIs/PLMs utilizam m´etodos de soluc¸˜ao para PPLs, como simplex, em seus mecanismos de resoluc¸˜ao [Brucker 2006, SANTOS 2016].

Nos dias atuais, os melhores algoritmos de PLI s˜ao muito superiores `a enumerac¸˜ao exaustiva. Houveram not´oria melhorias nas ´ultimas duas ou trˆes d´ecadas. Os problemas de PLI Booleana, que exigiam muito de tempo de computac¸˜ao para serem resolvidos h´a 25 anos, agora podem ser resolvidos em segundos com os melhores softwares comerciais.

Essa significativa evoluc¸˜ao no desempenho se deve a trˆes grandes fatores:

1) melhorias nos algoritmos de PLI Booleana, assim como, em outros algoritmos de PLI, 2) melhorias nos algoritmos de PPL que s˜ao muito usados nos algoritmos de PLI,

3) e a evoluc¸˜ao da performance dos elementos de hardware, incluindo computadores de mesa.

Alguns dos algoritmos mais bem sucedidos para PPI/PPM s˜ao:

Branch-and-bound, Plano de Cortes e Branch-and-cut.

O algoritmo Branch-and-bound elabora uma enumerac¸˜ao impl´ıcita das soluc¸˜oes do problema, podendo, no pior caso, examinar todas as soluc¸˜oes. Percorre espac¸o de busca montando uma ´arvore dinamicamente, onde o n´o raiz caracteriza o problema origi-nal a ser solucionado. As folhas representam soluc¸˜oes vi´aveis inteiras ou invi´aveis. Os n´os internos correspondem aos problemas de soluc¸˜ao fracion´aria derivados do problema original. O algoritmo mant´em a melhor soluc¸˜ao inteira obtida at´e o momento e um con-junto de n´os correspondentes aos problemas ainda n˜ao explorados. O primeiro passo do algoritmo ´e remover as restric¸˜oes de integralidade do problema original e inserir o pro-blema resultante desta remoc¸˜ao no conjunto de n´os ainda n˜ao explorados. A partir deste ponto o algoritmo repete as seguintes operac¸˜oes at´e que o conjunto conjunto mencionado esteja vazio: 1) remover um problema do conjunto; 2) resolver o problema escolhido e

(3)

3)decidir entre fazer ramificac¸˜ao ou poda. A operac¸˜ao de poda sempre remove elementos do conjunto. J´a a operac¸˜ao de ramificac¸˜ao tamb´em remove elementos mas dependendo das condic¸˜oes da soluc¸˜ao encontrada ela tamb´em pode inserir elementos.

J´a no algoritmo de Plano de Cortes, restric¸˜oes (cortes) s˜ao inseridas iterativamente no problema original. Nesta estrat´egia o problema inteiro ´e resolvido como um PPL, retirando as restric¸˜oes de integralidade. A partir da soluc¸˜ao encontrada faz-se um novo problema, com novas restric¸˜oes, forc¸ando a remoc¸˜ao da soluc¸˜ao encontrada do espac¸o de busca sem que nenhuma soluc¸˜ao inteira seja removida. O novo problema ´e resolvido e novas restric¸˜oes s˜ao inseridas, ciclicamente, excluindo parte do espac¸o de busca. O processo ´e repetido at´e alcanc¸ar uma soluc¸˜ao inteira.

O algoritmo de Branch-and-cut une o Branch-and-bound com Plano de Cortes visando reduzir o n´umero problemas resolvidos pelo branch-and-bound. Ele incorpora cortes v´alidos em cada problema resolvido, objetivando reduzir o n´umero de ramificac¸˜oes. Esta ac¸˜ao visa diminuir o tempo total de busca.

Dentre os m´etodos citados, um dos que mais recebe destaque na literatura ´e o m´etodo de Branch and Bound, que ser´a analisado em detalhes na Sec¸˜ao 1.1.

1.1. Branch-and-Bound

Em [Shamakhai 2017] cita-se que o algoritmo B&B ´e aplicado para resolver proble-mas de programac¸˜ao linear (PPL) buscando-se garantir a integralidade dos valores das vari´aveis de decis˜ao x1, x2, ..., xn de forma a maximizar/minimizar a func¸˜ao objetivo do

problema. Relaxac¸˜ao das vari´aveis fazem parte do m´etodo de resoluc¸˜ao de maneira que ´e poss´ıvel “andar” pelo espac¸o cont´ınuo de soluc¸˜oes at´e obter a soluc¸˜ao ´otima.

Neste algoritmo, o espac¸o de busca ´e percorrido utilizando uma ´arvore de busca como estrutura auxiliar. Cada um n´o representa o resultado de soluc¸˜oes prov´aveis em uma ´arvore de busca. Com a evoluc¸˜ao dos algoritmos e das definic¸˜oes matem´aticas dos PPL, foram definidos os limites superiores e inferiores de modo e reduzir o tempo computacio-nal em busca de soluc¸˜oes. A palavra Branch indica ramificac¸˜ao a partir de um n´o de modo a descobrir outras respostas para maximizar ou minimizar a func¸˜ao objetivo. J´a a palavra

Bound prop˜oe dois limites, um inferior e outro superior, que s˜ao usados, juntamente com

a func¸˜ao objetivo, no processo de explorac¸˜ao na ´arvore de busca.

O algoritmo elabora uma enumerac¸˜ao impl´ıcita das soluc¸˜oes do problema, o que implica que somente espac¸os considerados promissores s˜ao analisados. Para isso, o m´etodo constroi uma ´arvore dinamicamente, onde o n´o raiz caracteriza o problema ori-ginal a ser solucionado. As folhas representam soluc¸˜oes vi´aveis inteiras ou invi´aveis. J´a os n´os internos correspondem aos problemas de soluc¸˜ao fracion´aria derivados do pro-blema original. O algoritmo mant´em a melhor soluc¸˜ao inteira obtida at´e o momento e um conjunto de n´os correspondentes aos problemas ainda n˜ao explorados.

O primeiro passo do algoritmo ´e remover as restric¸˜oes de integralidade do pro-blema original e inserir o propro-blema resultante desta remoc¸˜ao no conjunto de n´os. A partir deste ponto o algoritmo repete as seguintes operac¸˜oes at´e o conjunto estar vazio:

1. remover um problema do conjunto; 2. resolver o problema escolhido;

(4)

A decis˜ao entre ramificac¸˜ao ou poda ´e dependente da soluc¸˜ao encontrada para cada problema. A ramificac¸˜ao ´e feita sempre que trˆes condic¸˜oes s˜ao satisfeitas: 1) a soluc¸˜ao encontrada ´e vi´avel; 2) a soluc¸˜ao encontrada tem func¸˜ao objetivo melhor do que a melhor soluc¸˜ao inteira obtida at´e o momento; e 3) a soluc¸˜ao encontrada contem vari´aveis fracion´arias que deveriam possuir valor inteiro. Caso qualquer uma destas condic¸˜oes falhe o algoritmo opta pela operac¸˜ao de poda.

A operac¸˜ao de ramificac¸˜ao consiste em, a partir do problema escolhido, denotado por p, criar outros dois problemas derivados, denotados por p+ e p−, restringindo o valor de uma vari´avel fracion´aria na soluc¸˜ao. Suponha que uma vari´avel x da soluc¸˜ao tenha um valor fracion´ario v. Assim o problema p+ ter´a a mesma func¸˜ao objetivo e o mesmo conjunto de restric¸˜oes de p, acrescido de uma restric¸˜ao adicional da forma x >=⌈v⌉. J´a o problema p− ter´a a mesma func¸˜ao objetivo e conjunto de restric¸˜oes de p, acrescido de uma restric¸˜ao adicional da forma x <= ⌊v⌋. Com isso, p+ e p− s˜ao inseridos no conjunto de problemas e p ´e removido. Note que ao executar uma operac¸˜ao de ramificac¸˜ao, o algoritmo retira um problema do conjunto, mas insere outros dois.

O processo de poda, feito nos demais casos, consiste de analisar qual condic¸˜ao da ramificac¸˜ao foi violada. Quando a soluc¸˜ao s do problema ´e inteira significa que o final do ramo (folha) foi atingido. Neste caso compara-se a soluc¸˜ao inteira s obtida neste ramo com a melhor soluc¸˜ao inteira s*, encontrada pela busca at´e o momento, e uma atualizac¸˜ao desta ´ultima ´e feita sempre que necess´ario. Quando a soluc¸˜ao encontrada para um problema for invi´avel, tamb´em significa que o final do ramo foi atingido. Observe que, n˜ao ´e necess´ario fazer a ramificac¸˜ao neste caso, pois inserir mais restric¸˜oes ao problema n˜ao far´a com que ele se torne vi´avel. Quando encontra-se uma soluc¸˜ao fracion´aria com func¸˜ao objetivo pior que s*, n˜ao se executa o processo de ramificac¸˜ao, devido ao fato de que a inserc¸˜ao de restric¸˜oes sempre mant´em ou piora na func¸˜ao objetivo. Neste sentido, nenhuma soluc¸˜ao encontrada nos problemas derivados deste ramo ser´a melhor que s*, n˜ao havendo necessidade de analis´a-las e, consequentemente, este ramo da ´arvore de busca pode ser eliminado (podado).

Veja na Figura 1 um breve exemplo ilustrativo da ´arvore de busca para o seguinte problema de maximizac¸˜ao. M ax z = 5x1+ 8x2 (1) S.a −x1+ x2 ≤ 6, (2) 5x1+ 9x2 ≤ 45, (3) x1, x2 ≥ 0 (4) x1, x2 inteiros (5)

A func¸˜ao objetivo ´e definida por (1). Dois conjuntos de restric¸˜oes de capacidade s˜ao definidas por (2) e (3). A express˜ao (4) trata da n˜ao negatividade e a integralidade das vari´aveis est´a representada em (5).

Ao buscar o melhor valor para func¸˜ao objetivo garantindo a vari´avel x1e x2 como

inteiro, o simplex calcula Z = 41, 78. Neste passo nem x1 ou x2 tornaram-se inteiros.

(5)

Figura 1. ´Arvore de busca do Branch and Bound pelo m ´etodo de Dakin

FONTE:[Haseen et al. 2014]

de forma que x2 ≤ 3 e x2 ≥ 4. No passo um encontra-se valores das vari´aveis, inteira,

com Z = 39 n˜ao necessitando fazer mais iterac¸˜oes neste lado da ´arvore. No passo dois novamente encontra-se vari´avel n˜ao inteira x1 mas o valor da func¸˜ao objetivo Z = 41 ´e

maior que no passo um. Estes passos s˜ao seguidos at´e encontrar o melhor valor da func¸˜ao objetivo para x1 ou x2 inteiros. O melhor valor neste problema se deu no passo seis de

forma que a func¸˜ao objetivo ´e Z = 40 com as duas vari´aveis x1 e x2 inteiras.

Referˆencias

Belfiore, P. and F´avero, L. P. (2013). Pesquisa Operacional para Cursos de Engenharia. Elsevier.

Brucker, P. (2006). Scheduling Algorithms. Springer, 5 edition.

Haseen, S., Sadia, S., Bari, A., and Ali, Q. (2014). Integer programming: Naz cut and a-t cut. International Journal of Engineering Science and Technology, 06:128–137. Hillier, F. and Lieberman, G. (2010). Introduction to Operations Research. Introduction

to Operations Research. McGraw-Hill Higher Education.

SANTOS, V. L. A. (2016). Sequenciamento de tarefas em m´aquinas paralelas com des-gastes dependentes da sequˆencia : Resoluc¸˜ao heur´ıstica. Master’s thesis, Universidade Federal de Vic¸osa.

Shamakhai, H. A. (2017). The 0 -1 multiple knapsack problem.

WINSTON, W. L. (2004). Operations Research : Applications and algorithms. Thomson Learning, 4 edition.

Referências

Documentos relacionados

c) Dois membros são selecionados de entre as nomeações propostas pelo Canadá ou pela União Europeia, que não podem ser nacionais do Canadá nem de um Estado- Membro da

A partir da idempotência, podemos obter uma melhor compreensão do modo como os extremos se fundem ao longo das escalas.. Este resultado pode ser associado, por exemplo,

Para a amostra estudada, há associação entre altos níveis de triglicerídeos e altas concentrações de colesterol total, LDL e VLDL, farta- mente descritos na literatura com

São modelos distintos: o primeiro, mais voltado para a pesquisa, nasceu na Universidade Humboldt [Berlim], no início do século 19, e o segundo, de orientação

Para baixo ângulo de espalhamento, nossos dados tendem a um máximo refletindo a relevância das transições singleto-singleto, e para altos ângulos de espalhamentos

A adesão de exercícios físicos no estilo de vida de idosos proporciona inúmeros benefícios, melhores condições para o enfrentamento de suas demandas, melhora

IV - Declaração da Entidade de Administração do Desporto a que pertence, atestando que está regularmente inscrito junto a ela e confirmando a participação e a

 Soluções Corporativas para clientes da Brasil Telecom fora da Região