Problema do Carteiro Chinês

Tamanho: px
Começar a partir da página:

Download "Problema do Carteiro Chinês"

Transcrição

1 CENTRO DE CIÊNCIAS EXATAS DEPARTAMENTO DE COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Problema do Carteiro Chinês Alunos: André Ricardo Gonçalves Luiz Gustavo Andrade dos Santos Paulo Roberto Silla Profa. Linnyer Beatrys Ruiz LONDRINA - PR 2007

2 André Ricardo Gonçalves Luiz Gustavo Andrade dos Santos Paulo Roberto Silla Problema do Carteiro Chinês Trabalho apresentado à Universidade Estadual de Londrina, como parte de requisito de avaliação do 2 o Bimestre da disciplina de Teoria da Computação, do curso de Ciência da Computação sobre a orientação da Profa. Linnyer Beatrys Ruiz. LONDRINA - PR 2007

3 Sumário 1 Introdução 5 2 Teoria dos Grafos 6 3 NP-Completude Problemas de Decisão Redução através de linguagem Classe P e classe NP Histórico 12 5 O Problema do Carteiro Chinês Problema do Carteiro Chinês para grafos não orientados Matching Problema do Carteiro Chinês para grafos orientados Problema do Carteiro Chinês para grafos mistos Problema do Carteiro Chinês Capacitado Algoritmos Implementados Aplicações Roteamento de Veículos Escala de tripulação Varredor de Ruas Conclusão 25 Apêndice 25 Referências Bibliográficas 28 3

4 Lista de Figuras 4.1 Representação das Sete Pontes de Königsberg Grafo - Sete Pontes de Königsberg Um grafo não Euleriano Caminhos mais curtos partindo de A e posteriormente de C Grafo após matching

5 Capítulo 1 Introdução Conhecido como Problema do Carteiro Chinês, por ter sido proposto na revista Chinese Mathematics por Mei-Ko Kwan em 1962 e utilizar a rota de um carteiro como cenário, este intrigante problema possui grandes aplicações, como por exemplo na área de roteamento de veículos. Discutiremos, nesse trabalho, algumas maneiras de encontrar soluções em diferentes situações, tais como grafos orientados, não orientados e mistos. Para que os conceitos aplicados durante o desenvolvimento do texto sejam corretamente assimilados, na próxima seção encontra-se uma breve introdução sobre a teoria dos grafos. 5

6 Capítulo 2 Teoria dos Grafos Reservamos esta seção para introduzir alguns conceitos da Teoria dos Grafos que serão utilizados durante o desenvolvimento do texto: 1. Vértice: objeto simples que pode ter nomes e outros atributos, da qual parte(m) e/ou sai(em) aresta(s). 2. Aresta ou arco: unidade que conecta dois vértices, distintos ou não. Notação: {v 1, v 2 } - aresta que liga vértice v 1 ao vértice v 2. Se existir a aresta {v 1, v 2 }, então v 1 e v 2 são ditos vértices adjacentes. Tipos de aresta: Laço: aresta na qual o vértice de destino é o mesmo da origem ( {v, v} ). Arestas paralelas: duas arestas e1 = {v 1, v 2 } e e2 = {v 3, v 4 } são ditas paralelas se v 1 = v 3 e v 2 = v Grafo: um grafo G é definido como um par G = (V, E), onde: V = V(G): conjunto finito de vértices do grafo G. E = E(G): conjunto de arestas do grafo G, onde E V x V. Tipos de Grafo: Grafo simples: um grafo que não apresenta laços nem arestas paralelas. Grafo orientado(dirigido): G é um grafo orientado se E(G) é um conjunto de pares ordenados de vértices. Ou seja, as arestas de E(G) possuem direção (orientação). Grafo não orientado (não dirigido): G é um grafo não orientado E(G) é um conjunto de pares não ordenados de vértices. Ou seja, as arestas de E(G) não possuem direção. 6

7 Grafo misto: um grafo G é dito misto se apresenta arestas com e sem direção. E(G) é formado pela união dos conjuntos disjuntos E1(G) e E2(G). Onde E1(G) é o conjunto de arestas com direção e E2(G) é o conjunto de arestas sem direção. 4. Grau de um vértice: determinado pelo número de arestas que ele possui. Se esse número for par, o grau é dito par, caso contrário, ímpar. Em grafos dirigidos, cada vértice possui semi-grau interno (grau de entrada) para as arestas que chegam nele, e semi-grau externo (grau de saída) para as arestas que dele saem. Nota: em um grafo não dirigido, cada laço tem o mesmo valor de duas arestas. Notação: g(e): grau de um vértice g in (e): grau de entrada g out (e): grau de saída Um grafo orientado G = (V, E) que satisfaz g out (e) = g in (e) para todos os vértices e E(G), é dito pseudo-simétrico. 5. Grau mínimo de um grafo: é o mesmo número do grau do vértice pertencente ao grafo que possui menor grau. 6. Grau máximo de um grafo: corresponde ao número do grau do vértice pertencente ao grafo que possui maior grau. 7. Grafo regular: um grafo é dito regular quando todos os seus vértices apresentam mesmo grau. O grau máximo é igual ao grau mínimo. 8. Peso de uma aresta: utilizadas quando em um grafo as arestas apresentam características diferentes umas das outras. Este peso pode ser expresso em qualquer unidade (como um número natural, inteiro, real, entre outros) dependendo da abordagem adotada. Também é possível ter mais alguns atributos associados a uma aresta. Notação: w(e). 9. Caminho (passeio): um caminho em um grafo G = (V, E) é uma seqüência composta de vértices e arestas (v 1, e 1, v 2, e 2,..., v k 1, e k 1, v k ) com e i =v i, v i+1 e 1 i V(G). Um vértice v k é dito alcançável por v i, quando existe um caminho de v i até v k. Num grafo simples, pode-se representar um caminho apenas pela seqüência de vértices. A quantidade de arestas designa o comprimento do caminho. 10. Caminho simples: um passeio que não apresenta repetição de vértices. 7

8 11. Circuito (ciclo): um caminho onde o último e o primeiro vértice da seqüência denotam o mesmo vértice. Se todos os vértices do circuito forem distintos, este circuito é designado circuito elementar. Proposição 2.1 É conhecido como circuito de Hamilton, um circuito elementar que contenha todos os vértices de um grafo não orientado. Um circuito é simples se todas as arestas que o constituem são distintas. Proposição 2.2 É conhecido como circuito de Euller, um circuito simples que inclui todas as arestas de um grafo não orientado. 12. Grafo cíclico: um grafo que apresenta circuito(s) e a seqüência deste circuito é formada por, no mínimo, três vértices distintos. Um grafo que não apresente circuito é chamado de acíclico ou floresta. Numa floresta, um vértice com grau 1 é denominado folha. A notação C n indicar m grafo que é um circuito de comprimento n. 13. Grafo conexo: dado {v 1, v 2 } um par qualquer de vértices de um grafo G. G será conexo se existir um caminho com extremos v 1 e v Árvore: é um grafo conexo e acíclico. 15. Complemento de um grafo: seja V o conjunto de todos os pares não-ordenados de elementos de V. Se V tem n elementos então V tem (n(n-1)/2) elementos. Os elementos de V são os subconjuntos de V de cardinalidade 2. Então, os elementos de V assumirão a forma {v 1, v 2 }, com v 1 v 2 e v 1, v 2 V. O complemento de um grafo G = (V, E) é o grafo H = (V, V(2) - E). Note que o grafo H possui os mesmos vértices de G mas nenhuma aresta que G possuirá. Notação: Ḡ = H. 16. Grafo completo: um grafo simples de n vértices formado com todas as possibilidades de arestas. Notação: K n O complemento de um grafo completo será o grafo vazio com E(Ḡ) =, que não possuirá arestas. Notação: Kn 17. Subgrafo: dado G = (V, E ), G será subgrafo de G = (V, E) se V V, E E. Assim, G G. Nota: V deve ser um conjunto não-vazio. Tipos de subgrafo: 8

