quinta-feira, 27 de setembro de 2007

Otimização de Sistemas - Parte 06 - Engenharia de Otimização

Pessoal,

continuamo aqui tratando da nossa série de Otimização. Agora falaremos um pouco de Engenharia de Otimização e especificamente de Simulação.

O que é Engenharia de Otimização?

O homem chegou a limites reais de algum problema em que é possível somente evoluir um pouco mais. Essa evolução é chamada de “otimização”, que em geral passa pela elaboração de algum modelo (em geral matemático) que representa o problema. A partir daí é feita uma análise e a partir de conceitos matemáticos o problema atinge o seu ponto ótimo.

Na maioria dos casos o termo “Engenharia de Otimização” é um subconjunto de uma área que trata de otimização e solução de problemas denominada “Pesquisa Operacional”, mas em todo mundo essas áreas se confundem e às vezes os termos se sobrepõem.

Ao invés de Engenharia de Otimização, o que mais se encontra ainda é “Pesquisa Operacional” porém este termo abrange toda uma área de graduações e pós-graduações que está muito ligada aos meios acadêmicos.

Aplicações práticas da Engenharia da Otimização:

  • Filas: quantos “caixas” seriam necessários para ter uma fila de tamanho médio “X” qualquer?
  • Projeto de Circuitos Elétricos
  • Na engenharia de produção, quais os pontos ótimos de produção?
  • Numa frota de ônibus, que quantidade da mesma frota deve estar circulando de maneira que o passageiro espere no máximo cinco minutos no ponto de ônibus no horário de “rush” à tarde?
  • Qual o menor tempo médio possível de execução de determinado código de uma aplicação qualquer?

A Engenharia de Otimização abrange várias aplicações práticas, porém a base dela é uso de probabilidade e estatística em nível mais avançado (ex: teoria das filas, simulação, Programação Linear / matemática e técnicas específicas da estatística como Cadeias de Markov e outras).

Veja abaixo um exemplo matemático de Programação Linear, cujo objetivo no problema abaixo é achar o "ponto ótimo" do problema com várias equações:



Em vários países, incluindo o Brasil e o próprio EUA, criaram uma cultura de rejeição à matemática estatística (o que é errado). Os conceitos são simples e práticos e podem ser úteis no dia-a-dia. Porém em Países como Coréria do Sul isto está mudando.

A Engenharia de Otimização ajudou em parte a originar o BTO, porque as técnicas matemáticas aplicadas podem ser perfeitamente úteis porque existem sistemas em que é impossível otimizar o código, a não ser que ele passe por um “refinamento matemático”, que em outras palavras é a Engenharia de Otimização.

O que é simulação?

A Simulação é uma técnica que permite imitar o funcionamento de um sistema real.

Os atuais programas de computador permitem construir modelos nos quais é possível visualizar na tela o funcionamento do sistema alvo em estudo. Podemos visualizar o funcionamento de um banco, uma fábrica, um pedágio, um porto, um escritório, etc., como se estivéssemos em uma posição privilegiada em cada um desses cenários. O pessoal de corridas em F-1 fazem muito uso de simulação para saber como o carro (ou partes destes) vão se comportar.

Com um modelo “virtual” é possível testar soluções, prever gargalos e problemas e obter diversas respostas sem a necessidade de testar no “mundo real”. Isto significa baixo custo para "testar", ou melhor, simular.

Podemos usar em Testes de Performance um pouco de teoria de filas para simularmos e calcularmos a carga no sistema. Existem livros e artigos ótimos que tratam disso, porém tratarei deste tema em detalhe na nossa série de otimização mais adiante.

Links úteis de Engenharia de Otimização e Simulação

Pesquisa Operacional - clique Aqui.
Simulação - clique Aqui.
Programação Linear - clique Aqui.
Artigo de Teoria da Filas Aplicada a Performance de Aplicações - clique Aqui.


PS: Não esqueça A nossa série de otimização não acabou, tem muito mais por vir!!!


Fontes

  • MOLINARI, Leonardo. Gerência de Configuração - Técnicas e Práticas no Desenvolvimento do Software, Editora Visual Books, 2007, Florianópolis, 85-7502-210-5.

  • ___________. Gerência de Projetos - Técnicas e Práticas com Ênfase em Web, Editora Érica, 2004, São Paulo, 85-7194-0050.

  • ___________. BTO - Otimização da Tecnologia de Negócio, Editora Érica, 2003, São Paulo, 85-7194-9506.

  • ___________. Testes de Software - Produzindo Sistemas Melhores e Mais Confiáveis, Editora Érica, 2006, 3a Edição, São Paulo, 85-7194-959X.

  • STICKYMINDS. Endereço: http://www.stickyminds.com/. Acesso em julho de 2007.

Um comentário:

Anônimo disse...

Muito boa a série. Na faculdade tive a oportunidade de estudar pesquisa operacional e adorava estudar as redes PERT/CPM rs. Abraços e continue escrevendo livros e artigos ricos como estes.