Download - Pesquisa Operacional II

Transcript
Page 1: Pesquisa Operacional II

Pesquisa Operacional II

Professor João Soares de Mello

http://www.uff.br/decisao/notas.htm

Page 2: Pesquisa Operacional II

Ementa

• Teoria dos grafos (pré-requisitos: PO I, Álgebra Linear)

• Programação não linear (pré-requisitos: PO I, Cálculo Diferencial com várias variáveis)

Page 3: Pesquisa Operacional II

Bibliografia BásicaBOAVENTURA NETTO, P. O. ; JURKIEWICZ, S. Grafos: introdução e prática. 1. ed. São Paulo - SP: Editora Edgard Blucher Ltda., 2009.

PIZZOLATO, N. D. ; GANDOLPHO, A.A.. Técnicas de Otimização. 1. ed. Rio de Janeiro: Livros Técnicos e Científicos LTC, 2009.

HILLIER, F.S.; LIEBERMAN, G.J. H. J. Pesquisa Operacional. McGraw-Hill 8Ed, 2010

Page 4: Pesquisa Operacional II

Bibliografia Complementar

BORTOLOSSI, H. J. Cálculo Diferencial a Várias Variáveis: Uma Introdução à Teoria de Otimização. São Paulo: Editora PUC-Rio/Edições Loyola, 2002.

NOVAES, A. G. N. Métodos de otimização: Aplicações aos transportes. São Paulo: Edgard Blucher, 1978.

ARENALES, M. N. ; ARMENTANO, V. A. ; MORABITO, R. ; YANASSE, H.

H. Pesquisa Operacional. 1. ed. Rio de Janeiro: Campus/Elsevier, 2007.

Page 5: Pesquisa Operacional II

Calendário

Provas 30/1/2013 e 20/3/2013. VS dia 27/3/2013..

Não haverá aula nos dias 10, 12 e 17/12 por motivo de viagem oficial para participação em bancas (afastamento publicado no Diário Oficial da União nº 213 de 05/11/2012, Seção 2, páginas 23).

Page 6: Pesquisa Operacional II

Avaliação

Duas provas com igual peso. Uma sobre grafos a outra sobre programação não linear

Uma das questões da segunda prova poderá, eventualmente, ser um trabalho computacional para casa e defendido em sala.

Page 7: Pesquisa Operacional II

Teoria dos grafos

Problemas estudados em Grafos• O Problema do Caixeiro Viajante• O Problema do Carteiro Chinês• O Problema do labirinto• O Problema de Caminho Mínimo• Os Problemas do transporte e da alocação• O Problema de Fluxo Máximo• O Problema de Fluxo Máximo a custo mínimo• Árvore Geradora Mínima (AGM)• Coloração em Grafos• Roteamento de veículos• Centralidades em grafos• Etc.

Page 8: Pesquisa Operacional II

Teoria dos Grafos

Teoria dos Grafos• Pontes de Königsbergna Prússia (atualKalinigrad, na Russia):“seria possível percorrertodas as quatro seções evoltar ao local departida cruzando cadaponte uma única vez?”• Resolvido por LeonhardEuler XVIII

Page 9: Pesquisa Operacional II

Teoria dos Grafos: Outros exemplos

Cadeias de carbono

Circuitos elétricos

Sociogramas

Fluxogramas

Organogramas

Relações de preferência (caso particular: resultados de jogos)

Page 10: Pesquisa Operacional II

Teoria dos Grafos: Definições básicas• Um grafo é uma noção simples e abstratautilizada para representar a idéia de relação entre“elementos"• Matematicamente: G = (V,A), onde V é oconjunto de vértices e A é o conjunto de ligaçõesentre vértices.• Grafo não orientado: ligações representadas ospares de vértices não possuem uma ordem (i,j) =(j,i) = {i,j}, aresta• Grafo orientado (dígrafo): ligações (arcos)representadas por partes ordenados (i,j) ≠ (j,i)