9 Subgrafo gerador: dado G = (V, E ) um subgrafo de G = (V, E), se V V então G é chamado de subgrafo gerador de G. Subgrafo próprio: quando V V ou E E. Subgrafo induzido: um subgrafo de G induzido por um conjunto X V(G) é o grafo (X, A) onde A é o conjunto E(G) tais que estas arestas possuam as duas extremidades em X, desde que A não seja vazio. Notação: G[X] Subgrafo maximal: dado H um subgrafo conexo de um grafo G, será maximal se não for subgrafo próprio de nenhum subgrafo conexo de G. 18. Componente (componente conexa) de um grafo: qualquer subgrafo conexo maximal do grafo. Assim, todo vértice de um grafo conexo pertence a somente um componente e se o grafo tem um único componente, ele será conexo. 19. Fecho transitivo de um vértice: todos os vértices que são alcançados (transitivamente) a partir de um vértice v k formam o conjunto fecho transitivo de v k. 20. Fecho transitivo inverso de um vértice: o conjunto de todos os vértices que (transitivamente) alcançam um vértice v k é chamado de fecho transitivo inverso de v k. 21. Componente fortemente conexa de um vértice: o conjunto de todos os vértices que têm ligação com um vértice v k por um caminho de ida e volta. Ou seja, este conjunto é formado pela intersecção dos fechos transitivo e transitivo inverso de v k. 22. Grafo parcial: é um grafo H = (V, A) será grafo parcial de G = (V, E) se A E e V(H) = V(G). 23. Grafo bipartido: um grafo G = (V, E) será considerado bipartido se V(G) possa ser particionado em dois subconjuntos disjuntos A e B tal que V = A B, e para cada aresta e = {v 1, v 2 } de E(G) (v 1 A e v 2 B) ou (v 1 B e v 2 A). 24. Grafo bipartido completo: é um grafo bipartido simples contendo todas as possíveis arestas. Notação: K n,m, com n = A e m = B. 9

10 Capítulo 3 NP-Completude Algoritmos com complexidade de tempo polinomial geralmente são rápidos e por isso são considerados eficientes. Mas para muitos problemas existentes não se consegue achar um algoritmo desta natureza para resolvê-lo. Então surge a teoria da NP-completude para informar que o algoritmo para solução destes problemas são não polinomiais. 3.1 Problemas de Decisão Os problemas que aqui se apresentarão serão reduzidos à problemas de decisão que possuem apenas duas respostas possíveis: sim ou não (1 ou 0). Mesmo com essa restrição, os problemas preservarão parte significativa da sua complexidade computacional, diferindo apenas por um fator polinomial. Principalmente problemas de otimização que não se conhece solução com algoritmos eficientes. O problema do carteiro chinês envolve tal circunstâcia, a de encontrar menor caminho global ao percorrer todas as arestas de um grafo e retornar ao ponto de partida. 3.2 Redução através de linguagem O problema de decisão pode ser adaptado como problema de reconhecimento de linguagem, lembrando que linguagem é um conjunto formado por concatenações dos símbolos de um alfabeto, neste caso, o alfabeto é Σ = 0,1. Para isso, admita U como sendo o conjunto de todas as entradas possíveis para um problema de decisão e L como sendo o conjunto de todas as entradas que gerem 1 como resposta. L representará a linguagem correspondente ao problema de decisão de reconhecer a pertinência de uma entrada dada à L. E considere o seguinte teorema: Teorema 3.1 Se L1 é polinomialmente redutível a L2 e existe algoritmo polinomial para L2, então existe algoritmo polinomial para L1. 10

11 Por polinomialmente redutível entende-se que cada instância de L1 é convertida para uma instância exclusiva de L2 em tempo polinomial. Deste enunciado podemos inferir a transitividade da redução e, se comprovado que L1 não possui algoritmo polinomial e é polinomialmente redutível a L2, não existirá algoritmo polinomial para L Classe P e classe NP Adotaremos como classe P, o conjunto de linguagens que é possível decidir se, dada a entrada de um problema, sua resposta pertence ou não à linguagem, considerando tempo polinomial. Isto significa que se L pertencer a classe P, existirá um algoritmo capaz de fornecer uma resposta afirmativa (sim) em tempo polinomial. A classe NP pode ser definida como a classe das linguagens em que a decisão pode ser feita por um algoritmo polinomial não determinístico. Um algoritmo não determinístico possui todas as características de um determinístico mais o poder de realizar escolhas de forma não determinística. A classe NP também pode ser definida com o uso de certificados. O algoritmo possui dois argumentos, um deles o certificado. Caso este exista, o algoritmo pode dar uma resposta afirmativa para uma entrada, que é o outro argumento. O certificado deve apresentar complexidade polinomial em relação à entrada. Se ignorarmos o certificado poderemos ver que se uma linguagem pertence à P, então ela também pertence à NP. Isto nos mostra que P NP. Porém, até hoje, não sabe dizer se P = NP. A maioria dos especialistas acredita que não seja, por causa da classe NP-completo. Ela diz que se existe um algoritmo polinomial que resolva um problema NP-completo, então todos os problemas NP poderão ser resolvidos polinomialmente. Para mostrar que um problema pertence à classe NP-completo, é necessário conhecer um problema NP-completo, e tentar reduzi-lo a este problema conhecido. Para os problemas do circuito Hamiltoniano e do caixeiro viajante serem ditos NP-completos, é necessário usar o teorema de Cook, um conhecido problema NP-completo. 11

12 Capítulo 4 Histórico No século XVIII na cidade de Königsberg (Prússia, atual Kaliningrado Rússia) havia um rio chamado Pregel e, nesse rio, duas ilhas. Ligando uma ilha à outra existia uma ponte. A primeira ilha possuía outras quatro pontes, duas para cada margem do rio. Na segunda ilha, havia também duas pontes, cada qual ligando uma margem, totalizando sete pontes, conforme ilustrado na figura 4.1: Os habitantes de Königsberg desejavam realizar um desfile e não gostariam de passar mais de uma vez sobre cada ponte. Este problema ficou conhecido como As Sete Pontes de Königsberg e o matemático Leonhard Euller ( ) foi chamado para resolvê-lo. No entanto, Euler provou que era impossível encontrar uma solução, pois, ao transformar o mapa em um grafo, onde as ilhas e o continente são os vértices e as pontes arestas, conforme ilustra a figura abaixo, notou que os vértices possuíam grau ímpar. Figura 4.1: Representação das Sete Pontes de Königsberg Figura 4.2: Königsberg Grafo - Sete Pontes de Muitos autores referem-se a esse problema como o marco inicial no estudo da teoria dos grafos. 12

13 Capítulo 5 O Problema do Carteiro Chinês O Problema do Carteiro Chinês (Chinese Postman Problem) possui forte relação com o Problema das Sete Pontes descrito na seção anterior e foi originalmente discutido na revista Chinese Mathematics em um artigo de autoria de Mei-Ko Kwan em Tal problema consiste em encontrar uma rota para um carteiro, onde as seguintes restrições são colocadas: Todas as ruas devem ser visitadas; O caminho deve ser mínimo, ou seja, a distância percorrida pelo carteiro deve ser a menor possível. A principal diferença entre o problema das Sete Pontes e o Carteiro Chinês está em que este último permite ao carteiro passar por um caminho já utilizado anteriormente e, ao fim do percurso, ele deve estar no ponto de partida. A rota do carteiro pode ser transformada em um grafo, onde cada rua é uma aresta e os cruzamentos das ruas são os vértices. Segundo [1], o Problema do Carteiro Chinês divide-se em quatro categorias. São elas: (a) Problema do Carteiro Chinês para grafos não orientados; (b) Problema do Carteiro Chinês para grafos orientados; (c) Problema do Carteiro Chinês para grafos mistos; (d) Problema do Carteiro Chinês Capacitado. Para os itens (a) e (b) existe solução em tempo polinomial. Já para (c) e (d) a solução não pode ser encontrada em tempo polinomial. Faremos uma descrição de cada uma dessas categorias, dando ênfase ao Problema do Carteiro Chinês para grafos não orientados, pois foi nossa escolha de implementação. 13

