Search This Blog

Friday, May 11, 2018

Aula 19 de Métodos Computacionais em Economia (2018) - Compromisso entre eficiência temporal e espacial

Na nossa décima nona aula de métodos computacionais discutimos o compromisso entre eficiência temporal e espacial. Esses são os slides usados em sala.

Códigos usados em sala de aula

Ordenação por contagem

Referências para essa aula:

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

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

Aula 18 de Métodos Computacionais em Economia (2018) - Quick sort

Na nossa décima oitava aula de métodos computacionais discutimos o algoritmo conhecido como Quick Sort e como aleatorização pode ser usada para melhorar a complexidade do algoritmo. Esses são os slides usados em sala.


Referências para essa aula:

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

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


Solução de exercícios

Cálculo da mediana com complexidade linear

Aula 17 de Métodos Computacionais em Economia (2018) - Melhoria Iterativa

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


Códigos usados em sala de aula

Marriage Stable Problem

Referências para essa aula:

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

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


Referências complementares

Two-Sided Matching: A Study in Game-Theoretic Modeling and Analysis - Alvin E. Roth e Marilda A. Oliveira Sotomayor

Stable Marriage and Its Relation to Other Combinatorial Problems: An Introduction to the Mathematical Analysis of Algorithms - Donald Ervin Knuth

Soluções

College Problem Admission

Aula 16 de Métodos Computacionais em Economia (2018) - Estratégias Gananciosas

Na nossa décima sexta aula de métodos computacionais discutimos a estratégia conhecida como Gananciosa (ou Gulosa). Esses são os slides usados em sala.

Referências para essa aula:

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

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

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

Soluções da série de exercícios

Algoritmo de Prim para encontrar a MST de um grafo


Algoritmo de Kruskal para encontrar a MST de um grafo


Saturday, April 28, 2018

Aula 15 de Métodos Computacionais em Economia (2018) - Programação Dinâmica

Na nossa décima quinta aula de métodos computacionais discutimos a estratégia conhecida como Programação Dinâmica. Esses são os slides usados em sala.



Códigos usados em sala de aula

Fibonacci com Memoization ou Bottom-Up

Programação dinâmica para resolver o problema da mochila

Programação dinâmica para encontrar os menores caminhos

Referências para essa aula:

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

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

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

Soluções da série de exercícios

Problema do troco [Questão 1]

Justificação de textos usando Programação Dinâmica [Questão 2]

Regressão linear segmentada [Questão 3]

Maximizar a soma do produto dos elementos de uma pilha [Questão 4]

Multiplicação de cadeias de matrizes [Questão 6]


Investimento ótimo [Questão 7 (n)]

Produção ótima [Questão 7 (y)]












Sunday, April 22, 2018

Aula 14 de Métodos Computacionais em Economia (2018) - 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 (2018) - 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