UM PEQUENO ESTUDO SOBRE OTIMIZAÇÃO LINEAR

Documentos relacionados
3. Seja C o conjunto dos números complexos. Defina a soma em C por

Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos

Sobre a necessidade das hipóteses no Teorema do Ponto Fixo de Banach

DESIGUALDADES, LEIS LIMITE E TEOREMA DO LIMITE CENTRAL. todas as repetições). Então, para todo o número positivo ξ, teremos:

Análise de Regressão Linear Múltipla I

Estudando complexidade de algoritmos

Séquências e Séries Infinitas de Termos Constantes

Virgílio A. F. Almeida DCC-UFMG 1/2005

Preliminares 1. 1 lim sup, lim inf. Medida e Integração. Departamento de Física e Matemática. USP-RP. Prof. Rafael A. Rosales. 8 de março de 2009.

DERIVADAS DE FUNÇÕES11

Séries e aplicações15

1. Revisão Matemática

Material Teórico - Módulo Binômio de Newton e Triangulo de Pascal. Soma de Elementos em Linhas, Colunas e Diagonais. Segundo Ano do Ensino Médio

Material Teórico - Módulo Binômio de Newton e Triangulo de Pascal. Soma de Elementos em Linhas, Colunas e Diagonais. Segundo Ano do Ensino Médio

Métodos iterativos. Métodos Iterativos para Sistemas Lineares

Fundamentos de Análise Matemática Profª Ana Paula. Números reais

Exponenciais e Logaritmos (MAT 163) - Notas de Aulas 2 Prof Carlos Alberto S Soares

Soluções dos Exercícios do Capítulo 6

Alguns autores também denotam uma sequência usando parêntesis:

BÁRBARA DENICOL DO AMARAL RODRIGUEZ CINTHYA MARIA SCHNEIDER MENEGHETTI CRISTIANA ANDRADE POFFAL SEQUÊNCIAS NUMÉRICAS. 1 a Edição

ESTIMAÇÃO DA PROPORÇÃO POPULACIONAL p

Capítulo I Séries Numéricas

S E Q U Ê N C I A S E L I M I T E S. Prof. Benito Frazão Pires. Uma sequência é uma lista ordenada de números

Fundamentos de Análise Matemática Profª Ana Paula. Sequência Infinitas

CAP. I ERROS EM CÁLCULO NUMÉRICO

Dessa forma, concluímos que n deve ser ímpar e, como 120 é par, então essa sequência não possui termo central.

Sumário. 2 Índice Remissivo 17

UMA INTRODUÇÃO À TEORIA DE PONTOS CRÍTICOS

Induzindo a um bom entendimento do Princípio da Indução Finita

Material Teórico - Módulo de ESTATÍSTICA. As Diferentes Médias. Primeiro Ano do Ensino Médio

... Newton e Leibniz criaram, cada qual em seu país e quase ao mesmo tempo, as bases do cálculo diferencial.

CAPÍTULO IV DESENVOLVIMENTOS EM SÉRIE

4 Teoria da Probabilidade

Função Logarítmica 2 = 2

Alguns autores também denotam uma sequência usando parêntesis:

AULA Subespaço, Base e Dimensão Subespaço.

1. Definição e conceitos básicos de equações diferenciais

Estimar uma proporção p (desconhecida) de elementos em uma população, apresentando certa característica de interesse, a partir da informação

O termo "linear" significa que todas as funções definidas no modelo matemático que descreve o problema devem ser lineares, isto é, se f( x1,x2

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2007.

n ) uma amostra aleatória da variável aleatória X.

2.2. Séries de potências

Pesquisa Operacional I Programação Linear

MATEMÁTICA II. Profa. Dra. Amanda Liz Pacífico Manfrim Perticarrari

Capítulo II - Sucessões e Séries de Números Reais

Capítulo 5. CASO 5: EQUAÇÃO DE POISSON 5.1 MODELO MATEMÁTICO E SOLUÇÃO ANALÍTICA

Seqüências e Séries. Notas de Aula 4º Bimestre/2010 1º ano - Matemática Cálculo Diferencial e Integral I Profª Drª Gilcilene Sanchez de Paulo

Capítulo VII: Soluções Numéricas de Equações Diferenciais Ordinárias

Distribuições Amostrais

Lista de Exercícios #6 Assunto: Propriedade dos Estimadores e Métodos de Estimação

. Mas m 1 e Ftv (, ) , ou seja, ln v ln(1 t) ln c, com c 0 e

Cálculo II Sucessões de números reais revisões

Sequências Reais e Seus Limites

10 - Medidas de Variabilidade ou de Dispersão

Estimadores de Momentos

lim Px ( ) 35 x 5 ), teremos Px ( ) cada vez mais próximo de 35 (denotaremos isso da forma Px ( ) 35 ). UNIVERSIDADE FEDERAL DA PARAÍBA CAMPUS IV-CCAE

FUNÇÕES CONTÍNUAS Onofre Campos

Obtemos, então, uma amostra aleatória de tamanho n de X, que representamos por X 1, X 2,..., X n.

AMOSTRAGEM ALEATÓRIA DISTRIBUIÇÕES POR AMOSTRAGEM

FICHA de AVALIAÇÃO de MATEMÁTICA A 12.º Ano Versão 4

RESOLUÇÃO DE SISTEMAS NÃO LINEARES

6. Modelagem Matemática para Solução por Método Exato

5 Teoria dos Valores Extremos

Sumário. 2 Índice Remissivo 19

A letra x representa números reais, portanto

Secção 1. Introdução às equações diferenciais

Cap. VI Histogramas e Curvas de Distribuição

Matemática II º Semestre 2ª Frequência 14 de Junho de 2011

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ CAMPUS PATO BRANCO

UMA EXPERIÊNCIA COM MODELAGEM MATEMÁTICA NA LICENCIATURA EM MATEMÁTICA

Formas Normais. Dalton E. dos Santos, Kelvin E. Nogueira da Silva, Jorge L. dos Santos Ramos Jr.

Provas de Matemática Elementar - EAD. Período

Cálculo Numérico Lista 02

META Suprir algumas deficiências sobre álgebra ensinada em matemática no nível médio

Considerações finais

Prova-Modelo de Matemática

Lista de Exercícios Método de Newton

1.1. Ordem e Precedência dos Cálculos 1) = Capítulo 1

TE231 Capitulo 4 Interpolação Polinomial. Prof. Mateus Duarte Teixeira

1. Dados: Deve compreender-se a natureza dos dados que formam a base dos procedimentos

F- MÉTODO DE NEWTON-RAPHSON

Material Teórico - Módulo de Função Logarítmica. Função logarítmica e propriedades - Parte 3. Primeiro Ano - Ensino Médio