14 5.1 Problema do Carteiro Chinês para grafos não orientados Nesta seção descreveremos nossa escolha de implementação. Para começar, vamos introduzir o conceito de Circuito Euleriano: o percurso em um grafo conexo a partir de um vértice inicial qualquer, atravessando todas as suas arestas apenas uma vez e retornando ao vértice onde se originou tal percurso é denominado Circuito Euleriano. No entanto, para que esse fato ocorra em um grafo, ele não deve possuir vértice de grau ímpar, ou seja, o número de arestas incidentes de cada vértice existente no grafo deve ser par. Logo, o parágrafo acima define o seguinte teorema: Teorema 5.1 Teorema de Euller: Dado um grafo G(V,A) qualquer, existe em G(V,A) um Circuito Euleriano se, e somente se, G(V,A) for conexo e o grau de todos os seus vértices for par. Prova: 1. Dado G(V,A) um grafo Euleriano, o grau de qualquer vértice v pertencente a V é par. Ao definir um caminho Euleriano C em G(V,A), cada vértice v pertencente a V possui uma aresta de chegada e outra de saída. Como cada aresta de G(V,A) deve aparecer apenas uma vez em C, todo v pertencente a V possui grau par; 2. Para todo vértice v pertencente a V em G(V,A), o grau de v é par, logo G(V,A) é um grafo Euleriano. Nesse caso, tenta-se encontrar um caminho C em G(V,A) de maneira a não repetir arestas e que passe por todas elas. Considerando o grau par para todos os vértices pertencentes a V, sempre será possível entrar e sair de qualquer vértice, exceto quando o vértice for o último do percurso. Se, ao final do processo, C possuir todas as arestas de A, o Circuito Euleriano estará descrito. Caso contrário, define-se um novo grafo G (V,A ) com todas as arestas de A que ainda não foram percorridas e também com os vértices de V que possuem alguma aresta não percorrida. Como o grafo é conexo G (V,A ) possui um vértice em comum com C. Reinicia-se o processo no vértice comum para obter um novo caminho C. Quando não restam mais arestas, os caminhos percorridos unem-se através de seus vértices em comum formando um caminho único. Tal caminho é o Circuito Euleriano do grafo. A prova acima sugere um algoritmo em alto nível para a busca do Ciclo Euleriano: 1. Escolha o nó inicial; vá para 2; 14