Page 11: Pesquisa Operacional II
Page 12: Pesquisa Operacional II

Representações de grafos

• Rotular vértices, valorar ligações (eventualmente o contrário)

• Topológica (“desenho”)• Listas de adjacências armazena o relacionamentoentre os vértices em uma estrutura de listas.Representação econômica do ponto de vista computacional.• Grafos orientados: duas listas origem - destinos edestino - origens• Grafo não orientados: uma lista

Page 13: Pesquisa Operacional II

Representações de grafos

• Matriz de adjacências: dois vértices são adjacentes se estão unidos por uma aresta ou arco. Matriz Mnxn (n total de vértices).

Observar simetria das matrizes de grafos não orientados

Page 14: Pesquisa Operacional II
Page 15: Pesquisa Operacional II

Representações de grafos

• Matriz de incidência: linhas são vértices e colunas são ligações.

• Em cada coluna (ligação) são indicados quais os vértice que ela liga.

Page 16: Pesquisa Operacional II

Alguns conceitos

• Ordem de um grafo= número de vértices

• Tamanho de um grafo= número de ligações (observar multigrafos)

• Grafo complementar: Grafo que possui apenas as ligações que não existem no grafo completo (com todas as ligações)

• Grafo completo não orientado é chamado “clique” Kn

Page 17: Pesquisa Operacional II

Alguns conceitos

• Subgrafo: é um sub conjunto do grafo original, isto é, tanto o conjunto de vértices quanto o conjunto de ligações são subconjuntos dos originais

• Subgrafo abrangente (spanning subgraph): contém todos os vértices mas não todas as ligações

• Subgrafo induzido: uma vez determinado o conjunto de vértices, são mantidas as ligações entre eles

• Vizinhança: y é vizinho de x se existe a ligação (x,y)N(x)={y: ∃ (x,y)}

• Conjunto de sucessores N+(x)={y: ∃ (x,y)}• Conjunto de antecessores N-(x)={y: ∃ (y,x)}• Tanto a vizinhança como estes conjuntos são ditos abertos.

Para fechar inclui-se o vértice centro

Page 18: Pesquisa Operacional II

Alguns conceitos• Grau de um vértice: Em um grafo não orientado é o número de arestas

adjacentes ao vértice. Num grafo simples é igual ao número de vizinhos g(x)=#N(x)