6.1 Estimativa de uma média populacional: grandes amostras. Definição: Um estimador é uma característica amostral (como a média amostral

PROVA DE MATEMÁTICA DA UNIFESP VESTIBULAR 2011 RESOLUÇÃO: Profa. Maria Antônia Gouveia.

Intervalos de Confiança

Prova Escrita de MATEMÁTICA A - 12o Ano a Fase

Cálculo III - SMA 333. Notas de Aula

FICHA de AVALIAÇÃO de MATEMÁTICA A 12.º Ano Versão 1

Probabilidade II Aula 12

A DESIGUALDADE DE CHEBYCHEV

n n ...

Limite, Continuidade e

( ) ( ) ( ) (19) O ELITE RESOLVE IME 2010 MATEMÁTICA - DISCURSIVAS. MATEMÁTICA QUESTÃO 01 Sejam os conjuntos P 1

Resolva os grupos do exame em folhas separadas. O uso de máquinas de calcular e telemóveis não é permitido. Não se esqueça que tudo é para justificar.

SEQUÊNCIAS IMPORTANTES PARA O LIMITE

Cap. 4 - Estimação por Intervalo

Teorema do limite central e es/mação da proporção populacional p

MATEMÁTICA II. Profa. Dra. Amanda Liz Pacífico Manfrim Perticarrari

CARACTERIZAÇÃO DO CONJUNTO EQUILIBRADOR PARA GRAFOS COM GAP NULO

Transcrição:

UNIVERSIDADE CAÓLICA DE GOIÁS DEPARAMENO DE COMPUAÇÃO BACHARELADO EM CIÊNCIA DA COMPUAÇÃO UM PEQUENO ESUDO SOBRE OIMIZAÇÃO LINEAR MAURÍCIO PEREIRA DE OLIVEIRA JUNHO 2009

UNIVERSIDADE CAÓLICA DE GOIÁS DEPARAMENO DE COMPUAÇÃO BACHARELADO EM CIÊNCIA DA COMPUAÇÃO UM PEQUENO ESUDO SOBRE OIMIZAÇÃO LINEAR rabalho de Coclusão de Curso apresetado por Maurício Pereira de Oliveira à Uiversidade Católica de Goiás, como requisito parcial para obteção do título de Bacharel em Ciêcia da Computação aprovado em 26/06/2009 pela Baca Eamiadora: Professor Marco Atoio F. Meezes, Dr. UCG Orietador Professor Jeová Martis Ribeiro, Esp. UCG Professora Bercholia Hoorato Alves, Ma. UCG GOIÂNIA, 26 DE JUNHO DE 2009 i

UM PEQUENO ESUDO SOBRE OIMIZAÇÃO LINEAR MAURÍCIO PEREIRA DE OLIVEIRA rabalho de Coclusão de Curso apresetado por Maurício Pereira de Oliveira à Uiversidade Católica de Goiás Departameto de Computação, como parte dos requisitos para obteção do título de Bacharel em Ciêcia da Computação. Professor Marco A. F. Meezes, Dr. Orietador Professor Jeová Martis Ribeiro, Esp. Coordeador de rabalho de Coclusão de Curso ii

Ao meu pai: A tua preseça sempre se fará setir. iii

AGRADECIMENOS À miha mãe e meus irmãos pelo apoio e icetivo que serviram de estímulo para que eu pudesse alcaçar meus obetivos. Ao professor Dr. Marco Atoio, orietador deste trabalho, pela compreesão, paciêcia e dedicação. iv

RESUMO O obetivo deste trabalho é realizar um estudo sobre otimização liear. Os problemas de programação liear, programação liear iteira e programação liear iteira 0-1 são apresetados. O método simple, devido a Datzig, resolve o problema de programação liear; mas o fato de um algoritmo resolver um problema ão sigifica que sea viável a prática, por isso a importâcia de se estudar compleidade de algoritmos. Foi usado o problema de Klee e Mity, além de três lemas e um teorema, coforme Papadimitriou e Steiglitz, para demostrar que o pior caso, o método simple tem compleidade de tempo epoecial. Palavras-chave: otimização, otimização liear, programação liear, programação liear iteira, programação liear iteira 0-1, método simple, compleidade de algoritmos. v

ABSRAC he goal of this work is to make a study about liear optimizatio. he liear programmig, iteger liear programmig ad 0-1 iteger liear programmig problems are preseted. he simple method, due to Datzig, solves the liear programmig problem; but the fact that a algorithm solvig a problem, ot mea that it is feasible i practice, so the importace of studyig compleity of algorithms. Was used the problem of Klee ad Mity, ad three slogas ad oe theorem, accordig with Papadimitriou ad Steiglitz, to show that i the worst case, the simple method has epoetial time compleity. Keywords: optimizatio, liear optimizatio, liear programmig, iteger liear programmig, 0-1 iteger liear programmig, simple method, compleity of algorithms. vi

UM PEQUENO ESUDO SOBRE OIMIZAÇÃO LINEAR SUMÁRIO LISA DE FIGURAS... viii LISA DE ABELAS... i LISA DE ABREVIAURAS E SIGLAS... INRODUÇÃO... 1 UM POUCO SOBRE MODELAGEM... 2 2.1 O Processo da modelagem... 2 2.2 Um problema de desigação... 3 2.2.1 O problema... 3 2.2.2 Um modelo... 4 INRODUÇÃO À PROGRAMAÇÃO LINEAR... 6 3.1 O problema primal... 6 3.2 O problema dual... 11 3.3 O método simple... 12 3.3.1 Algoritmo mestre... 13 3.3.2 Fase 1... 14 3.3.3 rasição da fase 1 para a fase 2... 15 3.3.4 Fase 2... 16 COMPLEXIDADE DE ALGORIMOS... 22 4.1 Itrodução à compleidade de algoritmos... 22 4.1.1 Compleidade média... 24 4.1.2 Compleidade pessimista... 24 4.2 Aálise assitótica... 26 4.3 Compleidade do algoritmo simple... 28 UMA INRODUÇÃO À PROGRAMAÇÃO LINEAR INEIRA... 33 5.1 O problema de otimização combiatória... 33 5.2 Os problemas de programação liear iteira... 34 CONCLUSÕES... 38 REFERÊNCIAS BIBLIOGRÁFICAS... 39 vii

LISA DE FIGURAS Figura 2.1 O processo da modelagem.... 2 Figura 4.1 Cubo de Klee e Mity.... 29 viii

LISA DE ABELAS abela 2.1 Dados gerais do problema.... 4 i

LISA DE ABREVIAURAS E SIGLAS PL PLI PPL sbv Programação Liear Programação Liear Iteira Problema de Programação Liear Solução Básica Viável

1 UM PEQUENO ESUDO SOBRE OIMIZAÇÃO LINEAR CAPÍULO I INRODUÇÃO A otimização é uma subárea iterdiscipliar. Ela pode ser vista como uma área da Matemática Aplicada, em Matemática; uma área da Pesquisa Operacioal, em Egeharias; ou aida uma área da Matemática Computacioal, em Computação. Como o próprio ome sugere, a otimização visa ecotrar, quado eistir, a melhor solução (ou as melhores soluções) para um problema. O problema de otimização cosiste em ecotrar, se possível, os miimizadores (ou maimizadores) de uma fução em uma determiada região. O obetivo deste trabalho é apresetar um estudo sobre uma área da otimização, a otimização liear. Um problema de otimização é um problema de otimização liear quado as fuções evolvidas são lieares. No capítulo 2, será apresetado o processo de modelagem de problemas, e o passo da formulação será eemplificado com um problema de programação liear iteira 0-1. No capítulo 3, estudaremos os fudametos da programação liear e o método simple, devido a Datzig. No capítulo 4, faremos uma itrodução à compleidade de algoritmos e verificaremos que, o pior caso, o método simple tem compleidade de tempo epoecial, utilizado o problema de Klee e Mity, além de três lemas e um teorema coforme Papadimitriou e Steiglitz. No capítulo 5, defiiremos os problemas de programação liear iteira e programação liear iteira 0-1. No capítulo 6 são apresetadas as coclusões deste trabalho. É importate afirmar que o capítulo 5 deste teto foi escrito pelo professor Dr. Marco Atoio Figueiredo Meezes.

2 CAPÍULO II UM POUCO SOBRE MODELAGEM Nosso obetivo este capítulo é estudar o processo de modelagem de problemas. Um modelo é uma represetação simplificada da realidade. Modelos são ferrametas úteis para uma melhor visualização e etedimeto de problemas reais. Como referêcia para o estudo de modelagem sugerimos Goldbarg e Lua [6]. 2.1 O Processo da modelagem No processo de tradução da realidade para um determiado modelo, é muito difícil cosiderar todos os elemetos evolvidos o problema. Mas, como o obetivo da modelagem é torar a visão da realidade o mais simples e clara possível, devemos cosiderar apeas os aspectos sigificativos, defiidos de acordo com o efoque e coteto do problema tratado. O modelo deve ser tal que as coclusões obtidas através de sua aálise e/ou operações sea estedida à realidade. A compreesão e defiição do problema são de grade relevâcia para o processo de modelagem. O processo de modelagem se divide em algus passos, coforme a Figura 2.1 (vea Ravidra, Phillips e Solberg [11]). Problema real Formulação Modelo matemático Dedução Solução do modelo Reformulação (se ecessário) Solução do problema real Iterpretação Figura 2.1 O processo da modelagem. O passo da formulação cosiste em traduzir a realidade empírica para seteças lógicas e dados obetivos, a fim de obter um modelo matemático. Essa tradução está sueita a erros e falhas de comuicação. Não eistem técicas precisas para coseguir um modelo

3 adequado, por isso é importate a capacidade de sítese, capacidade de aálise, ituição, eperiêcia, criatividade, além de outros fatores cogitivos. O próimo passo é a dedução do modelo. Nesta etapa buscamos aalisar e resolver o modelo através de algoritmos específicos. Geralmete, são usados métodos uméricos e programas de computador esta fase. Em seguida, é feita uma iterpretação de uma solução do modelo para uma solução do sistema real represetado. Esta fase evolve o ulgameto humao, sedo que o uso da eperiêcia e bom seso são de sigificativa relevâcia. Se a solução do modelo ão for compatível com a realidade, ou sea, se o modelo ão for validado, é ecessário reformular o mesmo. A reformulação será repetida até que uma solução adequada para o sistema real sea ecotrada. Depois de validado, o modelo poderá cotribuir para a tomada de decisões. A otimização é uma subárea iterdiscipliar. Ela pode ser vista como uma área da Matemática Aplicada, em Matemática; uma área da Pesquisa Operacioal, em Egeharias; ou aida uma área da Matemática Computacioal, em Computação. Como o próprio ome sugere, a otimização visa ecotrar, quado eistir, a melhor solução (ou as melhores soluções) para um problema. O problema de otimização cosiste em ecotrar, se possível, os miimizadores (ou maimizadores) de uma fução em uma determiada região. A seguir estudaremos o passo da formulação para um problema específico. 2.2 Um problema de desigação Com base em Fag e Puthepura [4], etraímos o seguite problema de otimização. 2.2.1 O problema Cico pessoas (A, B, C, D, E) estão desigadas para trabalhar em cico proetos diferetes (1, 2, 3, 4, 5). A abela 2.1 mostra quato tempo (em dias) uma determiada pessoa cosegue fializar um proeto específico. O pagameto diário (em uma orada de quatro horas) por pessoa é 60 reais. Supoha que uma pessoa é desigada para realizar um úico proeto e cada proeto só pode ser realizado por uma úica pessoa.

4 abela 2.1 Dados gerais do problema. Pessoas Proetos 1 2 3 4 5 A 5 5 7 4 8 B 6 5 8 3 7 C 6 8 9 5 10 D 7 6 6 3 6 E 6 7 10 6 11 2.2.2 Um modelo Neste caso defiimos i, i = 1,2,...,5 (i = 1, pessoa A e assim por diate) e = 1,2,..,5, os proetos pelas quais essas pessoas podem ser desigadas resposáveis. A variável i pode ser defiida como: { 1, se a pessoa i for desigada para o proeto i = 0, caso cotrário. Nosso iteresse agora é o de miimizar o custo para a eecução dos proetos. Assim, utilizamos os dados da abela 2.1 para costruir o valor da fução obetivo, a saber: 60( 5 11 + 5 12 + 7 13 + 4 14 + 8 15 + 6 21 + 5 22 + 8 23 + 3 24 + 7 25 + 6 31 + 8 32 + 9 33 + 5 34 + 10 35 + 7 41 + 6 42 + 6 43 + 3 44 + 6 45 + 6 51 + 7 52 + 10 53 + 6 54 + 11 55 ). Nosso obetivo de miimização está sueito a algumas restrições. Sabemos que cada pessoa é desigada para realizar um úico proeto, isto é, 5 = 1 i = 1, i = 1, 2,..., 5, e que cada proeto só poderá ser realizado por um úica pessoa, isto é, 5 i= 1 i = 1, = 1, 2,..., 5.

5 Portato, o osso modelo matemático que teta traduzir uma particular realidade do problema clássico de desigação (assigmet problem, em iglês), é dado pelo problema de otimização miimizar 60( 5 11 + 5 12 + 7 13 + 4 14 + 8 15 + 6 21 + 5 22 + 8 23 + 3 24 + 7 25 + 6 31 + 8 32 + 9 33 + 5 34 + 10 35 + 7 41 + 6 42 + 6 43 + 3 44 + 6 45 + 6 51 + 7 52 + 10 53 + 6 54 + 11 55 ). Sueito a: 5 = 1 i = 1, i = 1, 2,..., 5 5 i= 1 i = 1, = 1, 2,..., 5 i { 0,1}, i = 1, 2,..., 5 e = 1, 2,..., 5. O modelo obtido esta seção evolve apeas fuções lieares cuas variáveis de decisão podem assumir somete valores iteiros (mais especificamete, 0 ou 1). No próimo capítulo daremos iício ao estudo da programação liear.

6 CAPÍULO III INRODUÇÃO À PROGRAMAÇÃO LINEAR Neste capítulo estamos iteressados o estudo dos fudametos da programação liear (PL), em seus formatos primal e dual, e a solução de problemas de PL com o uso do método simple. Primeiramete, apresetaremos o problema de programação liear (PPL) em seu formato padrão, o setido de que qualquer PPL pode ser covertido para esse formato. Aida, caracterizaremos o couto viável como um poliedro com pelo meos um poto etremo quado ão vazio e euciado o eorema Fudametal da Programação Liear. Caracterizaremos, também, o couto de soluções ótimas como um poliedro com uma úica ou uma ifiidade de soluções ótimas quado ão vazio. Em seguida, defiiremos o problema de PL dual, para o PPL primal o formato padrão. Por fim, estudaremos o método simple, devido a Datzig [3], e sua covergêcia quado usada a regra de Blad [1]. Neste capítulo ispiramos fortemete em Meezes [8]. 3.1 O problema primal Dizemos que um problema de otimização é um problema de programação liear quado as fuções evolvidas são lieares e cotíuas (as variáveis assumem valores reais). Cosideremos os úmeros iteiros m e, tais que > m > 0. Dada uma matriz real A, m e os vetores m b R e c R, o problema de programação liear o formato padrão é o seguite problema de otimização: ( ) P miimizar sueito a: A c = b 0. Seguem-se as seguites defiições acerca do problema (P). Defiição 3.1 Cosidere o PPL (P) a) A fução liear a c é chamada fução obetivo e fução obetivo. c é deomiado o valor da b) O vetor m b R é deomiado vetor do lado direito.