15 2. Se existem vértices adjacentes ao nó escolhido vá para 3; Senão pare, pois o Circuito Euleriano está descrito; 3. Entre os nós adjacentes ao vértice inicial, escolha um em que ao eliminar a aresta entre ambos, o grafo não se torne desconexo. Mude para esse nó (escolhendo-o), elimine a aresta e vá para 2; Na literatura, são apresentados dois algoritmos para a busca do circuito Euleriano em um grafo, o algoritmo de Hierholzer e o algoritmo de Fleury, os quais são descritos abaixo: Algoritmo de Hierholzer para a busca do Ciclo Euleriano: caminho Hierholzer(grafo G = (V,A)) { v 0 = vértice inicial do percurso C = [v 0 ] //caminho recebe o vértice inicial Enquanto existir aresta em A v i = um vértice de C tal que d(v i ) 0 em G C = Circuito em G que contém v i G = G - {a a é aresta em C} Em C, substituir o vértice v i pelo circuito C Retornar C } Algoritmo de Fleury para a busca do Ciclo Euleriano em um grafo: caminho Fleury(grafo G = (V,A)) { v 0 = vértice em V C = [v 0 ] Enquanto existir aresta em A v i = último vértice inserido em C Se v i possui apenas uma aresta incidente; a i = a aresta incidente a v i em G Senão a i = aresta de v i em G não ponte Apagar a i de A em G Inserir a i no final de C v j = vértice destino de a i Inserir v j na posição final de C Retornar C } 15

16 Ambos os algoritmos possuem tempo de execução O(n). Até o momento, verificamos como resolver o Problema do Carteiro Chinês em um grafo onde todos os seus vértices possuem grau par. No entanto, podem existir situações onde algum vértice, ou um conjunto de vértices, do grafo possua grau ímpar. Essa situação pode ser contornada através da execução de um algoritmo de emparelhamento (Matching), que tem sua funcionalidade ligada ao fato de existir, em um grafo conexo, um número par de vértices de grau ímpar. A função desse algoritmo é buscar no grafo todos os nós de grau ímpar e encontrar a melhor maneira de ligá-los entre si, através da criação de novas arestas. O peso de uma nova aresta é calculado com base na distância, ou seja, na soma dos pesos das arestas existentes entre os nós que essa nova aresta irá ligar. Portanto, para cada vértice de grau ímpar, existirá um conjunto de novas arestas. Esses conjuntos devem ser analisados e a menor aresta que ligue cada par de vértices deve ser escolhida para entrar no grafo original. Ao final da execução do algoritmo de emparelhamento, o grafo resultante é Euleriano e pode, então, ser determinado um circuito Euleriano, o qual é a rota do carteiro. Para realizar o passo 3 (três), é necessário encontrar o casamento de pares com a mínima distância, ou seja, devem ser inseridas novas arestas no grafo, para que o mesmo torne um grafo Euleriano, e possa ser encontrado o um circuito Euleriano, então assim obtemos o caminho que o carteiro deve percorrer Matching O matching (emparelhamento) é realizado para tornar o grafo, um grafo Euleriano. Este processo é realizado sobre os vértices de grau ímpar, nos quais são inseridas novas arestas para tornar estes vértices, vértices de grau par. Essas arestas devem ser inseridas nestes vértices com a distância mínima entre tais vértices. Larson e Odoni(1981 apud [3]) apresentam alguns algoritmos para a realização do matching, são eles o Algoritmo de Edmonds e Johnson(1973), cuja complexidade é O(n 3 ) e o Algoritmo de Christofides(1975). Um outro algoritmo que diversos autores chamam de algoritmo guloso, pode ser utilizado para resolver o emparelhamento, ele é baseado no algoritmo de Christofides, este algoritmo é descrito abaixo: Algoritmo Guloso, baseado em Christofides: Passo 1 Inicialmente crie um grafo G (V,A ), que contém apenas os vértices de grau ímpares do grafo inicial G(V,A), escolha um vértice inicial de G (V,A ) para ser o nó corrente. 16

17 Figura 5.1: Um grafo não Euleriano Passo 2 Caso o vértice agora é de grau par, obtenha o próximo vértice de G (V,A ) e volte para o passo 2, senão calcule a distância mínima deste vértice a todos os outros vértices de G (V,A ), e determine qual é o vértice final cuja distância do vértice atual é a menor distância dentre as distâncias de todos os outros vértices em relação ao vértice corrente. Passo 3 Crie em G (V,A ) uma nova aresta, ou novas arestas ligando todo o caminho do vértice corrente até o vértice final, calculado no passo 2. Passo 4 Marque os dois vértices como sendo de grau par. Passo 5 Caso existam mais vértices de grau ímpar obtenha-o e volte ao passo 2. No algoritmo de Edmonds e Johnson, é utilizado o algoritmo de BFS (Breadth-First Search), para encontrar os menores caminhos do vértice corrente até todos os outros. A figura 5.1, mostra o exemplo de um processo de emparelhamento, executado pelo algoritmo descrito acima. Inicialmente temos o grafo não Euleriano, e devemos executar o matching. Separe todos os vértices que for de grau ímpar, que o matching trabalhará sobre eles. Escolhe um nó de grau ímpar para iniciar o matching, neste exemplo iniciaremos por A. Posteriormente calcula-se a menor distância de A, a todos os e outros vértices de grau ímpar, como é mostrado na figura 5.2, dentre estes caminhos selecione o menor deles, e ligue uma nova arestas entre os dois vértices, neste exemplo a menor distância é entre A e B, e marque os dois vértices como agora, de grau par e selecione o próximo vértice de grau ímpar, neste exemplo o vértice C. A figura 5.2 agora na parte (d), vemos os caminhos mais curtos saindo de C até os outros vértices de grau ímpar, que no caso é um pois só existe agora C e E, como vértices de grau ímpar, então é criada uma novas arestas paralelas as já existentes pelo caminho de C até F. A figura 5.3 mostra o grafo após a realização do matching. Portanto, a resolução do Problema do Carteiro Chinês para grafos não orientados resume-se em: 17

18 Figura 5.2: Caminhos mais curtos partindo de A e posteriormente de C. Figura 5.3: Grafo após matching 18

19 Passo 1: Verificar se o grafo é Euleriano, se for, vá para o passo 5; Passo 2: Identificar os k vértices que possuem grau ímpar. O valor de k será par devido ao grafo ser conexo; Passo 3: Encontrar a menor distância entre esses k vértices, ou seja, o emparelhamento perfeito através do matching; Passo 4: Acrescentar as arestas resultantes do matching ao grafo original; Passo 5: Buscar o circuito euleriano. 5.2 Problema do Carteiro Chinês para grafos orientados Segundo [3] para que o Problema do Carteiro Chinês tenha solução em grafos orientados é necessário que tal grafo seja fortemente conectado. Em outras palavras, deve existir um caminho que, ao ser percorrido, visite todos os vértices do grafo. A determinação desse caminho é feita através da busca do Circuito Euleriano no grafo. Para tanto, existe uma versão do teorema de Euler, baseada em grafos orientados: Teorema de Euler para grafos direcionados:[3] Teorema 5.2 Seja o grafo G(V,A) orientado e conexo. G(V,A) possui um Circuito Euleriano se, e somente se, todos os vértices pertencentes a V possuírem grau de entrada igual ao grau de saída. Em outras palavras, o número de arestas que entram em cada vértice v pertencente a V deve ser igual ao número de arestas que saem de v. Pela teoria dos grafos, um grafo com as características citadas no teorema acima é classificado como simétrico. Para determinar o Circuito Euleriano em um grafo direcionado, seguimos o trabalho de [3]: 1. Separar o conjunto de arestas em um conjunto de ciclos direcionados; 2. Iniciar a rota em um vértice qualquer pertencente a um dos ciclos. Este vértice chamaremos de V 1 ; 3. Percorrer todos os vértices pertencentes ao ciclo até encontrar V 1 ou algum V 2 pertencente a algum outro ciclo ainda não visitado; 4. Se encontrou V 1, encerra o algoritmo pois o circuito está determinado. Senão, visite o ciclo de V 2 antes de encerrar o ciclo de V 1 ; 19

20 5. Volte ao passo 3, para o ciclo de V 2. Do mesmo modo que em um grafo não orientado, quando o grafo não possuir um Circuito Euleriano, este deve ser obtido através dos algoritmos de emparelhamento, acrescentando novas arestas ao grafo de maneira a minimizar o custo do percurso. 5.3 Problema do Carteiro Chinês para grafos mistos Como já visto, um grafo misto é um grafo que possui tanto arestas orientadas quanto arestas não orientadas. O PCC em grafos mistos é solucionado pela obtenção do circuito Euleriano, assim como em grafos orientados. Segundo Eiselt et al.(1995 apud [3]) um grafo misto tem um circuito Euleriano, se todos os vértices tiverem grau par e sejam balanceados, tais condições estão presentes na versão modificada do Teorema de Euller para grafos mistos. Caso o grafo seja um grafo Euleriano, apenas é necessário encontrar o circuito Euleriano, utilizando um dos algoritmos aplicados no PCC em grafos orientados, e o PCC já está solucionado. Eiselt (Eiselt et. al, 1995 apud [3]) descreve algums passos para determinação do circuito Euleriano em grafos mistos, o qual é descrito abaixo: Método de Eiselt: Passo 1: Atribuir direções às arestas não orientadas para que o grafo se torne simétrico; Passo 2: Atribuir direção aos arcos restantes; Passo 3: Após isto com o grafo está totalmente orientado, pode se utilizar algum dos algoritmos de busca do circuito Euleriano, apresentados no PCC para grafos orientados. No passo 1, apenas observamos que um grafo simétrico, é um grafo em que o número de arestas incidentes é o mesmo de arestas que saem do vértice. Mas se o grafo não for Euleriano, uma abordagem parecida com o emparelhamento pode ser utilizada, porém não existe um algoritmo, que resolve para todo problema, o casamento de custo mínimo em um grafo não Euleriano, segundo [3] algumas abordagens fora propostas como em Grotschel e Win (1992); Christofides et al (1983) e Morábito (1996), mas apenas funcionam para problemas de pequeno e médio porte. 5.4 Problema do Carteiro Chinês Capacitado Este problema consiste em definir n rotas para um conjunto de carteiros, que devem atender à demanda apresentada em um grafo G. Este problema pode ser formulado como um problema de fluxo, com formulado por Golden e Wong(1981 apud [1]). 20

21 Foi provado por Golden e Wrong(1981), que este problema se trata de um NP-árduo, neste mesmo trabalho foi apresentado um algoritmo para solução de tal problema, o qual é descrito abaixo: INÍCIO Ler o grafo G = (N, A); Faça todas as arestas serem servidas em um circuito individual. Iniciando com o maior circuito disponível, verifique se uma aresta de um circuito menor pode ser servida por um circuito maior. Sujeito às restrições do problema, procure compor dois circuitos de forma a obter a maior economia possível. Repita a composição até não existir composição que traga a economia a solução. FIM Este algoritmo permite a utilização para realizar determinados passos, pois se trata de um algoritmo de alto nível, um exemplo é o Repita, que pode ser implementada utilizando heurísticas apresentadas em Clark e Wright(1964 apud [1]). 5.5 Algoritmos Implementados Dentre os algoritmos apresentados na literatura foram utilizados neste trabalho certos algoritmos na forma original, mas outros realizamos algumas modificações por motivo de desempenho e de simplicidade. No processo de implementação foram utilizados algoritmos para grafos não orientados, por motivo de simplicidade. Para encontrar o circuito Euleriano em um grafo, foi implementado o Algoritmo de Fleury, porém tivemos dificuldade em buscar uma solução quando, durante o percurso, existe mais de uma aresta incidente ao vértice. A solução encontrada foi eleger uma aresta da lista de adjacência de v i e fazer uma busca em largura (BFS), com início no vértice destino da aresta, chamado aqui de v j, até encontrar v i novamente. Ou seja, pesquisamos pela existência de um ciclo. Se esse ciclo não for identificado, a aresta em questão não pode ser escolhida pois trata-se de uma ponte e sua remoção torna o grafo desconexo. Logo uma nova aresta de v i deve ser escalada para análise. Para o matching foi implementado o algoritmo baseado em Christofides(1975), com uma alteração no algoritmo de encontrar os caminhos mínimos, originalmente foi utilizado o algoritmo encontra o matching mínimo, neste trabalho foi utilizado um método guloso para encontrar o matching mínimo, este método guloso utiliza o algoritmo de Djikstra, para determinar as menores distâncias entre os vértices de grau ímpar, para que possa 21

22 ser inseridas entre eles, novas arestas para que de tal forma o grafo, se torne um grafo Euleriano. 22

23 Capítulo 6 Aplicações Nesta seção descreveremos algumas situações onde o Problema do Carteiro Chinês é aplicado: 6.1 Roteamento de Veículos Para [1], esta é a principal aplicação do Problema do Carteiro Chinês. Consiste em determinar rotas para uma frota de veículos de maneira que atenda todos os clientes de forma otimizada, minimizando as distâncias percorridas e, consequentemente, os custos. Ao modelar o problema em um grafo, os clientes estão distribuídos ao longo das arestas (as ruas). Ainda no roteamento de veículos pode-se inserir uma restrição de capacidade, ou seja, um valor diferente para cada veículo que indica a quantidade máxima de carga suportada. Tal problema enquadra-se na categoria NP-Difícil. 6.2 Escala de tripulação Este problema relaciona-se com o anterior. é definido da seguinte maneira: dado um veículo, este possui tarefas que irá executar durante uma viagem. é necessário construir um conjunto de turnos, cada qual referenciando uma parte da viagem a ser realizada por uma tripulação nesse veículo, de maneira a cumprir a programação minimizando os custos com a tripulação. 6.3 Varredor de Ruas Este problema consiste em que o varredor de ruas busca do caminho mínimo em um grafo orientado, ou seja, onde as arestas podem ser percorridas em somente uma direção. Este problema foi discutido pela primeira vez em Nova Iorque, por suas avenidas serem de 23

24 mão única e, portanto, ficou conhecido na literatura como The New York Street Sweeper Problem. 24

25 Capítulo 7 Conclusão Após estudos realizados sobre o Problema do Carteiro Chinês, podemos definir que este na teoria dos grafos, possui resolução em tempo polinomial para grafos orientados e não orientados. Verificamos que o algoritmo de Fleury encontra um Circuito Euleriano em tempo O(n). Caso o grafo não possua um Circuito Euleriano, pode-se aplicar um algoritmo de emparelhamento, para transformá-lo. Em nossa implementação utilizamos o algoritmo de guloso baseado no algoritmo de Christofides para tal função. 25

26 Apêndice A Algoritmo utilizado para busca do caminho euleriano no grafo. Implementado na linguagem de Programação Java. public int[] fleury( int inicio ) { int arestas[] = new int[100]; int vertice = inicio; int cont=0; NodoAresta a, b; //aresta a-b == aresta b-a this.mostragrafo(); while(this.existearesta()) { if(g[vertice].arestasrestantes() == 1) a = G[vertice].getRestante(); else { a = this.escolhenaoponte(vertice); } arestas[cont] = a.getident(); int aux = vertice; //aux recebe o vertice de origem a.setretirada( s ); //marca como aresta percorrida vertice = a.getdestino(); //vertice recebe o novo vertice b = G[vertice].getAresta(aux); //b recebe a aresta que liga o novo vertice ao antigo b.setretirada( s ); //marca como aresta percorrida cont++; } return arestas; } Este algoritmo é utilizado pelo algoritmo de Fleury, para escolher o próxima aresta a ser seguida, mas que ela não seja uma ponte, pois se o algoritmo percorrer pela ponte, ela a eliminaria e o grafo ficaria desconexo.segue o algoritmo que escolhe uma aresta 26

27 não-ponte, implementado em linguagem Java. public NodoAresta escolhenaoponte(int vertice) { NodoAresta ret, a, b, c; NodoVertice u; Fila f = new Fila(); int destino, aux1, origem; a = G[vertice].getRestante(); while(a!= null) { if((a.getretirada() == n ) && (a.getvisitada() == n )) { ret = a; destino = a.getdestino(); a.setvisitada( s ); c = G[destino].getAresta(vertice); c.setvisitada( s ); f.enqueue(g[destino]); while(!f.isempty()) { u = f.dequeue(); origem = u.getindice(); b = u.getrestante(); while(b!= null) { if((b.getvisitada() == n ) && (b.getretirada()== n )) { aux1 = b.getdestino(); if(aux1 == vertice) return ret; b.setvisitada( s ); c = G[aux1].getAresta(origem); c.setvisitada( s ); f.enqueue(g[aux1]); } b = b.getprox(); } } } a = a.getprox(); } return null; } 27

28 Referências Bibliográficas [1] Goldbarg, Marco C., Pacca, H., Lima, Loureiro. Otimização Combinatória e Programação Linear. 2 Edição. Editora Campus [2] Oliveira, J.A., O Problema do Carteiro Chinês. Disponível em: webdi.ci.uminho.pt/6307n2 L EGI/pdfs/T CART EIRO05.pdf. Acessado em: 30/05/2007. [3] Godinho Filho, Moacir, Junqueira, Rogério de Ávila Ribeiro. Um algoritmo para auxiliar na escolha de métodos de solução para o Problema do Carteiro Chinês: proposta e aplicação em uma grande cidade do interior paulista. XII SIMPEP, Bauru, São Paulo,

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Complemento de Grafos Mostre que para qualquer Grafo G com 6 pontos, G ou possui um triângulo Considere um vértice v de V(G). Sem perda de generalidade, podemos assumir v é adjacente a outros

Leia mais

PROBLEMA DO CARTEIRO CHINÊS

PROBLEMA DO CARTEIRO CHINÊS Introdução à Teoria dos Grafos Bacharelado em Ciência da Computação UFMS, 005 PROBLEMA DO CARTEIRO CHINÊS Resumo A teoria dos grafos teve seu início há cerca de 50 anos e aplicações datadas daquela época

Leia mais

Roteamentos AULA ... META. Introduzir alguns problemas de roteamento. OBJETIVOS. Ao final da aula o aluno deverá ser capaz de:

Roteamentos AULA ... META. Introduzir alguns problemas de roteamento. OBJETIVOS. Ao final da aula o aluno deverá ser capaz de: Roteamentos AULA META Introduzir alguns problemas de roteamento. OBJETIVOS Ao final da aula o aluno deverá ser capaz de: Distinguir circuito euleriano e ciclo hamiltoniano; Obter um circuito euleriano

Leia mais

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas CMP1132 Processo e qualidade de software II Prof. Me. Elias Ferreira Sala: 402 E Quarta-Feira:

Leia mais

Teoria dos Grafos. Aulas 3 e 4. Profa. Alessandra Martins Coelho

Teoria dos Grafos. Aulas 3 e 4. Profa. Alessandra Martins Coelho Teoria dos Grafos Aulas 3 e 4 Profa. Alessandra Martins Coelho fev/2014 Passeio ou percurso Um passeio ou percurso é uma sequência finita de vértices e arestas Exemplo Em (1) o passeio inicia pelo vértice

Leia mais

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14 1 Introdução O termo "roteamento de veículos" está relacionado a um grande conjunto de problemas de fundamental importância para a área de logística de transportes, em especial no que diz respeito ao uso

Leia mais

Passeios de Euler e as pontes de Königsberg

Passeios de Euler e as pontes de Königsberg Passeios de Euler e as pontes de Königsberg João arlos V. Sampaio UFSar sampaio@dm.ufscar.br Königsberg era uma cidade da antiga Prússia, hoje chamada Kaliningrado, na atual Rússia. Na parte central de

Leia mais

BCC204 - Teoria dos Grafos

BCC204 - Teoria dos Grafos BCC204 - Teoria dos Grafos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Haroldo Gambini Santos) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal

Leia mais

PESQUISA OPERACIONAL TEORIA DOS GRAFOS

PESQUISA OPERACIONAL TEORIA DOS GRAFOS PESQUISA OPERACIONAL TEORIA DOS GRAFOS Um grafo G(V,A) pode ser conceituado como um par de conjuntos V e A, onde: V - conjunto não vazio cujos elementos são de denominados vértices ou nodos do grafo; A

Leia mais

Grafo: Algoritmos e Aplicações

Grafo: Algoritmos e Aplicações Grafo: Algoritmos e Aplicações Leandro Colombi Resendo leandro@ifes.edu.br Grafos: Algortimos e Aplicações Referências Basicas: Boaventura Netto, P. O., Grafos: Teoria, Modelos, Algoritmos, 2ª, SP, Edgar

Leia mais

Este material traz a teoria necessária à resolução das questões propostas.

Este material traz a teoria necessária à resolução das questões propostas. Inclui Teoria e Questões Inteiramente Resolvidas dos assuntos: Contagem: princípio aditivo e multiplicativo. Arranjo. Permutação. Combinação simples e com repetição. Lógica sentencial, de primeira ordem

Leia mais

UM TEOREMA QUE PODE SER USADO NA

UM TEOREMA QUE PODE SER USADO NA UM TEOREMA QUE PODE SER USADO NA PERCOLAÇÃO Hemílio Fernandes Campos Coêlho Andrei Toom PIBIC-UFPE-CNPq A percolação é uma parte importante da teoria da probabilidade moderna que tem atraído muita atenção

Leia mais

Prof. Bruno Holanda - Semana Oĺımpica 2011 - Nível 1. Teoria dos Grafos

Prof. Bruno Holanda - Semana Oĺımpica 2011 - Nível 1. Teoria dos Grafos Prof. Bruno Holanda - Semana Oĺımpica 0 - Nível Teoria dos Grafos O que é um grafo? Se você nunca ouviu falar nisso antes, esta é certamente uma pergunta que você deve estar se fazendo. Vamos tentar matar

Leia mais

01/05/2016. Danillo Tourinho Sancho da Silva, MSc ROTEIRIZAÇÃO TEORIA DOS GRAFOS MOTIVAÇÃO

01/05/2016. Danillo Tourinho Sancho da Silva, MSc ROTEIRIZAÇÃO TEORIA DOS GRAFOS MOTIVAÇÃO ROTEIRIZAÇÃO Danillo Tourinho Sancho da Silva, MSc TEORIA DOS GRAFOS MOTIVAÇÃO 1 MOTIVAÇÃO Por que estudar grafos? Importante ferramenta matemática com aplicação em diversas áreas do conhecimento Utilizados

Leia mais

7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura 7.1 - Exemplo de um grafo linear.

7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura 7.1 - Exemplo de um grafo linear. CAPÍTULO 7 7 ANÁLISE DE REDES 7.1 Conceitos Básicos em Teoria dos Grafos Diversos problemas de programação linear, inclusive os problemas de transporte, podem ser modelados como problemas de fluxo de redes.

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos Classes de Complexidades de Problemas Prof. Osvaldo Luiz de Oliveira Estas anotações devem ser complementadas por apontamentos em aula. Tempo polinomial Um algoritmo A, com entrada

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Grafos Cliques Maximais Para determinar os cliques maximais de um grafo G podemos usar o método de Maghout em Dado o grafo abaixo, calcule Determine os conjuntos independentes maximais em

Leia mais

CAPÍTULO 2. Grafos e Redes

CAPÍTULO 2. Grafos e Redes CAPÍTULO 2 1. Introdução Um grafo é uma representação visual de um determinado conjunto de dados e da ligação existente entre alguns dos elementos desse conjunto. Desta forma, em muitos dos problemas que

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas?

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas? Recorrências Muitas vezes não é possível resolver problemas de contagem diretamente combinando os princípios aditivo e multiplicativo. Para resolver esses problemas recorremos a outros recursos: as recursões

Leia mais

APLICAÇÕES DA DERIVADA

APLICAÇÕES DA DERIVADA Notas de Aula: Aplicações das Derivadas APLICAÇÕES DA DERIVADA Vimos, na seção anterior, que a derivada de uma função pode ser interpretada como o coeficiente angular da reta tangente ao seu gráfico. Nesta,

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Laboratório de Pesquisa e Desenvolvimento Universidade Federal de Alfenas versão

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

Autómatos Finitos Determinísticos

Autómatos Finitos Determinísticos Ficha 2 Autómatos Finitos Determinísticos 2.1 Introdução Se olharmos, de forma simplificada, para um computador encontramos três componentes principais: a) A unidade de processamento central b) As unidades

