nvestigação Operacional Optimização em Redes e rafos Licenciatura em ngenharia ivil Licenciatura em ngenharia do Território Licenciatura em ngenharia e rquitectura Naval / ntrodução à Teoria dos rafos lgoritmos para os problemas de: luxo máximo (ordulkerson) aminho mais curto (ijkstra) Árvores de ligações mínima (Kruskal) /
ntrodução à Teoria dos rafos Primeira referência por Leonard uler () em sobre o problema das Pontes de Konigsberg (Kaliningrad) Será possível a um cidadão sair de sua casa, passar por cada uma das pontes apenas uma e uma só vez, e retornar a sua casa? / ntrodução à Teoria dos rafos RO representação esquemática de um conjunto de pontos ligados por linhas Pontos: NÓS ou VÉRTS Linhas: ROS ou RSTS NÓS pontos no espaço ou tempos. São representados por círculos ROS representam as ligações entre NÓS, associados: istâncias Tempos ustos de deslocação /
ntrodução à Teoria dos rafos rcos ORNTOS quando a ligação entre os NÓS é apenas possível numa direcção (seta indicando o sentido) / ntrodução à Teoria dos rafos rcos NÃO ORNTOS quando a ligação pode ser nos dois sentidos (apenas se representa a linha) m rigor: RO: rcos não orientados R: rcos orientados /
ntrodução à Teoria dos rafos Rede rafo com um ou mais atributos associados a cada arco (distância, custo, capacidade, etc) aminho/adeia conjunto de arcos em sequência desde um nó inicial a um nó final aminho/adeia simples caminho que não repete arcos aminho/adeia elementar caminho que não repete nós ircuito/iclo caminho elementar cujo nó inicial coincide com o nó final rafo conexo para qualquer conjunto de dois nós do grafo, existe pelo menos uma cadeia que os une rafo pleno para qualquer conjunto de dois nós do grafo, existe um arco que os une Árvore se o grafo é conexo e não existem ciclos rau do nó número de arestas a que está ligado o nó Semigrau interior/exterior de um nó número de arcos que incidem para o interior /exterior do nó iclo uleriano ciclo simples (que não repete arcos) que inclui todos os arcos do grafo / ntrodução à Teoria dos rafos O problema do LUXO MÁXMO: onsiste na determinação do número máximo de unidades de fluxo que é possível enviar através de um grafo, desde o nó origem até ao nó destino, quando os arcos tem capacidade limitada O problema do MNO MS URTO: Surge quando, definido um nó origem e um destino, se pretende determinar o caminho que permite ir do primeiro para o segundo nó percorrendo a menor distância O problema da ÁRVOR LÇÕS MÍNM: onsiste na identificação do conjunto de arcos que permitem interligar todos os nós de um grafo com uma ligação de cumprimento mínimo /
O Problema do luxo Máximo / luxo corresponde ao envio de entidades de um lugar para o outro: Os envios de produtos acabados do produtor para o distribuidor s deslocações das pessoas das suas casas para os locais de trabalho expedição de cartas desde a estação de correios até os seus destinatários m termos de um grafo: Um fluxo é o envio de entidades de um nó (origem) até outro nó (destino) percorrendo alguns dos arcos da rede de que aqueles nós fazem parte O Problema do luxo Máximo apacidade de um arco orientado i j: Número máximo de unidades de fluxo que se pode enviar do nó i para o nó j Varia entre e a sua capacidade máxima xemplo: : capacidade : capacidade /
O Problema do luxo Máximo dmitese que há conservação de fluxo: O fluxo que parte da origem chega totalmente ao destino Não há perdas pelo caminho Problema: origem Rede destino / O Problema do luxo Máximo lgoritmo de ordulkerson. scolher um caminho qualquer desde a origem até ao destino em que os arcos que o constituem tenham capacidade positiva. Procurar nesse caminho o arco orientado com menor capacidade c. Retirar c à capacidade de fluxo em cada arco do caminho no sentido considerado e aumentar de c à capacidade dos arcos de sentido inverso. Regressar ao º passo. Se já não existir nenhum caminho em que todos os arcos tenham capacidade positiva, tal significa que já se determinou o fluxo máximo /
/ O Problema do luxo Máximo ª teração. aminho. c = = Min(,,). Subtrair e adicionar / O Problema do luxo Máximo ª teração. aminho. c = = Min(,,). Subtrair e adicionar +=
ª teração. aminho / O Problema do luxo Máximo. c =. Subtrair e adicionar += ª teração / O Problema do luxo Máximo. aminho. c =. Subtrair e adicionar Já não existe nenhum caminho com capacidade positiva +=
O Problema do luxo Máximo inal Já não existe nenhum caminho com capacidade positiva Os arcos,, e têm todos capacidade nula O fluxo máximo entre o nó de origem e o de destino = unidades de fluxo Obtenção do valor e sentido do fluxo que percorre cada arco: apacidade inicial capacidade final Se o resultado for positivo => o fluxo parte do nó que se está a considerar Se o resultado for negativo => o fluxo chega ao nó que se está a considerar / O Problema do luxo Máximo luxo nos arcos (valor e sentido) /
O Problema do luxo Máximo pesar do fluxo máximo ser bem definido, o modo com ele percorre a rede varia de acordo com os caminhos escolhidos nas sucessivas iterações Para redes de grande dimensão, se apenas se pretender determinar o fluxo máximo entre o nó de origem e o nó de destino => teorema do fluxo máximocorte mínimo: Para toda a rede com uma só origem e um só destino o fluxo máximo é igual ao valor mínimo de corte de entre todos os cortes possíveis da rede Um corte é um conjunto de arcos orientados contendo, pelo menos, um ramo de cada caminho da origem ao destino O valor do corte é a soma das capacidades de fluxo de todos os ramos do corte, no sentido da orientação definida pelo corte. / O Problema do luxo Máximo ortes +++= / ++= +++++= += Nota: O corte com menor valor () determina o fluxo máximo da rede ste corte secciona precisamente os arcos orientados que na solução final que têm capacidade nula aso se pretenda aumentar a capacidade da rede é sobre este arcos que se deve actuar
O Problema da Árvore de Ligações Mínima Neste problema procurase determinar o conjunto de arcos de que permitem interligar todos os nós de um grafo de modo a que o seu comprimento somatório dos comprimentos dos arcos que o constituem seja mínimo nterligação de qualquer nó i podese chegar (directa ou indirectamente) a qualquer nó j e viceversa => as ligações directas entre nós tem sempre os dois sentidos e a mesma distância aso exista uma ligação directa e não exista a sua simétrica, a primeira deve ser eliminada aso existam as duas ligações mas com distâncias diferentes, esses dois nós não devem ser considerados na determinação inicial da árvore de ligações mínimas, deixando para uma segunda fase a sua eventual introdução istância generalizada / O Problema da Árvore de Ligações Mínima árvore de ligações mínima é uma árvore arborescente representação gráfica com forma de árvore aberta, nunca na forma de um polígono fechado a definição da árvore de ligações mínima concluise: Não tem origem nem destino. Qualquer nó é simultaneamente origem e destino relativamente a todos os outros É constituída maioritariamente pelos arcos de menor comprimento, uma vez que o objectivo é que o somatório do comprimento dos arcos que dela farão parte seja o menor comprimento possível lgoritmo de Kruskal: em cada iteração vai escolher, a partir dos arcos de menor comprimento, quais os nós que podem ser incluídos na árvore de modo a que ela nunca forme polígonos /
O Problema da Árvore de Ligações Mínima escolha poderia ter sido o nó scolha arbitraria! omprimento da árvore de ligações mínima = = + + + + + + + = / O Problema do aminho mais urto Neste problema procurase determinar o conjunto de arcos de uma rede que constituem o caminho mais curto, de entre todos os caminhos possíveis, do nó de origem ao nó de destino distâncias são generalizáveis: Unidades de comprimento =>o caminho mais curto Unidade de tempo =>o caminho mais rápido Unidade monetárias =>o caminho mais económico lgoritmo que vamos utilizar é devido a ijkstra /
/ O Problema do aminho mais urto xemplo, considere a seguinte matriz origemdestino: O/» ª coluna: origem» ª linha: destino omprimento do arco Não há ligação directa entre os nós e O Problema do aminho mais urto Visualização Nota: é possível não é possível Por exemplo, uma rua de sentido único Sentido único /
O Problema do aminho mais urto lgoritmo para a determinação do caminho mais curto (ijkstra): partir do nó origem (ou de partida), ir em cada iteração determinando o nó que está a menor distância da origem, que passará a ser o nó original, até se alcançar o nó destino Ou seja, as distâncias dos nós originais ao nó origem formarão uma sucessão não decrescente Quando um nó passa a ser um nó original, todas as ligações directas que o têm como final deixam de ter utilidade e são eliminadas / O Problema do aminho mais urto Lógica do lgoritmo (ijkstra): ª iteração: eterminase o nó mais próximo do nó origem (e respectiva distância) / ª iteração: eterminase o º nó mais próximo do nó origem ª iteração: eterminase o º nó mais próximo do nó origem ( ) nª iteração: eterminase o enésimo nó mais próximo do nó origem verificandose que é o nó destino pretendido ntão: terminase o algoritmo (independentemente de restarem nós da rede com distância por determinar ao nó origem)
O Problema do aminho mais urto plicação do algoritmo à matriz O/ para determinação da distância mais curta entre os nós e istância a (origem) ª iteração (nó original =) dos nós Originais istância mínima dos nós inais à origem partindo do nó Original em questão O/ / Nó é original => não pode ser nó final ist. º º passo / O Problema do aminho mais urto plicação do algoritmo à matriz O/ para determinação da distância mais curta entre os nós e istância mínima dos ª iteração (nó original =) nós inais à origem partindo do nó ist. º º Original em questão O/ Tanto o como o são Originais e ainda têm nós inais! No final do º passo existe apenas um nó Original com nós inais! distância mínima é corresponde ao nó próximo nó Original disponível!
O Problema do aminho mais urto plicação do algoritmo à matriz O/ para determinação da distância mais curta entre os nós e ª iteração (nó original =) O/ / ist. º º º O nó já não tem nós inais livres! Tanto o como o são Originais e ainda têm nós inais! No final do º passo existem dois nós Originais com nós finais! O mínimo é corresponde ao nó próximo nó Original disponível! O Problema do aminho mais urto plicação do algoritmo à matriz O/ para determinação da distância mais curta entre os nós e ª iteração (nó original =) O/ / ist. º º º º
O Problema do aminho mais urto plicação do algoritmo à matriz O/ para determinação da distância mais curta entre os nós e ª iteração (nó original =) O/ / ist. º º º º º O Problema do aminho mais urto plicação do algoritmo à matriz O/ para determinação da distância mais curta entre os nós e ª iteração (nó original =) O/ / ist. º º º º º º
O Problema do aminho mais urto plicação do algoritmo à matriz O/ para determinação da distância mais curta entre os nós e ª iteração (nó original =) O/ / ist. º º º º passo Já chegámos ao nó estino! º º º º / O Problema do aminho mais urto Reconstrução do caminho mais curto é feito do fim para o princípio utilizando o quadro final: Na coluna do nó (destino) procurase o círculo que representa o arco utilizado para chegar a este nó o arco tem origem em (linha onde está o círculo) Passando para a coluna o arco tem origem em (linha onde está o círculo) oluna linha, origem aminho mais curto: istância: (++), como também se pode verificar na colunas das distâncias a.
O Problema do aminho mais urto Notas finais: o determinar o caminho mais curto de a obtiveramse, também, as distâncias mínimas de a todos os nós originais distância mínima de a é () Verificase que o nó não chegou a ser atingido, o que revela que a sua distância a será maior do que Quanto muito podia ser igual a No caso presente seria a partir do nó /