7 c) O vetor c R é deomiado vetor custo. d) O couto X = { R ; A = b, 0} deomiado poto viável. e) Quado eiste, o úmero v(p) = mi{c ; X ótimo. O couto X(P)= { X é chamado couto viável. Um poto X é } é deomiado o valor ótimo ou custo ; c = v(p) } é chamado couto de soluções ótimas e um poto X ( P) é deomiado solução ótima ou miimizador ou poto de míimo. f) Quado eiste uma sequêcia ( k ), tal que k X e c k quado k, dizemos que (P) é um problema ilimitado. g) O problema (P) é deomiado problema iviável quado X é vazio. O PPL cosiste em ecotrar, se eistir, uma solução ótima, coforme item e) da Defiição 3.1. Caso ão eista solução ótima, devemos certificar se o PPL é um problema iviável ou ilimitado. Eemplo 3.1 Cosideremos o PPL o formato padrão, a saber miimizar 1 sueito a: + 2 1 2 = 1, 2 0. A matriz A, 1 2, é a matriz [1 1], o vetor b R é o vetor [2] e o vetor 2 c R é o vetor [ -1 0]. O valor da fução obetivo é 1. Quado defiimos o problema (P), dissemos que ele estava o formato padrão, ou sea, o primeiro grupo de restrições evolve apeas igualdades, todas as variáveis do modelo são ão egativas e queremos miimizar o valor da fução obetivo. A seguir, mostraremos como reduzir um PPL qualquer ao formato padrão. Na ocorrêcia de maimizar c sueito a: X, basta trocarmos o valor da fução obetivo, a saber: miimizar - c sueito a: X.

8 Nesse caso, o valor ótimo será ma { c ; X} mi { c ; X} solução ótima do problema ma { c ; X} =, pois, sedo * uma, c * = -(-c * ). Cosideremos i = 1,..., m. Na ocorrêcia de desigualdades do tipo ai b i ou = 1 ai b i, = 1 basta tomarmos +i 0, tal que ai + +i = b i ou = 1 ai - +i = b i, = 1 respectivamete, covertedo assim, as desigualdades em igualdades. +i é deomiada variável de folga quado adicioada à restrição; quado subtraída, é deomiada variável de ecesso. Cosideremos = 1,...,. Dados úmeros reais l e u, com l 0. Na ocorrêcia de variáveis do tipo l ou u, podemos cosiderá-las restrições do tipo ou, respectivamete. Aida cosiderado = 1,...,, a ocorrêcia de variáveis livres, ou sea, realizarmos uma mudaça de variáveis, defiido ˆ =, com 0 e ˆ 0. Em ehum dos casos cosideramos desigualdades estritas (dos tipos > ou <). Seguem-se algumas defiições acerca da geometria da programação liear. R, basta Defiição 3.2 Seam dados um vetor ão ulo escalar δ R. (a) O couto é deomiado um hiperplao; (b) Os coutos e { R ; a = δ } H = H H { R a δ } = l ; { R a δ } = u ; são deomiados semiespaços fechados; e a R, deomiado vetor ormal, e um