Leia mais

Capítulo 7. Topologia Digital. 7.1 Conexidade

Capítulo 7. Topologia Digital. 7.1 Conexidade Capítulo 7 Topologia Digital A Topologia Digital estuda a aplicação das noções definidas em Topologia sobre imagens binárias. Neste capítulo vamos introduzir algumas noções básicas de Topologia Digital,

Leia mais

Algoritmos e Estrutura de Dados III. Árvores

Algoritmos e Estrutura de Dados III. Árvores Algoritmos e Estrutura de Dados III Árvores Uma das mais importantes classes de estruturas de dados em computação são as árvores. Aproveitando-se de sua organização hierárquica, muitas aplicações são realizadas

Leia mais

2 Problema das p-medianas

2 Problema das p-medianas 2 Problema das p-medianas 2.1 Definição O PMNC é definido da seguinte forma: determinar quais p facilidades (p m, onde m é o número de pontos onde podem ser abertas facilidades) devem obrigatoriamente

Leia mais

Algumas Aplicações da Teoria dos Grafos

Algumas Aplicações da Teoria dos Grafos UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE MATEMÁTICA Giselle Moraes Resende Pereira (PET Matemática SESu-MEC) giselle_mrp@yahoo.com.br Marcos Antônio da Câmara (Tutor do PET Matemática) camara@ufu.br

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

