área científica
Informática
idioma(s) de lecionação
Português, Inglês
objectivos
Com esta UC espera-se que os alunos adquiram:
- compreensão dos conceitos básicos associados à modelação e simulação computacional
- capacidade de manipulação das ferramentas e das metodologias indispensáveis à elaboração de projetos de simulação, desde a manipulação dos dados primitivos até à análise dos resultados
- compreensão das fases do ciclo de vida de um projeto de simulação, desde a análise de domínio e especificação do modelo ao teste e validação
- compreensão das várias abordagens e técnicas de simulação
- capacidade de identificar problemas que possam ser tratados através de simulação e de construir o sistema de simulação correspondente
- compreensão dos conceitos básicos da formulação de problemas de optimização
- conhecimento dos tipos de técnicas de optimização mais adequados aos vários tipos de problemas
- capacidade de aplicação prática de optimizadores baseados em programação linear, programação inteira e metaheurísticas para a resolução de problemas.
competências
1. Compreensão dos conceitos associados à modelação e simulação computacional de sistemas e familiarização com as metodologias e fases do ciclo de vida de um projeto de simulação.
2. Capacidade de identificar problemas que possam ser tratados através de simulação e de desenvolver/utilizar diferentes tipos de simulação para a análise de desempenho de sistemas.
3. Compreensão dos conceitos básicos de otimização e conhecimento das técnicas de otimização mais adequadas aos diferentes tipos de problemas.
4. Capacidade de aplicação prática das diferentes técnicas de otimização para a resolução de problemas de otimização.
conteúdos
Introdução à simulação
- Simulação como ferramenta de engenharia
- Modelação e tipos de modelos de simulação.
- Técnicas de simulação: contínuas, discretas e estocásticas
- O ciclo de vida do projeto de simulação
- Linguagens, ferramentas e ambientes de simulação
Simulação e modelação
- Simulação estática
- Simulação em tempo contínuo
- Simulação por eventos discretos
- Variáveis de estado e contadores estatísticos
- Geração de números aleatórios com diferentes distribuições
- Determinação de intervalos de confiança
Introdução à otimização
- Formulação de problemas de otimização
- Algoritmos de otimização exatos e heurísticos
- Soluções ótimas e soluções aproximadas
- Ferramentas de otimização
Métodos de otimização
- Programação linear: definição; método simplex
- Programação linear inteira: definição; método branch and bound
- Meta-heuristicas: hill climbing; variable neighbour search; tabu search; simulated annealing; genetic and memetic algorithms
avaliação
A avaliação será realizada através de 1 (ou 2) exames teóricos e de 2 trabalhos práticos. As componentes teórica e prática terão um peso de 50%, cada uma, na nota final.
requisitos
Esta UC assume que os alunos não têm conhecimentos prévios nem em simulação nem em otimização. Para a componente prática desta UC, é necessário os alunos terem conhecimentos prévios de programação em Python e Matlab.
metodologia
As aulas desta UC têm uma componente de exposição teórica dos conteúdos da disciplina e uma componente de implementação prática dos conhecimentos adquiridos. A avaliação é baseada num 1 exame teórico individual (com peso de 40% na nota final) a realizar na época de exames e em 2 miniprojectos (com peso de 30% cada na nota final) a realizar em grupos de 2 alunos durante o semestre.
bibliografia recomendada
Simulation Modeling Handbook: A Practical Approach, Christopher A. Chung (Ed.) CRC Press: New York, NY., 2004
Discrete-Event System Simulation, Jerry Banks, at al., Prentice Hall: Upper Saddle River, NJ., 2005
Principles of Modeling and Simulation: A Multidisciplinary Approach, John A. Sokolowski (Editor), Catherine M. Banks (Editor) John Wiley & Sons, 2009
Introduction to Mathematical Programming (4th edition), Russell C. Walker, Pearson Learning Solutions, 2012, ISBN-13: 978-1256944683
Essentials of Metaheuristics (Second Edition), Sean Luke, Lulu, 2013, ISBN-13: 978-1300549628