• Para grafos orientados define-se o semigrau exterior (número de sucessores) e o semigrau interior (número de antecessores. Alguns autores definem grau como sendo a soma dos semigraus, mas isso apresenta problemas.

• Se g(x)=1 diz-se que o vértice é pendente.

• Se em grafo não orientado, g(x)=g(y)=k, ∀x,y ∃ V, o grafo é dito k-regular

• Percurso: conjunto de vértice (ou ligações) sequencialmente adjancentes

• Caminho: É um caminho possível de percorrer. Todas as ligações estão no sentido início-fim

• Percurso simples não repete ligações, elementar não repete vértices

• Ciclo é um percurso elementar fechado, circuito é um caminho elementar fechado. Todo circuito.é um ciclo.

Page 19: Pesquisa Operacional II

Alguns conceitos• Fecho transitivo: R+(v) é o conjunto de todos os vértices w para os

quais existe um caminho de v para w.

• Fecho transitivo: R-(v) é o conjunto de todos os vértices w para os quais existe um caminho de w para v.

• O nome “transitivo” está relacionado à propriedade da transitividade de relações binárias: se existe um par (a,b) e (b,c) existe um (a,c). Exemplo: Cálculo I é pré-requisito transitivo de PO II ou, em linguagem de grafos, PO II está no fecho transitivo de Cálculo I.

• Exercício: Identificar, até o quinto período, o fecho transitivo positivo de todas as matérias do primeiro período e o fecho transitivo negativo de todas as do quinto período.

• Observação: Qualquer vértice está incluído no seu fecho transitivo, seja positivo ou negativo.

• Isomorfismo: Dois grafos são isomorfos se e só se existir uma função bijetiva entre seus conjuntos de vértices que preserve suas relações de adjacência. As representações topológica, e outras podem ser diferentes.

Page 20: Pesquisa Operacional II

Conexidade• Um grafo é conexo se existir um percurso entre dois quaisquer par de

vértices.

• Em grafos não orientados isto é equivalente a dizer que qualquer vértice w está no fecho transitivo (positivo e negativo) de qualquer vértice v (provar por redução ao absurdo).

• A conexidade é mais complicada em grafos orientados. Existem grafos que “no desenho” parecem conexos, mas não respeitam a “ligação total”.

• Existem 4 tipos de conexidade: desconexo, simplesmente conexo, semi-fortemente conexo e fortemente conexo.

• Desconexo: existem vértices sem nenhum percurso para outros.

• Fortemente conexo (f-conexo): todo o vértice está no fecho transitivo de outro.

• Simplesmente conexo: existem percursos (mas não necessariamente caminhos) entre qualquer par de vértices.

• Semi-fortemente conexo: entre dois pares de vértices um deles estará no fecho transitivo positivo do outro.

Page 21: Pesquisa Operacional II

Conexidade• Um subgrafo fortemente conexo que é que não esteja contido em

outro f-conexo é chamado componente f-conexa.

• Grafo reduzido: é aquele em que um vértice é substituído pela componente f-conexa a que pertence. O grafo reduzido tem a mesma conexidade do grafo original.

• Determinação de componente f-conexas: Algoritmo de Malgrange. Faz os fecho transitivos positivo e negativo de cada vértice e a sua interseção.

• Dois grafos conexos podem ter a sua conexidade mais ou menos ameaçada. Esse é o conceito de conectividade, aplicado apenas a grafos não orientados.

• Conectividade vértice (aresta) de um grafo conexo é o menor número de vértices (arestas) que é preciso tirar desse grafo para ele deixar de ser conexo (ou o rediz a único vértice, caso das cliques).

• A conectividade é menor ou igual ao número de vértice menos 2 (para grafos não completos).

Page 22: Pesquisa Operacional II

Problemas com caminhos• Hamiltonianos: percurso que visita cada vértice uma única vez.

Problema do Caixeiro Viajante: “O Caixeiro Viajante deve sair da sua cidade (origem), visitar cada uma das outras (n-1) cidades uma única vez e retornar à cidade de origem, de forma tal a percorrer uma única distância possível”

• Eulerianos: percurso que usa cada ligação exatamente uma vez. Problema do Carteiro Chinês.: “o carteiro deseja percorrer todas asruas da sua rota um número mínimo de vezes.

Page 23: Pesquisa Operacional II

Determinação de caminhos

• Caminho de menor custo (menor “distância”, comparar com distância matemática). Algortimos de Dijkstra e Floyd. Programação linear binária

• Maior caminho: programação linear binária, algoritmo de folgas. Aplicação em COM (Gestão de Projetos)

• Existência de caminho

Page 24: Pesquisa Operacional II

Existência de caminho

• Só temos informação local do grafo (estamos “dentro” do grafo).

• Situação prática: labirinto.

• Temos que ser capazes de marcar caminhos já percorridos.

• Seguir sempre pela direita, a menos que o caminho já tenha sido feito.

• Ir o mais à direita possível. Se todos tiverem sido feitos, voltar para trás.

Page 25: Pesquisa Operacional II

Algoritmo de Dijkstra

Para cada vértices usamos a notação: [c,j] X,chamada de rótuloc custo até o momento, j vértice precedente, X pode

ser T (temporário) ou P (permanente)• Início no vértice origem: [0,-]PAnalisar os vértices adjacentes e colocamos rótulos

temporários, calculamos a distância até esse ponto,caso esteja rotulado escolhemos o de menor distânciaTodos os vértices rotulados, pare, caso contrário,

escolha o de menor custo rotule como P e repetir opasso anterior

PORQUE FUNCIONA?