Pesquisa Operacional Programação em Redes

Pesquisa Operacional Programação em Redes Pesquisa Operacional Programação em Redes Profa. Alessandra Martins Coelho outubro/2013 Modelagem em redes: Facilitar a visualização e a compreensão das características do sistema Problema de programação

Leia mais

Faculdade de Computação

Faculdade de Computação UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Teoria da Computação Professora : Sandra Aparecida de Amo Lista de Exercícios n o 2 Exercícios sobre Modelos de Máquinas de Turing

Leia mais

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE MÓDULO 6 INTRODUÇÃO À PROBBILIDDE Quando estudamos algum fenômeno através do método estatístico, na maior parte das vezes é preciso estabelecer uma distinção entre o modelo matemático que construímos para

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

Análise de Redes de Transportes. Útil também para várias outras áreas além de Transportes!

Análise de Redes de Transportes. Útil também para várias outras áreas além de Transportes! Análise de Redes de Transportes Útil também para várias outras áreas além de Transportes! Roteiro da apresentação! Conceitos e definições! Caminho mínimo! Árvore de caminhos mínimos! Introdução ao problema

Leia mais

Análise e Complexidade de Algoritmos

Análise e Complexidade de Algoritmos Análise e Complexidade de Algoritmos Uma visão de Intratabilidade, Classes P e NP - redução polinomial - NP-completos e NP-difíceis Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com

Leia mais

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2 3.2 O Espaço Nulo de A: Resolvendo Ax = 0 11 O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2 Esta seção trata do espaço de soluções para Ax = 0. A matriz A pode ser quadrada ou retangular. Uma solução imediata

Leia mais

Só Matemática O seu portal matemático http://www.somatematica.com.br FUNÇÕES

Só Matemática O seu portal matemático http://www.somatematica.com.br FUNÇÕES FUNÇÕES O conceito de função é um dos mais importantes em toda a matemática. O conceito básico de função é o seguinte: toda vez que temos dois conjuntos e algum tipo de associação entre eles, que faça

Leia mais

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2.

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2. Pg. 1 Universidade Federal do Espírito Santo - UFES Mestrado em Informática 2004/1 Projetos O Projeto O projeto tem um peso maior na sua nota final pois exigirá de você a utilização de diversas informações

Leia mais

a 1 x 1 +... + a n x n = b,

a 1 x 1 +... + a n x n = b, Sistemas Lineares Equações Lineares Vários problemas nas áreas científica, tecnológica e econômica são modelados por sistemas de equações lineares e requerem a solução destes no menor tempo possível Definição

Leia mais

Bases Matemáticas. Aula 2 Métodos de Demonstração. Rodrigo Hausen. v. 2013-7-31 1/15

Bases Matemáticas. Aula 2 Métodos de Demonstração. Rodrigo Hausen. v. 2013-7-31 1/15 Bases Matemáticas Aula 2 Métodos de Demonstração Rodrigo Hausen v. 2013-7-31 1/15 Como o Conhecimento Matemático é Organizado Definições Definição: um enunciado que descreve o significado de um termo.

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

O Princípio da Complementaridade e o papel do observador na Mecânica Quântica

O Princípio da Complementaridade e o papel do observador na Mecânica Quântica O Princípio da Complementaridade e o papel do observador na Mecânica Quântica A U L A 3 Metas da aula Descrever a experiência de interferência por uma fenda dupla com elétrons, na qual a trajetória destes

Leia mais

BCC204 - Teoria dos Grafos

BCC204 - Teoria dos Grafos BCC204 - Teoria dos Grafos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Haroldo Gambini Santos) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal

Leia mais

Contagem (2) Anjolina Grisi de Oliveira. 2007.1 / CIn-UFPE. Centro de Informática Universidade Federal de Pernambuco

Contagem (2) Anjolina Grisi de Oliveira. 2007.1 / CIn-UFPE. Centro de Informática Universidade Federal de Pernambuco 1 / 24 Contagem (2) Anjolina Grisi de Oliveira Centro de Informática Universidade Federal de Pernambuco 2007.1 / CIn-UFPE 2 / 24 O princípio da multiplicação de outra forma O princípio da multiplicação

Leia mais

Dicas para a 6 a Lista de Álgebra 1 (Conteúdo: Homomorfismos de Grupos e Teorema do Isomorfismo para grupos) Professor: Igor Lima.

Dicas para a 6 a Lista de Álgebra 1 (Conteúdo: Homomorfismos de Grupos e Teorema do Isomorfismo para grupos) Professor: Igor Lima. Dicas para a 6 a Lista de Álgebra 1 (Conteúdo: Homomorfismos de Grupos e Teorema do Isomorfismo para grupos) Professor: Igor Lima. 1 /2013 Para calcular Hom(G 1,G 2 ) ou Aut(G) vocês vão precisar ter em

Leia mais

The Stable Matching Problem

The Stable Matching Problem The Stable Matching Problem Aluno: José Eliton Albuquerque Filho Orientador: Thomas Lewiner Introdução O problema do emparelhamento estável ( Stable Matching Problem ), apresentado por David Gale e L.S.Shapley

Leia mais

5COP096 TeoriadaComputação

5COP096 TeoriadaComputação Sylvio 1 Barbon Jr barbon@uel.br 5COP096 TeoriadaComputação Aula 14 Prof. Dr. Sylvio Barbon Junior Sumário - Problemas Exponenciais - Algoritmos Exponenciais usando Tentativa e Erro - Heurísticas para

Leia mais

Aplicações de Combinatória e Geometria na Teoria dos Números

Aplicações de Combinatória e Geometria na Teoria dos Números Aplicações de Combinatória e Geometria na Teoria dos Números Nesse artigo vamos discutir algumas abordagens diferentes na Teoria dos Números, no sentido de envolverem também outras grandes áreas, como

Leia mais

QUESTÃO 1 ALTERNATIVA B

QUESTÃO 1 ALTERNATIVA B 1 QUESTÃO 1 Marcos tem 10 0,25 = 2,50 reais em moedas de 25 centavos. Logo ele tem 4,30 2,50 = 1,80 reais em moedas de 10 centavos, ou seja, ele tem 1,80 0,10 = 18 moedas de 10 centavos. Outra maneira

Leia mais

Capítulo 1. x > y ou x < y ou x = y

Capítulo 1. x > y ou x < y ou x = y Capítulo Funções, Plano Cartesiano e Gráfico de Função Ao iniciar o estudo de qualquer tipo de matemática não podemos provar tudo. Cada vez que introduzimos um novo conceito precisamos defini-lo em termos

Leia mais

6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto

6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto Capítulo 6. Autômatos com Pilha 6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto Nos exemplos da seção anterior, vimos que os autômatos com pilha existem para

Leia mais

Soluções Nível 1 5 a e 6 a séries (6º e 7º anos) do Ensino Fundamental