9 (c) Um poliedro coveo fechado ou, simplesmete, poliedro é um couto formado pela iterseção de um úmero fiito de semiespaços fechados. Pela defiição de poliedro, ota-se que o couto vazio é um poliedro. Depois de defiirmos poliedro, osso obetivo agora é caracterizar o couto viável como um poliedro com pelo meos um poto etremo quado ão vazio. A seguir, defiiremos solução básica viável. Defiição 3.3 Cosideremos o problema (P) tal que A teha posto completo, ou sea, posto(a) = m. (a) Uma matriz quadrada B, m m, obtida de A, com m vetores colua liearmete idepedetes, deomia-se matriz base de A. Uma matriz N, m (-m), obtida com os -m vetores colua de A deomia-se matriz ão base. (b) Cosidere a matriz base B. O couto de ídices correspodetes a B, que são os ídices das coluas de A que compõem B, é chamado couto de ídices base e deotado por I B. Os demais -m ídices compõem o couto de ídices ão base, deotado por I N. (c) Cosidere uma matriz base B, m m. As variáveis correspodetes a B, o sistema A = b, chamam-se variáveis básicas. O vetor de variáveis básicas é deotado por B. (d) Cosidere uma matriz ão base N, m (-m). As variáveis correspodetes a N, o sistema A = b, chamam-se variáveis ão básicas. Deotamos o vetor de variáveis ão básicas por N. (e) Uma solução básica ode as variáveis são ão egativas deomia-se solução básica viável. (f) Uma solução básica viável ode eiste ao meos uma variável básica ula deomia-se solução básica viável degeerada. Supohamos que I B sea o couto {1,..., m} e as variáveis básicas seam 1,..., m, e aida que I N sea o couto {m + 1,..., } e as variáveis ão básicas seam m+1,...,. Desevolvedo A = b, temos: 1 1 A = b B + N = b = B b B N. B N B N

10 Para N = 0, B 1 = B b, e é uma solução básica. Se B 1 = B b 0, para N = 0, etão é uma solução básica viável. Caso eista alguma coordeada de B igual a 0, para N = 0, e B 1 = B b 0, etão é uma solução básica viável degeerada. O próimo teorema estabelece uma relação etre potos etremos de um poliedro e soluções básicas viáveis. eorema 3.1 Cosideremos o PPL (P). Um poto viável somete se, é uma solução básica viável. X é um poto etremo, se e Coforme o eorema 3.1, podemos obter potos etremos através do cálculo de soluções básicas viáveis. Além disso, devemos observar que a correspodêcia etre potos etremos e soluções básicas viáveis ão é em geral um-a-um. O úmero de potos etremos em qualquer couto viável de um PPL é fiito, como euciado a seguir. Corolário 3.1 Cosideremos o PPL (P). O couto de soluções viáveis tem um úmero fiito de potos etremos. geometria. O próimo resultado caracteriza o couto viável através da formalização de sua eorema 3.2 Cosidere o PPL (P). O couto viável X é um poliedro com ao meos um poto etremo quado ão vazio. Além disso, o úmero de potos etremos é fiito. Fialmete estamos protos para euciar o teorema fudametal da PL. eorema 3.3 Cosideremos o PPL (P). Se (P) admite solução ótima, etão uma solução ótima é atigida em ao meos um poto etremo do couto viável. Após caracterizarmos o couto viável de um PPL, passamos agora à caracterização do couto de soluções ótimas.

11 eorema 3.4 Cosideremos o PPL (P). O couto de soluções ótimas é um poliedro e, quado ão vazio, possui uma úica ou uma ifiidade de soluções ótimas. Na próima seção trataremos do problema de programação liear dual para o PPL primal (P) o formato padrão. 3.2 O problema dual O problema de programação liear deomiado o dual do problema (P), é o seguite problema de otimização: (D) maimizar b y sueito a: A y + s = c s 0, ode o vetor m y R é deomiado variável dual e s R é um vetor com compoetes ão egativas deomiado folga dual. Seguem-se algumas defiições acerca do problema (D). Defiição 3.4 Cosideremos o problema (D). (a) A fução liear ya b y é chamada fução obetivo dual ou simplesmete fução obetivo. (b) O couto ( ) poto ( y s) S {, m ;, 0} S = y s R R A y + s = c s é deomiado couto viável e um, é deomiado poto viável. (c) O úmero v(d) = ma{b y; ( y s) S custo ótimo. (d) O couto S(D) = { ( y s) S poto ( y s), }, quado eiste, é deomiado o valor ótimo ou, ; b y = v(d)} é chamado couto de soluções ótimas e um, S( D) é deomiado solução ótima. Observe que o dual de um problema dual é o primal. Quer dizer, o dual do problema (D) é o problema (P).

12 O próimo teorema, eorema de Dualidade Fraco, relacioa os problemas primal e dual através de potos viáveis. eorema 3.5 Cosideremos os problemas (P) e (D). Supoha X e ( y, s) S quaisquer. Etão c b y. etre si. O próimo teorema, eorema de Dualidade, relacioa os problemas primal e dual eorema 3.6 Cosidere os problemas primal (P) e dual (D). Uma, e somete uma, das seguites afirmações é correta: (a) Se o problema (P) tem uma solução ótima, etão o problema (D) também tem uma solução ótima e os valores das fuções obetivos de ambos são iguais. Se o problema (D) tem uma solução ótima, etão o problema (P) também tem uma solução ótima e os valores das fuções obetivo de ambos são iguais. (b) Se (P) é um problema ilimitado, etão (D) é um problema iviável. Se (D) é um problema ilimitado, etão (P) é um problema iviável. A seguir, apresetaremos o eorema de Dualidade Forte, que relacioa os problemas primal (P) e dual (D) através de soluções ótimas. eorema 3.7 Supoha que os problemas (P) e (D) têm soluções viáveis. Etão, ambos têm soluções ótimas * X(P) e (y*, s*) S(D) e, ecessariamete, c * - b y* = (*) s* = 0. de PL. Na próima seção estudaremos o método simple, utilizado a solução de problemas 3.3 O método simple Algoritmos são a base da computação. Eles advêm da ecessidade de resolver algum problema e cosistem em um couto de regras claras, ode dada uma etrada, uma seqüêcia de operações é eecutada culmiado com uma saída correspodete. Um

13 algoritmo resolve um problema quado para qualquer etrada, a saída correspodete está correta. Nesta seção, estamos iteressados a solução de problemas de PL através do método simple, devido a Datzig [3]. 3.3.1 Algoritmo mestre Cosideremos o PPL (P) o formato padrão, a saber: ode são dados uma matriz real A ( ) P miimizar sueito a: A m R e vetores c = m b R e b 0, c R, com < m < 0. Cosideremos a matriz A de posto completo e o vetor do lado direito b 0. Caso eista alguma coordeada de b egativa, basta multiplicar a equação correspodete por meos um. No caso de m =, basta resolver um sistema de equações lieares algébricas. A idéia do método simple cosiste em camihar pela froteira de um couto poliedral de um PPL (P), através de potos etremos adacetes sucessivos com valores da fução obetivo estritamete decrescetes. A seguir, tetamos eprimir as idéias do método simple através de um algoritmo deomiado de algoritmo mestre. Algoritmo 3.1 Algoritmo mestre. Dados: k := 0. REPIA 0 solução básica viável iicial associada a uma matriz base iicial B 0. Escolha, se possível, uma ova variável básica daquelas variáveis ão básicas. Escolha, se possível, uma ova variável ão básica daquelas variáveis básicas. Atualize k := k + 1. Até que covira. k 1 k+ 1. B e +

