Search This Blog

Friday, May 5, 2017

Aula 14 de Métodos Computacionais em Economia - Branch and Bound

Na nossa décima quarta aula de métodos computacionais discutimos a estratégia conhecida como Branch e Bound. Esses são os slides usados em sala.


Códigos usados em sala de aula

Branch and bound para resolver o problema da mochila


Referências para essa aula:

Introduction to the Design and Analysis of Algorithms - Anany Levitin [Seção 12.2]

Combinatorial optimization: Algorithms and Complexity - Christos H Papadimitriou e Kenneth Steiglitz [Capítulo 18]

Referência complementar para estudar filas com prioridades

Data Structures and Algorithms in Python - Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser [Capítulo 9]

Soluçoes dos exercícios

Branch and bound para resolver o problema de alocação

Branch and bound para resolver encontrar os caminhos mais curtos de um grafo (Djkstra)

Branch and bound para resolver o problema do caixeiro viajante


Aula 13 de Métodos Computacionais em Economia - Backtracking

Na nossa décima terceira aula de métodos computacionais discutimos a estratégia conhecida como Backtracking. Esses são os slides usados em sala.


Códigos usados em sala de aula

Backtracking para gerar e resolver labirintos

Problema das N rainhas usando Backtracking

Subset sum usando backtracking

Longest integer subsequence usando backtracking

Referências para essa aula:

Introduction to the Design and Analysis of Algorithms - Anany Levitin [Seção 12.1]

Lecture 3 do E-book Algorithms de Jeff Erickson.

Think recursively - Eric S. Roberts [Capítulo 8]

Referências complementares para essa aula:

Artificial intelligence: A modern approach - S. J. Russell and Peter Norvig [Capítulo 5]

Soluções de exercícios

Resta 1 usando backtracking

Slide Puzzle 15

Instant Insanity

Sudoku

Rota dos cavalos

M-coloring problem

Tuesday, May 2, 2017

Aula 12 de Métodos Computacionais em Economia - Transformação e Conquista

Na nossa décima segunda aula de métodos computacionais discutimos a estratégia conhecida como Transformação e Conquista. Esses são os slides usados em sala.



Referências Adicionais para essa aula:

Introduction to the Design and Analysis of Algorithms - Anany Levitin [Seções 6.1 e 6.2]

Solução de exercícios:

Cálculo da moda

Intersecção entre dois conjuntos

Eliminação gaussiana

Decomposição LU

Aula 11 de Métodos Computacionais em Economia - Divisão e Conquista

Na nossa décima primeira aula de métodos computacionais discutimos a estratégia conhecida como Divisão e Conquista. Esses são os slides usados em sala.

Abaixo temos os exemplos apresentados em sala de aula:

Merge sort

Referências Adicionais para essa aula:

Introduction to the Design and Analysis of Algorithms - Anany Levitin [Capítulo 5]

Solução de exercícios:

Produto de matrizes

Inversões

Quick sort

Conjunto de pontos mais próximos

Fecho convexo

Maior variação positiva


Sunday, April 16, 2017

Aula 10 de Métodos Computacionais em Economia - Redução e Conquista

Na nossa décima aula de métodos computacionais discutimos a estratégia conhecida como Redução e Conquista. Esses são os slides usados em sala.


Abaixo temos os exemplos apresentados em sala de aula:

Torre de Hanoi

Busca binária

Insertion sort

Ordenação topológica

Permutações

Geração de todos os subconjuntos

Referências Adicionais para essa aula:

Introduction to the Design and Analysis of Algorithms - Anany Levitin [Capítulo 4]

Soluções de exercícios

Movimentos da Torre de Hanoi para gerar todos os subconjuntos

Wednesday, April 5, 2017

Aula 9 de Métodos Computacionais em Economia - Força Bruta III - Busca Exaustiva em Grafos

Na nossa nona aula de métodos computacionais discutimos os algoritmos BFS e DFS que promovem busca exaustiva em grafos e várias de suas aplicações. Esses são os slides usados em sala.


Abaixo temos os exemplos apresentados em sala de aula:

Análise empírica de redes

Como implementar o algoritmo de busca exaustiva em grafos conhecido como breadth first search - BFS (busca em largura)?

Como implementar o algoritmo de busca exaustiva em grafos conhecido como depth first search - DFS (Busca em profundidade)?

Referências Adicionais para essa aula:

Introduction to the Design and Analysis of Algorithms - Anany Levitin [Seção 3.5]

Introduction to Algorithms - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest e Clifford Stein [Capítulo 22]

Referências complementares para essa aula:

Networks: An Introduction - Mark Newman

Soluções de exercícios:

Como implementar BFS e DFS em Python e extrair informações úteis de um grafo, como conectividade, aciclicidade, etc?

Problema das jarras

Aula 8 de Métodos Computacionais em Economia - Força Bruta II - Busca Exaustiva

Na nossa oitava aula de métodos computacionais discutimos vários problemas clássicos usando o método de busca exaustiva. Nessa aula, vimos nosso primeiro problema com sabor de teoria econômico - o chamado problema Marriage-Matching. A solução apresentada foi uma baseada em busca exaustiva. Obviamente, nas próximas aulas iremos aprender estratégias que produzam algoritmos menos custosos. Esses são os slides usados em sala.


Abaixo temos os exemplos apresentados em sala de aula:

Existem bibliotecas prontas em python para gerar permutações e combinações?

Como implementar uma solução computacional para o problema do caixeiro viajante?

Como implementar uma solução computacional para o problema da mochila?

Como implementar uma solução computacional para o problema do casamento (marriage-matching)?

Referências Adicionais para essa aula:

Introduction to the Design and Analysis of Algorithms - Anany Levitin [Seção 3.4]

Referências Complementares:

In Pursuit of the Traveling Salesman: Mathematics at the Limits of Computation -
William J. Cook