Soluções Nível 1 5 a e 6 a séries (6º e 7º anos) do Ensino Fundamental a e 6 a séries (6º e 7º anos) do Ensino Fundamental 1. (alternativa C) Os números 0,01 e 0,119 são menores que 0,12. Por outro lado, 0,1 e 0,7 são maiores que 0,. Finalmente, 0,29 é maior que 0,12 e menor

Leia mais

FUNÇÃO REAL DE UMA VARIÁVEL REAL

FUNÇÃO REAL DE UMA VARIÁVEL REAL Hewlett-Packard FUNÇÃO REAL DE UMA VARIÁVEL REAL Aulas 01 a 04 Elson Rodrigues, Gabriel Carvalho e Paulo Luís Ano: 2015 Sumário INTRODUÇÃO AO PLANO CARTESIANO... 2 PRODUTO CARTESIANO... 2 Número de elementos

Leia mais

Contagem. Prof. Dr. Leandro Balby Marinho. Matemática Discreta. Fundamentos Inclusão/Exclusão Princípio da Casa dos Pombos Permutações Combinações

Contagem. Prof. Dr. Leandro Balby Marinho. Matemática Discreta. Fundamentos Inclusão/Exclusão Princípio da Casa dos Pombos Permutações Combinações Contagem Prof. Dr. Leandro Balby Marinho Matemática Discreta Prof. Dr. Leandro Balby Marinho 1 / 39 UFCG CEEI Motivação Contagem e combinatória são partes importantes da matemática discreta. Se resumem

Leia mais

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário

Leia mais

O Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48

O Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48 Conteúdo 1 Princípios de Contagem e Enumeração Computacional Permutações com Repetições Combinações com Repetições O Problema do Troco Principio da Casa dos Pombos > Princípios de Contagem e Enumeração

Leia mais

4 Segmentação. 4.1. Algoritmo proposto

4 Segmentação. 4.1. Algoritmo proposto 4 Segmentação Este capítulo apresenta primeiramente o algoritmo proposto para a segmentação do áudio em detalhes. Em seguida, são analisadas as inovações apresentadas. É importante mencionar que as mudanças

Leia mais

Grafos Msc. Daniele Carvalho Oliveira. Doutoranda em Computação UFU Mestre em Computação - UFU Bacharel em Computação - UFJF 1

Grafos Msc. Daniele Carvalho Oliveira. Doutoranda em Computação UFU Mestre em Computação - UFU Bacharel em Computação - UFJF 1 Grafos Msc. Daniele Carvalho Oliveira Doutoranda em Computação UFU Mestre em Computação - UFU Bacharel em Computação - UFJF 1 Árvore Geradora Mínima 2 Porque é um problema interessante Suponha que queremos

Leia mais

¹CPTL/UFMS, Três Lagoas, MS,Brasil, oliveiralimarafael@hotmail.com. ²CPTL/UFMS, Três Lagoas, MS, Brasil.

¹CPTL/UFMS, Três Lagoas, MS,Brasil, oliveiralimarafael@hotmail.com. ²CPTL/UFMS, Três Lagoas, MS, Brasil. Encontro de Ensino, Pesquisa e Extensão, Presidente Prudente, 22 a 25 de outubro, 2012 36 INTRODUÇÃO A CRIPTOGRAFIA RSA Rafael Lima Oliveira¹, Prof. Dr. Fernando Pereira de Souza². ¹CPTL/UFMS, Três Lagoas,

Leia mais

Trabalho Computacional

Trabalho Computacional Universidade Federal do Espírito Santo Departamento de Informática Profª Claudia Boeres Teoria dos Grafos - 2014/2 Trabalho Computacional 1. Objetivo Estudo e implementação de algoritmos para resolução

Leia mais

Equações do segundo grau

Equações do segundo grau Módulo 1 Unidade 4 Equações do segundo grau Para início de conversa... Nesta unidade, vamos avançar um pouco mais nas resoluções de equações. Na unidade anterior, você estudou sobre as equações de primeiro

Leia mais

Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II

Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II O seguinte exercício contempla um processo com três estágios. Baseia-se no Inquérito de Satisfação Fase II, sendo, por isso, essencial compreender primeiro o problema antes de começar o tutorial. 1 1.

Leia mais

Função Mudar de unidade estatística

Função Mudar de unidade estatística Função Mudar de unidade estatística Frequentemente, certas pesquisas contêm informações correspondentes a níveis estatísticos diferentes. No Sphinx (Survey ou Léxica), a partir do menu Gestão, opção Mudar

Leia mais

Algoritmos e Estruturas de Dados II. Trabalho Prático 2

Algoritmos e Estruturas de Dados II. Trabalho Prático 2 Algoritmos e Estruturas de Dados II Entrega: 24/09/08 Devolução: 15/10/08 Trabalho individual Prof. Jussara Marques de Almeida Trabalho Prático 2 Você foi contratado pela XOL X Online para desenvolver

Leia mais

Conceitos e fórmulas

Conceitos e fórmulas 1 Conceitos e fórmulas 1).- Triângulo: definição e elementos principais Definição - Denominamos triângulo (ou trilátero) a toda figura do plano euclidiano formada por três segmentos AB, BC e CA, tais que

Leia mais

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo. Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto

Leia mais

Árvores Binárias e Busca. Jeane Melo

Árvores Binárias e Busca. Jeane Melo Árvores Binárias e Busca Jeane Melo Roteiro Parte 1 Árvores Relação hierárquica Definição Formal Terminologia Caminhamento em Árvores Binárias Exemplos Parte 2 Busca seqüencial Busca Binária Grafos Conjunto

Leia mais

Estrutura de Dados Básica

Estrutura de Dados Básica Estrutura de Dados Básica Professor: Osvaldo Kotaro Takai. Aula 7: Recursividade O objetivo desta aula é apresentar o conceito de recursão para solução de problemas. A recursão é uma técnica de programação

Leia mais

PROBLEMA DE TRANSPORTE: MODELO E MÉTODO DE SOLUÇÃO

PROBLEMA DE TRANSPORTE: MODELO E MÉTODO DE SOLUÇÃO PROBLEMA DE TRANSPORTE: MODELO E MÉTODO DE SOLUÇÃO Luciano Pereira Magalhães - 8º - noite lpmag@hotmail.com Orientador: Prof Gustavo Campos Menezes Banca Examinadora: Prof Reinaldo Sá Fortes, Prof Eduardo

Leia mais

Utilização do SOLVER do EXCEL

Utilização do SOLVER do EXCEL Utilização do SOLVER do EXCEL 1 Utilização do SOLVER do EXCEL José Fernando Oliveira DEEC FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO MAIO 1998 Para ilustrar a utilização do Solver na resolução de

Leia mais

A-Graph: Uma ferramenta computacional de suporte para o ensino-aprendizado da disciplina Teoria dos Grafos e seus Algoritmos

A-Graph: Uma ferramenta computacional de suporte para o ensino-aprendizado da disciplina Teoria dos Grafos e seus Algoritmos A-Graph: Uma ferramenta computacional de suporte para o ensino-aprendizado da disciplina Teoria dos Grafos e seus Algoritmos Luis Arturo Pérez Lozada 1 1 Centro de Matemática, Computação e Cognição Universidade

Leia mais

OBI2014 Caderno de Tarefas

OBI2014 Caderno de Tarefas OBI2014 Caderno de Tarefas Modalidade Universitária, Fase 2 16 de agosto de 2014 A PROVA TEM DURAÇÃO DE 5 HORAS Promoção: Patrocínio: Olimpíada Brasileira de Informática OBI2014 1 Instruções LEIA ATENTAMENTE

Leia mais

Análise e Projeto de Algoritmos

Análise e Projeto de Algoritmos Análise e Projeto de Algoritmos Prof. Eduardo Barrére www.ufjf.br/pgcc www.dcc.ufjf.br eduardo.barrere@ice.ufjf.br www.barrere.ufjf.br Complexidade de Algoritmos Computabilidade: Um problema é computável

Leia mais

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi Apostila de Fundamentos de Programação I Prof: André Luiz Montevecchi Introdução O mundo atual é dependente da tecnologia O uso intenso de diversos aparatos tecnológicos é parte integrante do nosso dia-a-dia

Leia mais

Objetivos. Apresentar as superfícies regradas e superfícies de revolução. Analisar as propriedades que caracterizam as superfícies regradas e

Objetivos. Apresentar as superfícies regradas e superfícies de revolução. Analisar as propriedades que caracterizam as superfícies regradas e MÓDULO 2 - AULA 13 Aula 13 Superfícies regradas e de revolução Objetivos Apresentar as superfícies regradas e superfícies de revolução. Analisar as propriedades que caracterizam as superfícies regradas