14 A partir deste poto costruiremos o algoritmo simple baseado este algoritmo mestre. A primeira perguta que surge é: como determiaremos uma solução básica viável iicial? Esse problema é deomiado fase 1 ou problema de viabilidade, e cosiste em ecotrar um poto viável iicial. 3.3.2 Fase 1 forma: Cosideremos o PPL (P). Para o método simple, o problema fase 1 tem a seguite ( P 1) miimizar sueito a: e a A + a = b 0, a 0, ode m R. m a R é um vetor de variáveis chamadas variáveis artificiais e e é um vetor de us em Uma vez que b 0, para o problema (P 1 ), + m 0 R = a b é uma solução básica viável associada a uma matriz base, dada pela matriz idetidade I, m m. O próimo resultado garate a eistêcia de uma solução ótima para o problema (P 1 ), ou sea, garate que (P 1 ) amais será um problema ilimitado ou iviável. eorema 3.8 O problema (P 1 ) admite solução ótima. O próimo resultado é um critério de iviabilidade para o PPL origial (P). eorema 3.9 Cosidere ˆ, ˆ a iviável se, e somete se, ˆ 0. a uma solução ótima de ( P 1). Etão, (P) é um problema O procedimeto para resolver o problema (P 1 ) é aálogo àquele para a próima fase (problema de otimalidade ou fase 2), que estudaremos mais adiate.

15 O problema fase 1 foi costruído de tal modo que uma solução básica viável iicial está dispoível e, pelo eorema 3.8, possui uma solução ótima. Pelo eorema 3.9, obtemos uma solução básica viável iicial para a próima fase, ou certificamos que (P) é um problema iviável. Esse último caso ocorre quado o vetor de variáveis artificiais ˆa, em qualquer solução ótima de (P 1 ), é ão ulo, ou sea, quado o valor ótimo para o problema (P 1 ) é estritamete positivo. A seguir, mostraremos como é feita a trasição da fase 1 para a fase 2. 3.3.3 rasição da fase 1 para a fase 2 Supodo que o problema origial (P) ão é um problema iviável, devemos forecer uma solução básica viável iicial para o problema fase 2, isto é, o problema origial (P). No caso mais simples, quado todas as variáveis artificiais são variáveis ão básicas a solução ótima para o problema (P 1 ), etão basta elimiar as variáveis artificiais. Já o caso mais delicado, quado algumas das variáveis artificiais, ulas a solução ótima para (P 1 ), são variáveis básicas, devemos substituir estas variáveis por variáveis ão básicas e ão artificiais. A seguir, apresetaremos o procedimeto para a trasição da fase 1 para a fase 2, especificado a troca de variáveis artificiais básicas em artificiais, em I N *. I B * pelas variáveis ão básicas, ão Procedimeto 3.1 Fase 1 para a fase 2. Dados: uma matriz aumetada [ A I ] I B * por, ão base z + m R. N * A =, uma matriz base B *, coutos de ídices base I, J = { + 1,..., + m}, e uma solução ótima para ( ) Se alguma variável artificial a solução ótima de ( P 1) é variável básica, K : = I B * J. N* N* ( ) I : = I J K. P deotada 1 Calcule a matriz D, m I N*, B D =. A I N

16 Para i = 1: Se ( ) B * i m z é uma variável artificial, Ecotre ome = 1: I N *, tal que D i 0. ( ) ( ) i : = I ; i : = I ; b N* b B * i = { } { }; I : I { i } I : I i i B* B* b b =. N* N* b J : = 0/ Saída: I B : = I ; B* I : = I J ; N N* B : = ( B ) I B* ; B : = z B, N := 0 (0 é um vetor em m R ). A saída deste procedimeto forece para a próima fase coutos de ídices base I B e ão base I N, uma matriz base B e uma solução básica viável iicial vetor de variáveis básicas B e um vetor de variáveis ão básicas. N. R composta de um Na próima subseção estudaremos a fase 2 e euciaremos o algoritmo simple de duas fases utilizado a regra de Blad [1]. 3.3.4 Fase 2 Cosideremos o PPL (P). Supodo que a fase 1 foi cocluída, que o problema origial (P) ão é iviável e que á elimiamos todas as variáveis artificiais, partimos de uma solução básica viável e devemos escolher qual variável básica passará a variável ão básica. Cosideremos o problema origial (P). Por defiição, ˆ = B b e ˆ = 0. B 1 Por coveiêcia, particioamos a matriz A, de posto completo, e o vetor custo c como cn A = [ N B] e c =, cb N

17 ode B é uma matriz base m m e N é uma matriz ão base m ( m). Deotamos I B o couto de ídices base associados às variáveis básicas e I N o couto de ídices ão base associados às variáveis ão básicas. odo poto viável para (P) pode ser rearraado como Desevolvedo A = b, N =. B 1 1 N B B N B N A = b N + B = b B = b N = B b B N. (3.1) Desevolvedo c e usado a última igualdade, obtemos c = c N N + c B B = c c N N + c = c B B B 1 1 1 1 ( B b B N ) = c B b + ( c c B N ) 1 cn b + N 1 ( B N ) 0 B c B N B N B, (3.2) N ode m 0 R deota um vetor de zeros. Defiição 3.4 Dizemos que o vetor 1 c ( ) N B N cb s =, 0 é deomiado vetor custo reduzido. O vetor custo reduzido é o vetor das taas de redução o valor da fução obetivo com respeito à mudaça a variável básica. O próimo teorema os forece uma codição suficiete para verificar se uma solução básica viável é uma solução ótima. eorema 3.10 Se ˆ é uma solução básica viável com vetor custo reduzido ão egativo, etão ˆ é uma solução ótima para o problema ( P ). Este resultado quer dizer que se s < 0 é possível melhorar o valor da fução obetivo, caso cotrário, a solução básica viável correspodete é um poto ótimo.

18 A fim de simplificarmos a otação para o desevolvimeto do método simple, a partir deste poto ecluiremos a matriz N da implemetação e trabalharemos com os coutos de ídices base e ão base. Notação: Referido-os à matriz A particioada pela matriz base B e pela matriz ão base N, para {,..., m} l sistema 1, I N Além disso, deotamos l, i { 1,...,m} e i I B m k, deotamos ( l) R ( l) N Al Bd = =. l d i ( l) R, para cada i { 1,...,m}, a coordeada i do vetor ( ) d, a solução úica do d l associada à colua ki da matriz A. Com o próimo resultado, é possível verificar se um PPL é um problema ilimitado. eorema 3.11 Cosideremos o PPL ( P ). Sea dada uma solução básica viável ˆ associada a uma matriz base B. Se < 0 ilimitado. s e ( h) 0 h d, para algum I N h, etão ( ) P é um problema O próimo teorema forece um critério de possível melhoria para o valor da fução obetivo do problema (P). eorema 3.12 Cosideremos o problema de PL ( P ). Sea dada uma solução básica viável ˆ associada a uma matriz base B, e uma matriz ão base N. Cosideremos s < 0, para algum h, tal que eiste ( h) > 0 I N d i ao meos para algum ki I B. Aida, cosidere ˆ k ˆ q ki = mi ; d ( h) > 0, k I d ( ) i 1,..., m q h = di ( h) i i B h. (3.3) Etão, fazedo ˆ d ( h) h = a ova variável básica, aulamos k q q k q, fazedo-a variável ão básica, obtedo assim uma ova solução básica viável tal que estrita caso o valor h sea positivo. c c ˆ, com desigualdade

19 O teorema acima os respode à perguta de como escolher ovas variáveis básicas e ão básicas: basta escolher algum ídice l I N com s l < 0, tal que l é a ova variável básica, e escolher algum ídice ki I B satisfazedo (3.3) tal que ki é a ova variável ão básica. O algoritmo simple aida ão está completo. Isso porque durate a aplicação do método simple pode ocorrer um feômeo deomiado ciclagem, que cosiste em voltarmos para a mesma matriz base após um certo úmero de iterações, quado eiste uma solução básica viável degeerada. A fim de cotorar esse problema e garatir a covergêcia do método simple, utilizaremos uma mesma regra que decide quem vai etrar e sair da base: a regra de Blad [1], também cohecida como regra do meor ídice. Segudo essa regra, a mudaça a base deve ser feita da seguite forma: (i) etre todos os cadidatos a etrar a base, selecioe a variável h tedo o meor ídice, isto é, ecotre { l s } h = mi ; < 0 ; l I N l (ii) etre todos os cadidatos a sair da base, selecioe a variável k tedo o meor ídice, q isto é, ecotre k k ki 0 k i kq = mi ki ; = mi ; d ( ) 0, 0 i h > ki I B. k 1,... k i I 0 B k d ( ) i m i h = d ( ) 0 i h O elemeto d q (h) é deomiado pivô. Para o formato origial (tabular) do método simple, que ão será abordado esse trabalho, a q-ésima liha é deomiada liha pivô e a h-ésima colua é deomiada colua pivô. Agora estamos protos para euciar o algoritmo simple revisado fases 1 e 2 para o PPL (P) com uma técica ati-ciclagem, a regra de Blad. Se ecessário, usaremos o Procedimeto 3.1 para a trasição da fase 1 para a fase 2. Algoritmo 3.2 Simple Fases 1 e 2. Fase 1: obtemos uma solução básica viável 0 associada a uma matriz base iicial B 0, um couto de ídices base I B e um couto de ídices ão base I 0 N, 0

20 k := 0. REPIA elimiado todas as variáveis artificiais. Caso cotrário, certificamos problema iviável. Calcule o vetor multiplicador simple Calcule o vetor custo reduzido k m y R, B y = c B k s R tal que, s l = 0, para todo l I B e k. s l = cl y Al, para todo I N k l. Se s 0 etão seão k é uma solução ótima; Etrada a base: calcule o ovo ídice base { l s } h = mi ; < 0. l l I Nk Calcule o vetor direção d m ( h) R, B d( h) =. k A h Se d ( h) 0 etão problema ilimitado; seão Saída da base: calcule o ovo ídice ão base k k k i0 ki k q = mi ki ; = mi ; d i ( h) > 0, ki I ki I 0 i= m Bk di ( h) 1,... 0 di ( h) 0 Atualize os ídices base e ão base, respectivamete, Atualize a matriz base: I I B : = I { h} { k Bk + 1 Bk q ; : = I { k } { N h k + 1 Nk q. } } ( A ) h Ak eq := k + 1 Bk +, q Bk. ode m eq R é um vetor de zeros com valor um a posição q = 1,...,m. Novo poto: calcule a ova solução básica viável k+1 R,

21 k + 1 Bk B = b k + 1 ; + 1 k+1 : = 0. k q k : = k +1. AÉ QUE ( s 0) ou ( d ( h) 0). O próimo resultado garate a covergêcia do Algoritmo 3.2. eorema 3.13 O algoritmo simple revisado fases 1 e 2, com a regra de Blad, coverge. No próimo capítulo, estudaremos compleidade de algoritmos, e, em especial, a compleidade do algoritmo simple.

22 CAPÍULO IV COMPLEXIDADE DE ALGORIMOS Algoritmos são a base da computação. Eles cosistem em um couto de regras claras, ode, dada uma etrada, uma seqüêcia de operações é eecutada culmiado com uma saída correspodete. Dizemos que um algoritmo resolve um problema corretamete quado, para qualquer etrada, a saída correspodete está correta. Porém, o fato de um algoritmo resolver um dado problema ão sigifica que sea viável a prática, pois recursos como espaço e tempo são requeridos. Um algoritmo pode se torar iútil caso ecessite de uma quatidade ecessiva de recursos para sua eecução. Neste capítulo, faremos uma itrodução à compleidade de algoritmos e estudaremos a compleidade do método simple o pior caso. Ispiramos fortemete em oscai e Veloso [13], e em Papadimitriou e Steiglitz [10]. 4.1 Itrodução à compleidade de algoritmos A compleidade de um algoritmo represeta o esforço computacioal para eecutá-lo. Esse esforço pode ser medido levado em cosideração fatores como tempo e espaço, que se referem, respectivamete, à velocidade e a quatidade de memória requerida para a eecução do algoritmo. Para determiar a compleidade de um algoritmo, poderíamos aalisar o esforço requerido para sua eecução em um computador específico. Etretato, características da máquia e/ou da implemetação podem iflueciar a aálise do algoritmo. Assim, uma alterativa é fazer uma aálise do algoritmo idepedete de implemetação. Em geral, a quatidade de trabalho de um algoritmo depede da etrada. Por eemplo, em um algoritmo para multiplicação de matrizes, a quatidade de operações a serem realizadas depede da ordem das matrizes; para a busca de um elemeto em uma lista, a quatidade de trabalho depede do tamaho da lista e da forma em que os elemetos estão dispostos ela. Sedo assim, vamos os referir à quatidade de trabalho requerida para eecutar um algoritmo para uma dada etrada como o desempeho do algoritmo (para essa etrada).

23 Quado usamos o tempo de eecução de um algoritmo como medida de desempeho do mesmo, estamos falado em compleidade de tempo, á quado usamos a quatidade de memória requerida como medida de desempeho do algoritmo trata-se de compleidade de espaço. Nesse teto, daremos mais ateção à compleidade de tempo. A quatidade de trabalho requerida para eecução de um algoritmo pode ser medida em fução da quatidade de vezes que uma determiada operação é eecutada. Chamaremos essa operação de operação fudametal. Por eemplo, para um algoritmo de ordeação de um vetor, poderemos usar como operação fudametal a comparação etre os elemetos quato à ordem. Em algus casos, pode-se escolher mais de uma operação fudametal e adotar pesos diferetes para elas. Veamos um eemplo para ilustrar essas idéias. Eemplo 4.1 Segue-se um procedimeto para determiar o maior detre os elemetos de um vetor. Procedimeto 4.1 Máimo de um vetor Etrada: vet: vetor[1...]. Saída: ma = valor máimo em vet. ma vet[1]; para i = 2 : se ma < vet[i] etão ma vet[i]; fim se fim para retora(ma); fim Procedimeto O Procedimeto 4.1 iicia adotado o primeiro elemeto do vetor como o máimo, em seguida itera sobre os outros elemetos do vetor, atualizado a variável ma sempre que ecotra algum valor maior do que a estimativa atual. Para esse procedimeto, adotaremos como operação fudametal a comparação < (em se ma < vet[i] ). Essa comparação é efetuada -1 vezes, ou sea, o desempeho do Procedimeto 4.1 para qualquer etrada é -1.

24 A medida de desempeho de um algoritmo é muito parcial, uma vez que é medida em fução de uma etrada específica. Há casos, em que até mesmo etradas de um mesmo tamaho, resultam em desempehos diferetes, como por eemplo, em um algoritmo para busca de um elemeto em um vetor, ode o elemeto pode ser ecotrado em qualquer posição, e o úmero de comparações efetuadas será o úmero da posição em que o elemeto buscado se ecotra. A fim de forecer uma avaliação mais geérica acerca de um dado algoritmo, deseamos associar a quatidade de trabalho requerida por um algoritmo à cada tamaho de etrada, e ão à uma etrada específica. Como á dissemos, um algoritmo pode apresetar desempehos distitos para etradas do mesmo tamaho. Nesse poto surge uma questão: qual medida de desempeho escolher para avaliação do algoritmo? Para respoder a essa perguta, poderemos adotar algus critérios, como por eemplo, tomar o valor máimo ou médio detre os desempehos. 4.1.1 Compleidade média A compleidade média ou esperada de um algoritmo é a média dos desempehos do algoritmo sobre cada etrada de tamaho usado como peso a probabilidade de ocorrêcia de cada etrada. Seam D o couto dos dados de etrada para um algoritmo a e etradas de tamaho, tal que D { d D; tam( d) } algoritmo a (que deotaremos por c M [a]), será M D o couto de = =. A compleidade média de um =, [ ]( ) [ ( ). [ ]( )] c a prob d desemp a d d D ode prob(d) é a probabilidade de ocorrêcia da etrada d o couto desempeho do algoritmo a quado eecutado sobre a etrada d. D e desemp[a](d) é o Cosideremos um algoritmo a com 100 etradas de tamaho 10, ode cada uma das etradas tem a mesma probabilidade de ocorrêcia e cada etrada d i apreseta o desempeho r i, i = 1,..., 100. Nesse caso teremos: 1 cm [ a]( 10 ) =.( r1 +... + r100 ). 100 4.1.2 Compleidade pessimista