Leia mais

PROGRAMAÇÃO LINEAR. Resolução de problemas de programação linear usando o comando Solver, no Excel.

PROGRAMAÇÃO LINEAR. Resolução de problemas de programação linear usando o comando Solver, no Excel. PROGRAMAÇÃO LINEAR Resolução de problemas de programação linear usando o comando Solver, no Excel. Para além da resolução pelo método gráfico e/ou outros métodos, é possível resolver um problema de PL

Leia mais

9. Derivadas de ordem superior

9. Derivadas de ordem superior 9. Derivadas de ordem superior Se uma função f for derivável, então f é chamada a derivada primeira de f (ou de ordem 1). Se a derivada de f eistir, então ela será chamada derivada segunda de f (ou de

Leia mais

AULA 6 - Operações Espaciais

AULA 6 - Operações Espaciais 6.1 AULA 6 - Operações Espaciais Essa aula descreve as operações espaciais disponíveis no TerraView. Antes de iniciar sua descrição é necessário importar alguns dados que serão usados nos exemplos. Exercício:

Leia mais

Resíduos Quadráticos e Fatoração: uma aplicação à criptoanálise do RSA

Resíduos Quadráticos e Fatoração: uma aplicação à criptoanálise do RSA Resíduos Quadráticos e Fatoração: uma aplicação à criptoanálise do RSA Charles F. de Barros 20 de novembro de 2008 Resumo Faremos uma breve introdução ao conceito de resíduos quadráticos, descrevendo em

Leia mais

Disciplina: Unidade III: Prof.: E-mail: Período:

Disciplina: Unidade III: Prof.: E-mail: Período: Encontro 08 Disciplina: Sistemas de Banco de Dados Unidade III: Modelagem Lógico de Dados Prof.: Mario Filho E-mail: pro@mariofilho.com.br Período: 5º. SIG - ADM Relembrando... Necessidade de Dados Projeto

Leia mais

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá. INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,

Leia mais

(a 1 + a 100 ) + (a 2 + a 99 ) + (a 3 + a 98 ) +... + (a 50 + a 51 ).

(a 1 + a 100 ) + (a 2 + a 99 ) + (a 3 + a 98 ) +... + (a 50 + a 51 ). Questão 1. A sequência 0, 3, 7, 10, 14, 17, 21,... é formada a partir do número 0 somando-se alternadamente 3 ou 4 ao termo anterior, isto é: o primeiro termo é 0, o segundo é 3 a mais que o primeiro,

Leia mais

Usando o Excel ESTATÍSTICA. Funções

Usando o Excel ESTATÍSTICA. Funções Funções Podemos usar no Excel fórmulas ou funções. Anteriormente já vimos algumas fórmulas. Vamos agora ver o exemplo de algumas funções que podem ser úteis para o trabalho de Excel. Para começar podemos

Leia mais

Máquinas de Turing. Juliana Kaizer Vizzotto. Disciplina de Teoria da Computação. Universidade Federal de Santa Maria

Máquinas de Turing. Juliana Kaizer Vizzotto. Disciplina de Teoria da Computação. Universidade Federal de Santa Maria Universidade Federal de Santa Maria Disciplina de Teoria da Computação Roteiro Definição Formal de Máquina de Turing Mais exemplos Definição Formal de Máquina de Turing Uma máquina de Turing é uma 7-upla,

Leia mais

Sistemas Distribuídos: Princípios e Algoritmos Introdução à Análise de Complexidade de Algoritmos

Sistemas Distribuídos: Princípios e Algoritmos Introdução à Análise de Complexidade de Algoritmos Sistemas Distribuídos: Princípios e Algoritmos Introdução à Análise de Complexidade de Algoritmos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática

Leia mais

IA: Problemas de Satisfação de Restrições. Prof. Msc. Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br

IA: Problemas de Satisfação de Restrições. Prof. Msc. Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br IA: Problemas de Satisfação de Restrições Prof. Msc. Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br Introdução Um PSR é definido por um conjunto de variáveis X 1, X 2,..., X n, e por um conjunto de restrições,

Leia mais

Estruturas de Dados. Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos

Estruturas de Dados. Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos Estruturas de Dados Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos Árvores Conceitos Árvores binárias Árvores binárias de pesquisa Árvores binárias balanceadas Árvores ESTRUTURAS

Leia mais

BC-0506: Comunicação e Redes Algoritmos em Grafos

BC-0506: Comunicação e Redes Algoritmos em Grafos BC-0506: Comunicação e Redes Algoritmos em Grafos Santo André, 2Q2011 1 Parte 1: Algoritmos de Busca Rediscutindo: Representações em Grafos Matriz de Adjacências Matriz de Incidências Lista de Adjacências

Leia mais

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS Campus Cachoeiro de Itapemirim Curso Técnico em Informática Disciplina: Análise e Projeto de Sistemas Professor: Rafael Vargas Mesquita Este exercício deve ser manuscrito e entregue na próxima aula; Valor

Leia mais

TRIBUNAL DE JUSTIÇA DO PARANÁ PROJUDI REFORMULAÇÃO DE CUMPRIMENTOS - MANDADOS

TRIBUNAL DE JUSTIÇA DO PARANÁ PROJUDI REFORMULAÇÃO DE CUMPRIMENTOS - MANDADOS TRIBUNAL DE JUSTIÇA DO PARANÁ PROJUDI REFORMULAÇÃO DE CUMPRIMENTOS - MANDADOS 2 SUMÁRIO SEÇÃO 1 - FLUXO DAS VARAS QUE NÃO POSSUEM CENTRAL DE MANDADOS... 03 1. CUMPRIMENTOS (PERFIS DE ANALISTA E TÉCNICO

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução Prof. Humberto Brandão humberto@dcc.ufmg.br aula disponível no site: http://www.bcc.unifal-mg.edu.br/~humberto/ Universidade Federal de

Leia mais

ANALISE COMBINATORIA Um pouco de probabilidade

ANALISE COMBINATORIA Um pouco de probabilidade ANALISE COMBINATORIA Um pouco de probabilidade Programa Pró-Ciência Fapesp/IME-USP-setembro de 1999 Antônio L. Pereira -IME USP (s. 234A) tel 818 6214 email:alpereir@ime.usp.br 1 Um carro e dois bodes

Leia mais

Notas de aula número 1: Otimização *

Notas de aula número 1: Otimização * UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL UFRGS DEPARTAMENTO DE ECONOMIA CURSO DE CIÊNCIAS ECONÔMICAS DISCIPLINA: TEORIA MICROECONÔMICA II Primeiro Semestre/2001 Professor: Sabino da Silva Porto Júnior

Leia mais

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2 FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO Projeto e Análise de Algoritmos II Lista de Exercícios 2 Prof. Osvaldo. 1. Desenvolva algoritmos para as operações abaixo e calcule a complexidade

Leia mais

A TEORIA DOS GRAFOS NA ANÁLISE DO FLUXOGRAMA DO CURSO DE ENGENHARIA DE PRODUÇÃO DA UFF

A TEORIA DOS GRAFOS NA ANÁLISE DO FLUXOGRAMA DO CURSO DE ENGENHARIA DE PRODUÇÃO DA UFF RELATÓRIOS DE PESQUISA EM ENGENHARIA DE PRODUÇÃO, v.13, Série B. n.3, p. 20-33. A TEORIA DOS GRAFOS NA ANÁLISE DO FLUXOGRAMA DO CURSO DE ENGENHARIA DE PRODUÇÃO DA UFF Pedro Henrique Drummond Pecly Universidade

Leia mais

Árvores Binárias de Busca

Árvores Binárias de Busca Árvores Binárias de Busca Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguinte propriedade: Para todo nó da árvore, se seu valor é X, então: Os nós pertencentes

Leia mais

CAP. I ERROS EM CÁLCULO NUMÉRICO

CAP. I ERROS EM CÁLCULO NUMÉRICO CAP. I ERROS EM CÁLCULO NUMÉRICO 0. Introdução Por método numérico entende-se um método para calcular a solução de um problema realizando apenas uma sequência finita de operações aritméticas. A obtenção

Leia mais

PROBABILIDADE Prof. Adriano Mendonça Souza, Dr.

PROBABILIDADE Prof. Adriano Mendonça Souza, Dr. PROBABILIDADE Prof. Adriano Mendonça Souza, Dr. Departamento de Estatística - PPGEMQ / PPGEP - UFSM - O intelecto faz pouco na estrada que leva à descoberta, acontece um salto na consciência, chameo de

Leia mais