25 A compleidade pessimista (pior caso) de um algoritmo a correspode ao valor máimo etre os seus desempehos sobre as etradas de tamaho, a saber P [ ]( ) ma { [ ]( ) ; } c a = desemp a d R d D. Para ilustrar esse coceito, segue-se um eemplo de um algoritmo de busca sequecial de um elemeto em um vetor. + Eemplo 4.2 Busca Sequecial O problema cosiste em procurar por um valor (chave) ch em um vetor vet com elemetos para determiar se ch ecotra-se em vet ou ão. Para isso, usaremos uma variável booleaa achou que será verdadeira caso ch eista em vet, ou falsa caso cotrário. Segue-se o procedimeto. Procedimeto 4.2 Busca Sequecial Etrada: ch: Valor, vet: Vetor[1... ] de Valor. Saída: achou e pos (achou=v caso ch eista em vet, achou=f caso ch ão eista em vet e vet[pos]=ch). i 0; achou F; repita i i + 1; se vet[i] = ch etão achou V fim se até que achou ou i = ; se achou etão pos i fim se retora(achou, pos); fim Procedimeto. Adotaremos como operação fudametal a comparação de igualdade etre a chave e o elemeto correte do vetor (se vet[i] = ch). Essa comparação é eecutada até ecotrar um elemeto com valor igual ao de ch ou os elemetos de vet se esgotarem sem ecotrar a chave. Portato é fácil verificar que: se ch ecotra-se a primeira posição de vet, será realizada uma comparação; se ch ecotra-se a seguda posição de vet, serão realizadas duas comparações;

26... se ch ecotra-se a k-ésima posição de vet, serão realizadas k comparações;... se ch ecotra-se a -ésima posição de vet (ou ão eiste em vet), serão realizadas comparações. Portato, o pior caso, a operação fudametal será eecutada vezes, ou sea, a compleidade pessimista para o algoritmo Busca Sequecial é c [ ]( ). P Busca Sequecial = Cosiderado que a probabilidade de ter um valor igual ao da chave sea a mesma para todos os elemetos do vetor, a compleidade média será: 1 1+ cm [ Busca Sequecial]( ) =.( 1+ 2 +... + ) =. 2 Estudado compleidade, uma questão que surge é como escolher o melhor algoritmo para um determiado problema. Um dos critérios mais utilizados é o comportameto assitótico do algoritmo, ou sea, o comportameto do algoritmo sobre etradas de tamaho grade. 4.2 Aálise assitótica A compleidade assitótica de um algoritmo descreve o comportameto deste para etradas suficietemete grades. O algoritmo mais eficiete assitoticamete é aquele que tem melhor desempeho para todas as etradas, talvez eceto aquelas relativamete pequeas. Em geral, a compleidade eata de um algoritmo pode coter muita iformação. Por eemplo, cosideremos um algoritmo com compleidade igual a 4 + 2. Quado aalisamos essa epressão do poto de vista assitótico, isto é, para grade, vemos que a parcela costate 2 é domiada pela parcela 4 à medida que cresce. Para = 100, por eemplo, teríamos 4 + 2 = 402, equato que se desprezássemos a parcela costate 2, teríamos 4 = 400, resultado em uma difereça de aproimadamete 0,5%, e essa difereça percetual dimiui à medida que cresce. Cocluímos portato que a parcela 2 é desprezível, e simplificaremos a epressão 4 + 2 para 4.

27 Aalisado a epressão 4, vemos que ela cresce mais rapidamete do que, mas com uma razão costate igual a 4. Essa situação é similar à que ocorre em uma mudaça de escala, como de cetímetros para metros por eemplo. Portato, vamos simplificar 4 para. Geralmete, o cálculo da compleidade de um algoritmo cocetra-se a ordem de magitude da epressão que represeta o úmero de vezes que a operação fudametal (ou operações fudametais, levado em cosideração o peso de cada uma) é eecutada. A seguir, defiiremos as otações assitóticas mais comumete utilizadas para comparação do comportameto assitótico de fuções que represetam a compleidade de um algoritmo. Defiição 4.1 Seam f e g fuções tais que f, g: N R +. a) Dizemos que f() = O(g()) quado eistem uma costate c > 0 e um atural 0, tais que, para todo 0, f() < c.g(), isto é, g() cresce mais rapidamete que f() e permaece acima a partir de certo poto. b) Dizemos que f() = Ω (g()) quado eistem uma costate d >0 e um atural 0, tais que, para todo 0, g() < d.f(), isto é, f() cresce mais rapidamete que g() e permaece acima a partir de certo poto. c) Dizemos que f() = Θ (g()) quado eistem costates c, d >0 e um atural 0, tais que, para todo 0, c.g() < f() < d.g(). Podemos deotar f() = O(g()) também por f() é O(g()), ocorredo o mesmo com as outras otações. A letra grega O chama-se ômicro ( o pequeo). Se f() = O(g()), podemos dizer também f() é ômicro de (g()) ou f() é pequeo para (g()). A letra grega Ω chama-se ômega ( o grade). Se f() = Ω (g()), podemos dizer também f() é ômega de (g()) ou f() é grade para (g()). Notemos que a ordem Θ é um caso particular das ordes O e Ω, pois se f() é Θ (g()), f() também é O(g()) e Ω (g()). Portato, Θ é uma relação de equivalêcia, isto é, se f() = Θ (g()), etão f() e g() têm o mesmo comportameto assitótico. Dizemos que um algoritmo é O(1), se o úmero de operações fudametais eecutadas é costate, ou sea, ão muda de acordo com a etrada.

28 Algoritmos de ordem O(1), O(), O( 2 ) são ditos poliomiais, isto é, têm compleidades limitadas por poliômios. Já algoritmos de ordem Ω (2 ), Ω (3 ) são ditos epoeciais, pois ão têm compleidades limitadas por poliômios. Diremos que um algoritmo é bom se este tiver compleidade de tempo poliomial. Na próima seção, veremos que o algoritmo simple ão é um algoritmo com compleidade de tempo poliomial o seu pior caso. 4.3 Compleidade do algoritmo simple Nosso obetivo esta seção é demostrar que a compleidade de tempo do método simple o pior caso ão é poliomial. Para isto, os basearemos o problema de Klee e Mity [7]. Para mostrarmos que o algoritmo simple ão é um algoritmo poliomial basta ecotrarmos uma família de istâcias para a qual ele faz um úmero epoecial (o tamaho do problema de PL) de mudaças a base, isto é, deseamos ecotrar uma sequêcia epoecial de soluções básicas viáveis 1 2 k,,..., tais que i e i 1 + são adacetes e satisfazem i 1 i c + < c, i = 1,..., k 1. Como vimos o capítulo aterior, as sbv s de um problema de PL correspodem aos potos etremos do poliedro que represeta o couto de soluções viáveis. Além disso, sbv s ão degeeradas adacetes de um problema de PL correspodem a potos etremos uidos por um segmeto de reta (face uidimesioal) do poliedro. Por eemplo, (0, 0, 1) e (0, 1, 1) a Figura 4.1 (a) são adacetes. Supohamos que a direção de dimiuição do vetor custo é para cima. Deseamos descobrir uma sequêcia epoecial de potos etremos que são um adacete ao próimo, e cada poto etremo foreça um valor para a fução obetivo melhor do que o poto etremo aterior a sequêcia. Precisaremos etão de um poliedro que teha um úmero epoecial de potos etremos o tamaho do PPL. omaremos como eemplo o cubo 0 1, = 1, 2, 3, mostrado a Figura 4.1 (a). O cubo tridimesioal possui 6 lados (faces) e 8 potos etremos (vértices). Em geral, o cubo d-dimesioal defiido pelas desigualdades

29 0 1, = 1, 2,..., d, possui 2d faces, sedo uma para cada iequação, e 2 d disposição do couto { 1, 2,..., d }, para {0,1}, = 1, 2,..., d. iequações: vértices, sedo um para cada Agora, iremos costruir um poliedro similar ao cubo, defiido pelas seguites 1 1 ε 1 ε ε, = 2, 3,..., d, (4.1) 1 1 ode 1 0 < ε <. 2 (a) Figura 4.1 Cubo de Klee e Mity. (b) O poliedro (4.1) é uma perturbação do cubo d-dimesioal. Um eemplo tridimesioal (para d = 3) é apresetado a Figura 4.1 (b). Nessa figura também é apresetada uma loga sequêcia de vértices adacetes dimiuido o custo, ou sea, melhorado o valor da fução obetivo. Nosso obetivo aqui é demostrar a eistêcia dessa sequêcia. Passaremos agora (4.1) para o formato padrão. Para isso, adicioaremos d variáveis de folga e d variáveis de ecesso, obtedo m = 2d e = 3d. Nosso obetivo será maimizar d (ou miimizar otimização: d ). O PPL completo o formato padrão é o seguite problema de

30 miimizar sueito a: r = ε 1 1 1 1 ε r = 0 1 + ε + s = 1, = 2,..., d 1 d + s = 1, r, s 0, = 1,..., d. (4.2) O próimo lema caracteriza o couto de soluções básicas viáveis de (4.2); coforme Papadimitriou e Steiglitz [10]. Lema 4.1 O couto das variáveis básicas de (4.2) é um subcouto de {,...,,,...,,,..., } r r s s cotedo todos os s e eatamete um dos r, 1 d 1 d 1 d = 1,..., d. Além disso, todas as sbv s são ão degeeradas. s, para cada Demostração Lembremos que 1 0 < ε <. Como 1 ε e + 1 ε, = 1,..., d 1, sempre 2 teremos em qualquer solução viável > 0, = 1,..., d. Etão, todas as bases viáveis de (4.2) devem coter as d coluas correspodetes aos s. Suporemos agora que r = s = 0 para algum. Se = 1, etão teríamos 1 ε e 1 1 = =, o que é absurdo. Se > 1, etão pela terceira restrição de (4.2) obtemos = ε 1 e pela quarta restrição obtemos ε 1 ε 1 + = 1 2 = 1. Pela seguda e quarta restrições de (4.2) temos que 1 1. Como 1 ε <, temos também que 2ε < 1. 2 Portato a igualdade 2ε 1 = 1 é impossível. Logo, cocluímos que qualquer base viável deve coter uma das coluas correspodetes r e s para cada = 1,..., d, obtedo assim m = 2d coluas básicas. Notemos também que tais sbv s ão podem ter compoetes com o valor igual a zero, e, portato elas são todas ão degeeradas. Deotaremos uma sbv de (4.2) por S, ode S é o subcouto de {1,..., d} que correspode aos ídices dos r s ão zeros em S. O valor de em S S será deotado por.

31 Os próimos lemas os serão úteis a demostração de que o método simple leva tempo epoecial para resolver o PPL (4.2); coforme Papadimitriou e Steiglitz [10]. Lema 4.2 Supohamos que d S, mas d S ' ; etão S S ' d d. > Além disso, se S ' = S { d}, S ' d S d = 1. Demostração Uma vez que d S, temos que s = 0 e a quarta restrição de (4.2) forece S d d S d 1 S d = 1 ε. emos que 1 1 e 1 ε <, logo 2 r = 0 e a terceira restrição em (4.2) forece S ' d d S 1 d >. Por outro lado, d S ', logo temos 2 S ' 1 = ε d 1 <. Portato, 2 S S ' d d. > Passemos agora à seguda parte. Notemos que se S = S ' { d}, etão S S ' d 1 d 1 =. emos etão S ' S ' S S d ε d 1 ε d 1 1 d = = =. Lema 4.3 Seam os subcoutos de {1,..., d} eumerados de tal modo que S S S d d d 1 2 2... d 1. Etão as iequações são estritas, e as sbv s e + são adacetes para = 1,..., 2 d 1. S S Demostração Usaremos aqui idução sobre d. Para d = 1 temos duas sbv s: (, r, s ) = ( ε, 0, 1 ε ) e (, r, s ) ( 1, 1 ε, 0) 1 1 1 1 1 1 =. As duas sbv s possuem 1 diferetes e elas certamete são adacetes. Para o passo da idução, supohamos que o lema é estabelecido para o cubo d-dimesioal, e seam S1,..., S d a eumeração apropriada. Notemos que 2 S1,..., S d são também subcoutos de {1,..., d + 1}, e que 2 d + 1 = ε d, = 1,..., 2d. Pela S S S d + 1 d + 1 d + 1 1 2 2 hipótese de idução temos que < <... < d. Cosideremos os subcoutos restates de {1,..., d + 1}, S = S { d + 1}, = 1,..., 2 d. emos, pelo Lema 4.2, que S S d + 1 + 1 S 2 d > d e d + 1 1 d + 1 S =. Portato S S 1 2 d S 2 1 1... d S d d 1 d 1... + + + d + 1 < < < < <. S S

32 Pela hipótese de idução S S 1 e + são adacetes, e etão 1 e + S S também o são. Além disso, S 2 d S e 2 d são adacetes também, desde que a última base resulte da aterior adicioado r d + 1 e retirado s d + 1. Agora estamos protos para demostrar o pricipal resultado desta seção; coforme Papadimitriou e Steiglitz [10]. eorema 4.1 Para todo d > 1 há um PPL com 2d equações, 3d variáveis, e coeficietes iteiros com valor absoluto limitado por 4, tal que o algoritmo simple pode levar 2 d 1 iterações para ecotrar a solução ótima. 1 Demostração omemos ε = e multipliquemos todas as equações de (4.2) por 4, de modo 4 que todos os coeficietes são iteiros. Uma vez que o obetivo de (4.2) é maimizar d, o Lema 4.3 garate a eistêcia de uma sequêcia epoecial de sbv s adacetes com valor para d crescete. Fializamos a demostração. ratamos esta seção do comportameto do método simple o pior caso, e ão os atetamos ao comportameto médio, que represeta a compleidade média assitótica. Por isso, deve ser efatizado que o úmero de iterações requeridas para ecotrar a solução ótima de um PPL a prática usado o método simple geralmete é meor do que o úmero de iterações requeridas o eemplo de Klee e Mity. No próimo capítulo estudaremos programação liear iteira.

33 CAPÍULO V UMA INRODUÇÃO À PROGRAMAÇÃO LINEAR INEIRA Nosso obetivo este capítulo é defiir o problema de programação liear iteira (PLI) e o problema de programação liear iteira 0-1. 5.1 O problema de otimização combiatória O problema de otimização cosiste em ecotrar, se possível, os miimizadores (ou os maimizadores) de uma fução defiida em uma determiada região. Deotamos R o couto dos úmeros reais e Z o couto dos úmeros iteiros. Seam S um couto fiito e f uma fução defiida por f: S R. O problema geral de otimização combiatória é o seguite problema de Otimização: ( OC ) miimizar f ( ) sueito a: S. O problema (OC) sugere algumas defiições que euciaremos agora. Defiição 5.1 Cosidere o problema (OC). Sea dado um couto D tal que S D. (a) Um poto f ( ) f ( ). D é um limitate iferior para f sobre S quado, para todo S, (b) Um poto D é o ífimo (if) para f sobre S, quado é o maior limitate iferior para f sobre S. (c) Um poto * S é um miimizador global de f em S quado, para todo S, f( * ) < f(). (d) Um poto D é um limitate superior para f sobre S, quado para todo S, f ( ) f ( ). (e) Um poto D é o supremo (sup) para f sobre S, quado é o meor limitate superior para f sobre S. (f) Um poto * S é um maimizador global de f em S quado, para todo S, f( * ) > f(). A proposição a seguir mostra que trabalhar com miimização ou maimização é equivalete. A demostração pode ser ecotrada as págias 67 e 68 em [2].

34 Proposição 5.1 Cosidere o problema (OC). Etão, { f S} { f S} ma ( ); = mi ( );. Demostração Sea * S um maimizador global do problema { f S} ma ( );. Para todo S temos, pela defiição de *, ma{f()} = f( * ) > f(), que é equivalete a, f ( ) f( * ) = mi { f ( ) }. Portato, para todo S, ma{ f ( )} mi { f ( ) } =, fializado a demostração. Agora, euciamos o algoritmo fudametal da otimização combiatória. Cosidere o problema (OC). Avalie f(), para todo S. Escolha * S tal que f( * ) < f(), para todo S. Na próima seção vamos euciar o problema de programação liear iteira que é um problema de otimização combiatória mais modesto. Daí, veremos a dificuldade de implemetar esse algoritmo fudametal mesmo com o desempeho dos computadores atuais. 5.2 Os problemas de programação liear iteira Cosideremos os úmeros iteiros m e, tais que > m > 0. Dados uma matriz umérica com coeficietes reais A, m, e vetores m b R e c R, o problema de programação liear iteira é o seguite problema de otimização, usualmete deomiado problema primal: ( ) P miimizar sueito a: A b 0 Z. Por outro lado, o problema de programação liear iteira 0-1 (biário) é o seguite problema de otimização: c