Sunteți pe pagina 1din 225

Manual do Usurio

Evolver
Solver de Algoritmo Gentico para o Microsoft Excel
Verso 5.7 setembro, 2010

Palisade Corporation 798 Cascadilla St. Ithaca, NY 14850 EUA + 1-607-277-8000 + 1-607-277-8001 (fax) http://www.palisade.com (website) sales@palisade.com (e-mail)

Direitos autorais
Copyright 2010, Palisade Corporation.

Reconhecimento de marcas comerciais


Microsoft, Excel e Windows so marcas registradas da Microsoft Corporation. IBM marca registrada da International Business Machines, Inc. Palisade, Evolver, TopRank, BestFit e RISKview so marcas registradas da Palisade Corporation. RISK marca comercial da Parker Brothers, diviso da Tonka Corporation, e usada sob licena.

ndice
Captulo 1: Introduo 1

Introduo ...........................................................................................3 Instrues de instalao....................................................................7 Captulo 2: Noes Gerais 11

O que o Evolver? ...........................................................................13 Captulo 3: Evolver: Passo a Passo 21

Introduo .........................................................................................23 Tour do Evolver ................................................................................25 Captulo 4: Exemplos de Aplicaes 45

Introduo .........................................................................................47 Seleo de publicidade ....................................................................49 Ordenao alfabtica .......................................................................51 Distribuio de tarefas .....................................................................53 Padaria ...............................................................................................55 Distribuio oramentria ...............................................................57 Equilbrio qumico ............................................................................59 Programador de horrios de aulas .................................................61 Segmentador de cdigo...................................................................65 Dakota: definio de rotas com restries ....................................69 Programador de tarefas de oficina .................................................73 Localizao de torres de rdio ........................................................75 Balanceamento de portflio ............................................................77 Mix de portflio .................................................................................81

ndice

Estaes de energia......................................................................... 83 Compras............................................................................................ 85 Problema de vendedor..................................................................... 87 Navegador espacial.......................................................................... 89 Negociante ........................................................................................ 91 Transformador.................................................................................. 93 Transporte......................................................................................... 95 Captulo 5: Guia de Referncia do Evolver 97

Comando Definio do modelo ...................................................... 99 Comando Configuraes de otimizao...................................... 123 Comando Iniciar otimizao ......................................................... 129 Comandos Utilidades..................................................................... 131 Observador do Evolver.................................................................. 135 Captulo 6: Otimizao 147

Mtodos de otimizao.................................................................. 149 Solver do Excel............................................................................... 155 Tipos de problemas ....................................................................... 159 Captulo 7: Algoritmos Genticos 163

Introduo....................................................................................... 165 Histria ............................................................................................ 167 Exemplo na biologia ...................................................................... 171 Exemplo digital............................................................................... 173 Captulo 8: Recursos Adicionais do Evolver 177

Como inserir restries................................................................. 179 Como aumentar a velocidade ....................................................... 189 Como o Evolver efetua a otimizao............................................ 191 Anexo A: Automatizao do Evolver Anexo B: Perguntas e Respostas 195 197

Perguntas e Respostas ................................................................. 197

ii

Anexo C: Recursos Adicionais

201

Recursos adicionais de aprendizagem ........................................201 Glossrio ndice remissivo 207 215

ndice

iii

iv

Captulo 1: Introduo
Introduo ...........................................................................................3 Antes de comear......................................................................................3 O que est includo no pacote................................................................3 Sobre esta verso ......................................................................................3 Funcionamento com o seu ambiente operacional ..............................4 Se necessitar de ajuda..............................................................................4 Antes de nos contatar ....................................................................4 Requisitos de sistema do Evolver .........................................................6 Instrues de instalao....................................................................7 Instrues gerais de instalao ..............................................................7 Remoo do Evolver do computador..........................................7 DecisionTools Suite.................................................................................8 Instalao de cones ou atalhos do Evolver .........................................8 Mensagem de advertncia sobre segurana de macros ao iniciar ......................................................................................................9 Mais informaes sobre o Evolver ......................................................10 Arquivo LeiaMe do Evolver .......................................................10 Tutorial do Evolver ......................................................................10 Como aprender a usar o Evolver .........................................................10

Captulo 1: Introduo

Introduo
O Evolver o otimizador baseado em algoritmos genticos mais avanado e veloz disponvel no mercado at hoje. Por meio da aplicao de tcnicas avanadas de otimizao base de algoritmos genticos, o Evolver fornece as melhores solues de problemas que so insolveis para os otimizadores lineares e no-lineares padro. O Evolver est disponvel em duas verses profissional e industrial para que voc possa escolher o otimizador mais adequado para as suas necessidades. Este Manual do Usurio do Evolver apresenta uma introduo ao Evolver e aos princpios nos quais baseado, alm de vrios exemplos de como aplicar a tecnologia de algoritmo gentico exclusiva do Evolver. Este manual completo tambm pode ser usado como guia de referncia, pois totalmente indexado e contm descries e ilustraes de todos os recursos do Evolver.

Antes de comear
Antes de instalar o Evolver e comear a us-lo, confira se a embalagem do produto contm todos os itens necessrios, e se o seu computador atende os requisitos mnimos para usar o software sem problemas.

O que est includo no pacote


O Evolver pode ser adquirido individualmente ou com a verso Profissional ou Industrial do DecisionTools Suite. O CD-ROM do Evolver contm o add-in (suplemento) Evolver para o Excel, vrios exemplos para o Evolver e um sistema de ajuda eletrnica totalmente indexado. As verses Professional e Industrial do DecisionTools Suite contm todos os componentes mencionados acima, alm de aplicaes adicionais.

Sobre esta verso


Esta verso do Evolver pode ser instalada como programa de 32 bits para o Microsoft Excel 2000 ou verso mais recente.

Captulo 1: Introduo

Funcionamento com o seu ambiente operacional


Este Manual do Usurio pressupe que o usurio saiba, de modo geral, usar o sistema operacional Windows e o Excel. Especificamente: O usurio sabe usar o computador e o mouse. O usurio conhece termos como: cones, clique, duplo-clique ou clicar duas vezes, menu, janela, comando, objeto. O usurio tem uma compreenso de conceitos bsicos como: estrutura de diretrios, atribuio de nomes a arquivos.

Se necessitar de ajuda
Fornecemos suporte tcnico gratuito a todos os usurios registrados do Evolver com plano de manuteno vigente; tambm oferecemos suporte tcnico mediante pagamento por incidente individual. Para ter certeza de estar registrado como usurio do Evolver, faa seu registro online, no site http://www.palisade.com/support/register.asp. Ao nos contatar por telefone, tenha mo o nmero de srie do seu produto e o Manual do Usurio. Podemos prestar melhor suporte tcnico se voc estiver em frente ao seu computador, pronto para trabalhar.
Antes de nos contatar

Antes de contatar o suporte tcnico, confira o seguinte: Voc consultou a Ajuda online? Voc consultou este Manual do Usurio e assistiu ao tutorial multimdia online? Voc leu o arquivo LEIAME.WRI? Ele contm informaes atualizadas sobre o Evolver, que podem no estar includas no manual. O problema que est ocorrendo pode ser reproduzido sempre da mesma forma? possvel reproduzir o problema em outro computador, ou outro modelo de computador? Voc consultou nosso site na internet? O endereo : http://www.palisade.com. O site tambm contm respostas a perguntas frequentes recentes (FAQ, na forma de um banco de dados pesquisvel de perguntas com as respostas do suporte tcnico, assim como patches para o Evolver, na seo Suporte Tcnico. Recomendamos acessar nosso site regularmente para ver as ltimas informaes sobre o Evolver e outros programas da Palisade.

Introduo

Como contatar a Palisade

A Palisade Corporation recebe com satisfao perguntas, comentrios e sugestes relacionadas ao Evolver. Entre em contato com a nossa equipe de suporte tcnico pelos seguintes meios: E-mail: support@palisade.com Telefone: +1-607-277-8000, dias teis, das 9h s 17h (horrio de Nova York). Siga as instrues telefnicas para ser conectado ao suporte tcnico. Fax: +1-607-277-8001. Correspondncia: Technical Support Palisade Corporation 798 Cascadilla St. Ithaca, NY 14850 EUA

Se quiser contatar a Palisade Europe: E-mail: support@palisade-europe.com. Telefone: +44 1895425050 (RU). Fax:: +44 1895425051 (RU). Correspondncia: Palisade Europe 31 The Green West Drayton Middlesex UB7 7PN Reino UnidoPara contatar a Palisade Asia-Pacific: E-mail: support@palisade-europe.com. Telefone: +61 2 9252 5922 (Austrlia). Fax: +61 2 9252 2820 (Austrlia). Correspondncia: Palisade Asia-Pacific Pty Limited Suite 404, Level 4 20 Loftus Street Sydney NSW 2000 Austrlia Ao nos contatar, pedimos que sempre inclua o nome do produto, a verso e o nmero de srie. O nmero exato da verso pode ser encontrado no comando Sobre, da Ajuda, no menu do Evolver no Excel.

Captulo 1: Introduo

Verso Student

No oferecemos suporte tcnico para a verso de estudante do Evolver. Se necessitar de ajuda, recomendamos as seguintes alternativas: Consulte o um professor ou colega Acesse http://www.palisade.com e veja as respostas s perguntas mais comuns. Contate nosso departamento de suporte tcnico por e-mail ou fax.

Requisitos de sistema do Evolver


Os requisitos de sistema do Evolver incluem: Pentium PC ou processador mais veloz, com disco rgido. Microsoft Windows 2000 SP4 ou verso superior. Microsoft Excel 2000 ou verso superior.

Introduo

Instrues de instalao
O Evolver um suplemento (add-in) para o Microsoft Excel. O Evolver acrescenta comandos adicionais s barras de menu do Excel, otimizando a funcionalidade desse programa de planilha eletrnica.

Instrues gerais de instalao


O programa de instalao copia os arquivos de sistema do Evolver no diretrio do disco rgido que voc especifica. Para executar o programa de instalao no Windows 2000 ou verso superior: Insira o CD-ROM do Evolver ou do DecisionTools Suite Professional ou Industrial na unidade de CD-ROM do seu computador Clique no boto Iniciar; em seguida, clique em Configuraes, e em Painel de Controle Clique duas vezes no cone Adicionar/Remover Programas Na guia Instalar/Desinstalar, clique no boto Instalar Siga as instrues do programa de instalao apresentadas na tela Se tiver algum problema durante a instalao do Evolver, verifique se a unidade de disco na qual a instalao est sendo feita tem espao suficiente. Aps liberar espao suficiente, tente executar a instalao novamente.
Remoo do Evolver do computador

Se quiser remover o Evolver (e as verses do Evolver ou do DecisionTools Suite Profissional ou Industrial) do seu computador, use o utilitrio Adicionar/Remover Programas, no Painel de Controle, e selecione o item correspondente ao @RISK ou ao DecisionTools Suite.

Captulo 1: Introduo

DecisionTools Suite
O Evolver pode ser usado com o DecisionTools Suite, um conjunto de produtos para anlise de risco e decises que pode ser adquirido da Palisade Corporation. O procedimento padro de instalao do Evolver coloca o programa em um subdiretrio do diretrio principal Arquivos de Programas\Palisade. Isso semelhante ao que ocorre com o Excel, que geralmente instalado em um subdiretrio do diretrio principal do Microsoft Office. Um dos subdiretrios de Arquivos de Programas\Palisade ser o diretrio do Evolver (por padro, denominado Evolver5). Este diretrio contm o arquivo do suplemento Evolver (EVOLVER.XLA), alm de exemplos de modelos e outros arquivos necessrios para executar o Evolver. Um outro subdiretrio de Arquivos de Programas\Palisade o diretrio SISTEMA (ou SYSTEM), que contm os arquivos necessrios para cada programa do DecisionTools Suite, inclusive as bibliotecas dos programas e arquivos de ajuda comuns.

Instalao de cones ou atalhos do Evolver


No Windows, o programa de instalao cria automaticamente um comando do Evolver no menu Programas da barra de tarefas. Contudo, se houver algum problema durante a instalao, ou se quiser fazer isso manualmente em outra ocasio, siga estas instrues; 1) Clique no boto Iniciar e, em seguida, aponte para Configuraes. 2) Clique na barra de tarefas e, em seguida, na guia de programas do menu Iniciar. 3) Clique em Adicionar e, em seguida, em Procurar. 4) Localize o arquivo EVOLVER.EXE e clique duas vezes nele. 5) Clique em Avanar e, em seguida, clique duas vezes no menu em que deseja apresentar o programa. 6) Digite o nome Evolver e, em seguida, em Concluir.

Instrues de instalao

Mensagem de advertncia sobre segurana de macros ao iniciar


O Microsoft Office permite definir vrias configuraes de segurana para impedir que macros nocivas ou indesejveis sejam executadas nos aplicativos do Office. Uma mensagem de advertncia aparece sempre que se tentar carregar um arquivo que contm macros, a menos que se tenha definido o nvel de segurana como mnimo. Para que essa mensagem no aparea toda vez que se executar o add-in, a Palisade inseriu assinaturas digitais nos arquivos do add-in. Assim, aps o usurio especificar Palisade Corporation como fonte confivel, todos os add-ins da Palisade podero ser abertos sem que sejam apresentadas mensagens de advertncia. Para fazer isso: Ao iniciar o Evolver, se aparecer uma caixa de dilogo de Aviso de Segurana (semelhante mostrada abaixo), clique em Confiar em todos os documentos deste editor.

Captulo 1: Introduo

Mais informaes sobre o Evolver


Mais informaes sobre o Evolver podem ser encontradas nas seguintes fontes:
Arquivo LeiaMe do Evolver

Este arquivo contm um resumo conciso do Evolver, alm de informaes atualizadas e ltimas notcias sobre a verso mais recente do software. Para visualizar o arquivo LeiaMe selecione, no Windows, o menu Iniciar / Programas / Palisade DecisionTools/ LeiaMe e, em seguida, clique em Evolver 5.0 LeiaMe. Sugerimos ler o arquivo antes de usar o Evolver. Tutorial do Evolver O tutorial online do Evolver apresenta uma introduo rpida do Evolver e dos algoritmos genticos a usurios principiantes. O tutorial leva apenas alguns minutos para ser assistido. Para saber como acessar o tutorial, consulte a seo Como aprender a usar o Evolver, a seguir.

Tutorial do Evolver

Como aprender a usar o Evolver


A maneira mais rpida de aprender a usar o Evolver com o tutorial online, em formato de filme, no qual especialistas apresentam modelos e exemplos passo a passo explicando como usar o programa. O tutorial uma apresentao multimdia sobre os principais recursos do Evolver. O tutorial pode ser executado selecionando-se o comando Tutorial Primeiros Passos, do menu Ajuda do Evolver.

10

Instrues de instalao

Captulo 2: Noes Gerais


O que o Evolver? ...........................................................................13 Como o Evolver funciona?....................................................................14 Algoritmos genticos...................................................................14 O que o otimizao?............................................................................15 Por que criar modelos no Excel? ..........................................................16 Por que usar o Evolver?.........................................................................17 No mais necessrio adivinhar ...............................................17 Mais flexibilidade ........................................................................18 Maior capacidade .........................................................................18 Custo-benefcio.............................................................................19

Captulo 2: Noes Gerais

11

12

O que o Evolver?
O pacote de software Evolver fornece ao usurio uma maneira fcil de encontrar a melhor soluo para praticamente qualquer tipo de problema. Em poucas palavras: o Evolver encontra os melhores inputs (entradas de dados) para produzir o output (resultado) desejado. Pode-se usar o Evolver para encontrar a combinao, a ordem ou o agrupamento correto de variveis que produzem o maior lucro, o menor risco ou o maior nmero de mercadorias com a menor quantidade de materiais. Geralmente, o Evolver usado como suplemento (add-in) do programa de planilha eletrnica Microsoft Excel; o usurio configura um modelo do seu problema no Excel e, em seguida, chama o Evolver para solucion-lo.

necessrio primeiro criar um modelo do problema no Excel e, em seguida, descrev-lo para o add-in Evolver.

O Excel fornece todas as frmulas, funes, recursos grficos e macros que a maioria dos usurios necessita para criar modelos realsticos de seus problemas. O Evolver fornece a interface para descrever a incerteza do modelo e o que o usurio quer encontrar, e fornece os mecanismos para faz-lo. Juntos, eles possibilitam encontrar as melhores solues para praticamente qualquer problema que possa ser modelado.

Captulo 2: Noes Gerais

13

Como o Evolver funciona?


Algoritmos genticos

O Evolver usa um conjunto proprietrio de algoritmos genticos para procurar solues timas para determinado problema, em conjunto com distribuies de probabilidade e simulaes que levam em conta a incerteza presente no modelo. Os algoritmos genticos do Evolver so usados para encontrar a melhor soluo possvel para o modelo especfico. Algoritmos genticos funcionam como os princpios darwinianos de seleo natural, criando um ambiente em que centenas de solues possveis para um problema competem entre sim, e apenas a mais apta sobrevive. Da mesma forma que na evoluo biolgica, cada soluo pode transmitir seus bons genes a solues descendentes, a fim de que toda a populao de solues continue a evoluir no sentido de criar melhores solues. Como voc j deve ter notado, a terminologia usada ao se trabalhar com algoritmos genticos muito semelhante usada no campo que inspirou essa tecnologia. Falamos sobre como funes de crossover ajudam a concentrar a busca de solues, como as taxas de mutao ajudam a diversificar o pool gentico, e como avaliamos toda a populao de solues ou organismos. Para saber mais sobre como os algoritmos genticos do Evolver funcionam, consulte o Captulo 7 Algoritmos Genticos.

14

O que o Evolver?

O que o otimizao?
Otimizao o processo de tentar encontrar a melhor soluo possvel para um problema especfico que pode ter muitas solues. A maioria dos problemas envolve muitas variveis que interagem de acordo com determinadas frmulas e restries. Por exemplo, uma empresa pode ter trs fbricas que fabricam diferentes quantidades de diversos produtos. Dado o custo de produo de cada produto para cada fbrica, o custo de remessa a cada loja e as limitaes de cada fbrica, qual seria a melhor maneira de atender adequadamente a demanda das lojas locais e, ao mesmo tempo, minimizar os custos de transporte? As ferramentas de otimizao so projetadas para responder esse tipo de pergunta.

Frequentemente, o objetivo da otimizao encontrar a combinao que rende o mximo dados determinados recursos.

No exemplo acima, cada soluo proposta apresentaria uma lista completa de quais mercadorias especficas, produzidas por quais fbricas especficas, devem ser transportadas por qual caminho para qual loja de varejo. Outros exemplos de problemas de otimizao so relacionados a como produzir o maior lucro, o menor custo, salvar o maior nmero de vidas, produzir a menor quantidade de rudo em um circuito, encontrar a rota mais curta entre vrias cidades ou a mescla mais eficaz de veculos publicitrios. Outro tipo importante de problema de otimizao diz respeito programao de horrios ou agendamento de pessoal com o objetivo de maximizar a eficincia durante cada turno ou minimizar conflitos de agendamento entre reunies de grupos em diferentes horrios. Para saber mais sobre otimizao, consulte o Captulo 6 Otimizao.

Captulo 2: Noes Gerais

15

Por que criar modelos no Excel?


Para aumentar a eficincia de qualquer sistema, necessrio, primeiro, entender como ele funciona. para isso que construmos um modelo funcional do sistema. Modelos so abstraes necessrias para estudar sistemas complexos; contudo, para que os resultados sejam aplicveis ao mundo real, no podemos simplificar excessivamente as relaes de causa e efeito entre as variveis do modelo. Softwares e computadores cada vez mais avanados possibilitam que economistas construam modelos mais realsticos da economia, que cientistas melhorem as previses de reaes qumicas, e que executivos aumentem a sensibilidade de seus modelos empresariais. Nos ltimos anos, equipamentos de informtica e programas como o Microsoft Excel avanaram tanto que hoje praticamente qualquer pessoa com um computador pode criar modelos realsticos de sistemas complexos. As funes integradas no Excel, os recursos de macros e a interface intuitiva e agilizada permitem que at mesmo usurios principiantes modelem e analisem problemas sofisticados. Para saber mais sobre como construir um modelo, consulte o Captulo 8 Recursos Adicionais do Evolver.

16

O que o Evolver?

Por que usar o Evolver?


Com a tecnologia exclusiva do Evolver, qualquer pessoa que tenha um computador e o Excel para Windows pode aproveitar os benefcios da otimizao. Antes do Evolver, existiam trs alternativas para quem quisesse aumentar a eficincia ou encontrar solues otimizadas: adivinhar, usar um software de baixa capacidade para solucionar os problemas ou contratar consultores especializados em otimizao para criar e programar um software personalizado. A seguir, apresentamos algumas das principais vantagens de se usar o Evolver:
No mais necessrio adivinhar

Ao se lidar com um grande nmero de variveis que interagem entre si, na tentativa de encontrar a melhor combinao, ordem e grupo dessas variveis, pode ser tentador simplesmente dar um bom chute. Um nmero surpreendente de pessoas pressupes que qualquer tipo de modelagem e anlise que v alm do chute ou adivinhao requer programao complicada, estatsticas ou algoritmos matemticos complexos. Uma boa soluo otimizada pode economizar milhes de reais, milhares de litros de combustvel, meses de trabalho perdido etc. Agora que computadores de alta capacidade esto disponveis a preos cada vez mais acessveis, e que existem softwares como o Excel e o Evolver facilmente disposio, no h motivo para adivinhar as solues ou perder tempo precioso experimentando manualmente inmeros cenrios. O Evolver possibilita usar toda a gama de frmulas do Excel, e at mesmo macros, para construir modelos mais realsticos de qualquer sistema. Com o Evolver, no necessrio comprometer a exatido do modelo devido capacidade insuficiente do algoritmo de lidar com as complexidades do mundo real. Os Solvers bsicos convencionais (ferramentas de programao lineares e estatsticas) foram o usurio a fazer pressuposies sobre como as variveis do problema interagem, obrigando-os a construir modelos super-simplificados e irrealsticos dos problemas. Depois de simplificar um sistema o suficiente para poder us-lo em um solver desse tipo, a soluo resultante em geral abstrata demais para poder ser colocada em prtica. Nenhum problema que envolva um grande nmero de variveis, funes no-lineares, tabelas de referncia, condies hipotticas (If... Then), consultas a bancos de dados ou elementos estocsticos (aleatrios) pode ser solucionado por esses mtodos, no importa o quanto se simplifique o modelo.

Maior exatido, maior significncia

Captulo 2: Noes Gerais

17

Mais flexibilidade

Existem muitos algoritmos de resoluo que funcionam bem para solucionar problemas lineares e no-lineares simples e de pequeno porte, inclusive algoritmos hill-climbing, baby-solvers e outros mtodos matemticos. Mesmo quando disponveis como suplementos (addins) de planilhas eletrnicas, essas ferramentas de otimizao para uso geral s efetuam a otimizao numrica. Para problemas mais complexos ou de grande porte, s vezes possvel programar algoritmos personalizados especficos e obter bons resultados, mas isso exige muita pesquisa e desenvolvimento. Mesmo assim, o programa resultante necessitaria ser modificado cada vez que houvesse alguma mudana no modelo. O Evolver, alm de ter capacidade para lidar com problemas numricos, o nico programa venda no mundo inteiro que soluciona a maioria dos problemas combinatrios. Referimo-nos aos tipos de problemas em que as variveis precisam ser embaralhadas (permutadas) ou combinadas entre si. Por exemplo, escolher a ordem de entrada em campo dos jogadores de um time de beisebol pode ser um problema combinatrio; trata-se de mudar as posies dos jogadores na lista de entrada. Problemas mais complexos de agendamento tambm so problemas combinatrios. Um mesmo software o Evolver pode solucionar todos esses tipos de problemas e muitos outros que outras ferramentas tipo solver no conseguem solucionar. A tecnologia exclusiva de algoritmo gentico do Evolver possibilita que ele otimize praticamente qualquer tipo de modelo, de qualquer porte e complexidade.

Maior capacidade

O Evolver encontra melhores solues. A maioria dos softwares emprega uma derivao matemtica e sistemtica para chegar a solues otimizadas. Frequentemente, esses mtodos se limitam a pegar uma soluo existente e procurar a resposta mais prxima que seja melhor. Essa soluo local obtida pode estar muito longe de ser a melhor soluo. O Evolver, por outro lado, coleta amostras de modo inteligente, de todo o universo de possibilidades, produzindo uma soluo global muito melhor.

18

O que o Evolver?

Mais fcil de usar

Apesar de todas as vantagens que o Evolver oferece em termos de capacidade e flexibilidade, ele um programa fcil de usar, porque absolutamente desnecessrio entender as tcnicas complexas de algoritmo gentico em que ele se baseia. Para o Evolver, os elementos bsicos do problema no so importantes; ele s precisa de um modelo em planilha eletrnica para poder avaliar os diversos cenrios. Voc s precisa selecionar as clulas da planilha que contm as variveis e informar ao Evolver o que est procurando. O Evolver inteligentemente oculta a tecnologia difcil subjacente e automatiza o processo de variaes hipotticas (what-if) na anlise do problema. Embora muitos programas comerciais tenham sido desenvolvidos para programao matemtica e construo de modelos, os programas de planilhas eletrnicas ainda so, sem dvida, os preferidos dos usurios, e milhes desses programas so vendidos todos os meses. Com um formato intuitivo de linhas e colunas, as planilhas eletrnicas so mais fceis de configurar e manter do que outros pacotes especializados. Elas tambm so mais compatveis com outros programas, como processadores de texto e bancos de dados, e oferecem um maior nmero de frmulas predefinidas, opes de formatao, recursos para elaborao de grficos e macros do que qualquer outro pacote autnomo. Como o Evolver um suplemento ou add-in para o Microsoft Excel, o usurio tem acesso gama completa de funes e ferramentas de desenvolvimento deste, o que lhe permite construir facilmente modelos mais realsticos do seu sistema.

Custo-benefcio

Muitas empresas contratam consultores treinados para criar sistemas de otimizao personalizados. Esses sistemas geralmente funcionam bem, mas requerem muitos meses de trabalho e investimento para serem desenvolvidos e implantados. Esses sistemas tambm so difceis de aprender e, portanto, incorrem custos de treinamento e manuteno constantes. Se o sistema precisar ser alterado, poder ser necessrio desenvolver um algoritmo totalmente novo para encontrar as solues timas. Com um investimento consideravelmente menor, o Evolver fornece os algoritmos genticos mais possantes disponveis, e possibilita obter solues rpidas e exatas para uma grande variedade de problemas. Como ele funciona em um ambiente intuitivo e j conhecido, no h necessidade de treinamento e manuteno dispendiosos. A capacidade de otimizao do Evolver pode at ser acrescentada aos programas personalizados do prprio usurio. Em apenas alguns dias, voc pode usar o Visual Basic para desenvolver o seu prprio sistema de agendamento, distribuio, produo ou gerenciamento

Captulo 2: Noes Gerais

19

financeiro. Veja mais detalhes de como desenvolver aplicativos baseados no Evolver no Kit de Desenvolvedor.

20

O que o Evolver?

Captulo 3: Evolver: Passo a Passo


Introduo .........................................................................................23 Tour do Evolver ................................................................................25 Como iniciar o Evolver..........................................................................25 Barra de ferramentas do Evolver ...............................................25 Como abrir um exemplo de modelo .........................................25 Caixa de dilogo Modelo do Evolver..................................................26 Seleo da clula-alvo ...........................................................................27 Como especificar os intervalos de clulas ajustveis ......................28 Restries.................................................................................................31 Intervalo de valores simples e restries de frmulas ..........32 Outras opes do Evolver .....................................................................35 Condies de parada....................................................................35 Opes de exibio.......................................................................36 Execuo da otimizao.........................................................................38

Captulo 3: Evolver: Passo a Passo

21

22

Introduo
Neste captulo, vamos gui-lo passo a passo por todo o processo de otimizao do Evolver. Se o Evolver ainda no est instalado no seu disco rgido, consulte a seo referente instalao, no Captulo 1: Introduo, e instale o Evolver antes de comear este tutorial. Vamos comear abrindo um modelo de planilha eletrnica predefinido; em seguida, vamos definir o problema para o Evolver usando distribuies de probabilidade e as caixas de dilogo do Evolver. Finalmente, vamos ver todo o processo de busca de solues do Evolver e explorar algumas das vrias opes fornecidas pelo Observador do Evolver. Para obter mais informaes sobre um tpico especfico, veja o ndice remissivo no final deste manual ou consulte o Captulo 5: Referncia do Evolver. NOTA: As telas a seguir so baseadas no Excel 2007. Se forem usadas outras verses do Excel, as janelas podero ser um pouco diferentes das que apresentamos aqui. O processo de soluo de problemas comea com um modelo que representa com exatido o problema que voc quer resolver. necessrio que o modelo possa avaliar uma srie especfica de valores de input (clulas ajustveis) e produzir uma classificao numrica de como esse inputs solucionaram o problema (funo de avaliao ou aptido, referida como funo objetivo). medida que o Evolver procura as solues, a funo de aptido ou funo objetivo fornece feedback, informando o Evolver sobre o grau de adequao de cada soluo, a fim de possibilitar que ele chegue gradualmente a melhores solues. Ao criar um modelo do seu problema, necessrio prestar muita ateno funo objetivo, porque o Evolver far tudo que for possvel para maximizar (ou minimizar) essa clula.

Captulo 3: Evolver: Passo a Passo

23

24

Tour do Evolver
Como iniciar o Evolver
Para iniciar o Evolver faa o seguinte: 1) clique no cone do Evolver na rea de trabalho do Windows; ou 2) selecione Palisade DecisionTools e, em seguida, Evolver 5.0 na lista de programas do menu Iniciar do Windows. Esses dois mtodos iniciam o Microsoft Excel e o Evolver.
Barra de ferramentas do Evolver

Quando o Evolver carregado, uma nova barra de ferramentas aparece no Excel. Essa barra de ferramentas contm botes que podem ser usados para definir configuraes do Evolver e iniciar, pausar e parar otimizaes.

Como abrir um exemplo de modelo

Para conhecer os recursos do Evolver, vamos examinar um exemplo de modelo que foi instalado durante a instalao do Evolver. Para fazer isso: 1) Abra a planilha PadariaTutorialpassoapasso.XLS, usando o comando Planilhas exemplo, no menu Ajuda.

Captulo 3: Evolver: Passo a Passo

25

Esta planilha de exemplo contm um problema simples de maximizao de lucros para uma padaria. A padaria produz 6 tipos de pes. Suponhamos que voc o gerente da padaria, encarregado de controlar a renda, os custos e os lucros da produo. Voc precisa determinar o nmero de caixas de cada tipo de po que maximizar o lucro total, sem deixar de atender as diretrizes de limites de produo. As diretrizes a serem obedecidas so: 1) cumprir a quota de produo de pes de baixo teor calrico; 2) manter uma relao aceitvel fibra/caloria; 3) manter uma relao aceitvel entre pes de 5 gros e baixo teor calrico; e 4) manter o ciclo de produo dentro dos limites de horas de mo-de-obra.

Caixa de dilogo Modelo do Evolver


Para definir as opes do Evolver para a planilha em questo, faa o seguinte: 1) Clique no cone Modelo do Evolver, na barra de ferramentas do Evolver (na extrema esquerda). Isso abre a caixa de dilogo Modelo do Evolver, mostrada a seguir:

A caixa de dilogo Modelo do Evolver foi criada para que o usurio possa descrever o problema especfico de forma simples e direta. No exemplo do tutorial fornecido, estamos tentando encontrar o nmero de caixas de cada tipo de po que devem ser produzidas para maximizar o lucro total.

26

Tour do Evolver

Seleo da clula-alvo
O lucro total do modelo do exemplo o que chamamos de clulaalvo. Esta a clula cujo valor voc est tentando minimizar ou maximizar, ou a clula cujo valor voc est tentando aproximar o mximo possvel de um valor predefinido. Para especificar a clula-alvo 1) Defina a opo Objetivo da otimizao como Mximo. 2) No campo Clula, digite $I$11, que a clula-alvo. As referncias de clulas podem ser inseridas nos campos de dilogos do Evolver de duas formas: 1) voc pode clicar no campo com o cursor e digitar a referncia diretamente no campo; ou 2) com o cursor no campo selecionado, voc pode clicar no cone de entrada de referncia e selecionar diretamente a clula ou clulas da planilha com o mouse.

Captulo 3: Evolver: Passo a Passo

27

Como especificar os intervalos de clulas ajustveis


Agora necessrio especificar o local das clulas que contm valores que o Evolver pode ajustar para procurar solues. Essas variveis so acrescentadas e editadas um bloco por vez na seo Intervalos de clulas ajustveis da caixa de dilogo Modelo. O nmero de clulas que se pode inserir nos intervalos de clulas ajustveis depende da verso do Evolver que est sendo usada. 1) Clique no boto Adicionar, na seo Intervalos de clulas ajustveis. 2) Selecione $C$4:$G$4 como as clulas do Excel que deseja especificar como intervalo de clulas ajustveis.
Definio de mnimo e mximo do intervalo de clulas ajustveis

Na maioria das vezes, convm restringir os valores possveis para o intervalo de clulas ajustveis a um intervalo especfico, com valor mnimo e valor mximo. No Evolver, nos referimos a isso como uma restrio de intervalo. Os valores mnimo e mximo do intervalo podem ser inseridos rapidamente selecionando-se o conjunto de clulas a serem ajustadas. No caso da Padaria, por exemplo, o valor mnimo possvel de caixas produzidas de cada tipo de po neste intervalo 0 e o mximo 100.000. Para definir essa restrio de intervalo: 1) Digite 0 na clula Mnimo e 100.000 na clula Mximo. 2) Na lista suspensa da clula Valores, selecione Inteiro.

28

Tour do Evolver

Agora, insira um segundo intervalo de clulas a ser ajustado: 1) Clique em Adicionar para inserir o segundo intervalo de clulas. 2) Selecione a clula B4. 3) Insira 20.000 como Mnimo e 100.000 como Mximo.

Isso especifica a ltima clula ajustvel, B4, correspondente ao nvel de produo de po de baixo valor calrico. Se houvesse mais alguma varivel neste problema, continuaramos a acrescentar intervalos de clulas ajustveis. No Evolver, pode-se criar um nmero ilimitado de grupos de clulas ajustveis. Para acrescentar mais clulas, clique outra vez no boto Adicionar. Pode ser que mais tarde voc queira conferir as clulas ajustveis ou mudar alguma definio. Para fazer isso, s editar o intervalo de mnimo-mximo na tabela. Voc tambm pode selecionar um conjunto de clulas e apag-lo, clicando no boto Excluir.

Captulo 3: Evolver: Passo a Passo

29

Seleo do mtodo de soluo

Ao definir clulas ajustveis, voc pode especificar o mtodo de soluo a ser usado. Diversos tipos de clulas ajustveis podem ser processados usando diferentes mtodos de soluo. O mtodo de soluo definido para um grupo especfico de clulas ajustveis, e alterado clicando-se no boto Grupo, que abre a caixa de dilogo Configuraes de grupos de clulas ajustveis. Muitas vezes, usado o mtodo de soluo receita, em que o valor de cada clula pode ser alterado independentemente dos valores das outras. Como este o mtodo de soluo padro, no h necessidade de mud-lo.

Os mtodos de soluo receita e ordem so os mais usados; eles tambm podem ser usados juntos para solucionar problemas combinatrios complexos. Mais especificamente, o mtodo de soluo receita trata cada varivel como um dos ingredientes de uma receita e tenta encontrar a melhor combinao de ingredientes mudando o valor de cada varivel independentemente. O mtodo de soluo ordem, por sua vez, troca os valores das variveis, embaralhando os valores originais at encontrar a melhor ordem. Neste modelo, deixe o mtodo de soluo como Receita e simplesmente faa o seguinte: No campo Descrio, use o rtulo Caixas produzidas.

30

Tour do Evolver

Restries
O Evolver permite definir restries, que so condies que precisam ser satisfeitas para que a soluo seja vlida. No modelo do exemplo, h trs restries adicionais que precisam ser atendidas para que o possvel conjunto de nveis de produo de cada tipo de po seja vlido. Essas condies so adicionais, em relao s restries de intervalo que j foram definidas para as clulas ajustveis. Elas so as seguintes: 1) Manter uma relao aceitvel entre po com alto teor de fibra e po com baixo teor calrico (o nmero de caixas de po com alto teor de fibra produzido deve ser > = 1,5* em relao ao nmero de caixas de po de baixo teor calrico). 2) Manter uma relao aceitvel entre po de 5 gros e po com baixo teor calrico (o nmero de caixas de po 5 gros produzido deve ser > = 1,5* em relao ao nmero de caixas de po de baixo teor calrico). 3) Manter o ciclo de produo dentro dos limites de horas de mode-obra (o total de horas de mo-de-obra usadas deve ser < 50.000) Cada vez que o Evolver gera uma soluo possvel para o seu modelo, ele verifica se as restries definidas so vlidas. As restries so mostradas na parte inferior da seo Restries da caixa de dilogo Modelo do Evolver. Podem ser definidos dois tipos de restries no Evolver: Hard (rgida). So condies que precisam obrigatoriamente ser atendidas para que a soluo seja vlida (ex.: uma restrio rgida de iterao poderia ser C10<=A4; nesse caso, se a soluo gerar um valor maior que o da clula A4 para a clula C10, a soluo ser descartada). Soft (flexvel) So condies que, de preferncia, devem ser atendidas da mxima maneira possvel, mas podem ser ajustadas em troca de uma melhoria substancial de adequao ou resultado da clula-alvo. (ex.: uma restrio flexvel poderia ser C10<100. Nesse caso, C10 poderia conter um valor acima de 100, mas se isso ocorresse, o valor calculado para a clula-alvo seria diminudo de acordo com a funo de penalidade definida pelo usurio).

Captulo 3: Evolver: Passo a Passo

31

Adio de restrio

Para especificar uma restrio: 1) Clique no boto Adicionar, na seo de Restries da caixa de dilogo principal do Evolver. Isso abre a caixa de dilogo Configuraes de restries, na qual podem ser definidas as restries para o modelo.

Intervalo de valores simples e restries de frmulas

As restries podem ser definidas em dois formatos: Simples e Frmula. O formato de intervalo de valores simples permite inserir restries usando relaes simples como: <, <=, >, >= ou =. Uma restrio tpica de um intervalo de valores simples seria 0<valor de A1<10, onde A1 inserido na caixa Intervalo de clulas, 0 inserido na caixa Mn e 10 inserido na caixa Mx. O operador desejado selecionado nas caixas de lista suspensa. Ao usar uma restrio em formato de intervalo de valores simples, voc pode inserir apenas o valor Mn., apenas o Mx. ou ambos. Uma restrio de frmula, por outro lado, permite inserir qualquer frmula vlida do Excel como restrio; por exemplo: A19<(1,2*E7)+E8. Para cada soluo possvel, o Evolver confere se a frmula inserida avaliada como VERDADEIRO ou FALSO, para verificar se a restrio foi atendida. Se quiser usar uma frmula booleana como restrio em uma planilha, basta referenciar a clula especfica no campo Frmula da caixa de dilogo Configuraes de restries.

32

Tour do Evolver

Para inserir restries no modelo Padaria, vamos especificar trs novas restries rgidas. Essas restries so rgidas porque as condies definidas precisam ser atendidas, caso contrrio a soluo ser descartada pelo Evolver. Primeiro, insira as restries rgidas no formato de intervalo de valores simples: 1) Insira o Total aceitvel de horas de trabalho na caixa de descrio. 2) Na caixa Intervalo a restringir, digite I8. 3) Selecione o operador<= direita do Intervalo a restringir. 4) Na caixa Mximo, insira 50.000 5) Na caixa Mnimo, limpe o valor padro 0. 6) esquerda de Intervalo a restringir, limpe o operador selecionando o espao em branco na lista suspensa. 7) Clique em OK para confirmar esta restrio.

Captulo 3: Evolver: Passo a Passo

33

Agora, insira as restries rgidas em formato de frmula. 1) Clique em Adicionar para exibir novamente a caixa de dilogo Configuraes de restries. 2) Na caixa de descrio, insira Relao aceitvel alta fibra baixa caloria. 3) Na caixa Estilo de entrada, selecione Frmula. 4) Na caixa Frmula de restrio, digite C4>= 1,5*B4. 5) Clique em OK. 6) Clique em Adicionar para exibir novamente a caixa de dilogo Configuraes de restries. 7) Na caixa de descrio, insira Relao aceitvel na proporo de pes 5 gros baixa caloria. 8) Na caixa Estilo de entrada, selecione Frmula. 9) Na caixa Frmula de restrio, digite D4>= 1,5*B4. 10) Clique em OK. Agora a caixa de dilogo Modelo com a seo de restries preenchida ser semelhante a esta:

34

Tour do Evolver

Outras opes do Evolver


Opes como Atualizar exibio, Gerador de nmeros aleatrios e Condies de parada podem ser usadas para especificar como o Evolver deve funcionar durante uma otimizao. Vamos especificar algumas condies de parada e exibir as configuraes de atualizao.
Condies de parada

O Evolver roda durante quanto tempo voc quiser. As condies de parada possibilitam especificar que o Evolver pare automaticamente em uma das seguintes situaes: a) aps um certo nmero de cenrios ou tentativas terem sido examinados; b) aps decorrido determinado intervalo de tempo; c) quando no tiver ocorrido nenhuma melhoria nos ltimos n cenrios; d) quando a frmula de Excel fornecida avaliada como VERDADEIRO. Para exibir e editar as condies de parada: 1) Clique no cone Configuraes de otimizao, na barra de ferramentas do Evolver. 2) Selecione a guia Tempo de execuo.

Na caixa de dilogo Configuraes de otimizao, voc pode selecionar qualquer combinao das condies de parada ou nenhuma. Se voc selecionar mais de uma condio de parada, o Evolver parar quando uma delas ocorrer. Se voc no selecionar nenhuma condio de parada, o Evolver rodar indefinidamente, at voc par-lo manualmente pressionando o boto parar da barra de ferramentas do Evolver.

Captulo 3: Evolver: Passo a Passo

35

Tentativas

Minutos

Mudana no(s) ltimo(s) Esta condio de parada a mais usada, porque acompanha o grau de melhoria e deixa o Evolver rodar at ele comear a diminuir. Por exemplo, o Evolver poderia parar se depois de 100 tentativas no ocorresse mais nenhuma mudana no melhor cenrio encontrado at ento.

Frmula verdadeira O Evolver pra se a frmula de Excel fornecida retornar VERDADEIRO no reclculo de um modelo.

Esta opo define o nmero de tentativas que o Evolver deve fazer. Em cada tentativa, o Evolver avalia um conjunto completo de variveis ou uma nica soluo possvel para o problema.

O Evolver pra aps o intervalo de tempo especificado ter se esgotado. Esse nmero pode ser uma frao (4,25).

Opes de exibio

Se quiser deixar o Evolver rodar indefinidamente, desative todas as condies de parada.

Enquanto o Evolver roda, um conjunto de opes da guia Visualizar pode ser usado para especificar o que voc quer que seja apresentado na tela.

36

Tour do Evolver

As opes de Durante a otimizao so:


A cada tentativa Esta opo refaz a tela aps cada clculo, possibilitando ver como o Evolver ajusta as variveis e calcula o output. Sugerimos usar esta opo enquanto voc ainda estiver aprendendo a usar o Evolver, e tambm cada vez que usar o Evolver em um novo modelo, para verificar se o modelo est sendo calculado corretamente. A cada nova melhor tentativa Esta opo refaz a tela cada vez que o Evolver gera uma nova resposta melhor, o que permite que voc veja a melhor soluo atual a qualquer momento durante a otimizao. Nunca Esta opo nunca refaz a tela durante a otimizao. Isso produz a otimizao mais rpida possvel, mas fornece pouca informao sobre os resultados calculados durante a execuo.

Ative A cada tentativa.

Captulo 3: Evolver: Passo a Passo

37

Execuo da otimizao
Agora, s falta otimizar o modelo para maximizar o lucro total e obedecer as diretrizes de limite de produo. Para fazer isso: 1) Clique em OK para sair da caixa de dilogo Configuraes de otimizao. 2) Clique no cone Iniciar otimizao. Conforme o Evolver comea a trabalhar no seu problema, voc ver na planilha os melhores valores atuais para as clulas ajustveis Caixas produzidas. O melhor valor para Lucro total apresentado na clula realada.

Durante a execuo, a janela Progresso indica o seguinte: 1) a melhor soluo encontrada at o momento; 2) o valor original da clula-alvo no incio da otimizao; 3) o nmero de tentativas executadas no modelo e o nmero de tentativas vlidas entre as que foram executadas, isto , que atenderam todas as restries; 4) o tempo decorrido da otimizao. A qualquer momento durante a execuo, voc pode clicar no cone Opes de atualizaes do Excel para atualizar instantaneamente a tela a cada tentativa.

38

Tour do Evolver

Observador do Evolver

O Evolver tambm pode exibir um registro contnuo das simulaes executadas de cada soluo tentada. Esse registro exibido no Observador do Evolver enquanto o Evolver est sendo executado. O Observador do Evolver permite explorar e modificar vrios aspectos do problema durante a execuo. Para ver o registro contnuo das simulaes executadas: 1) Clique no cone do Observador (lente de aumento) na janela Progresso para exibir o Observador do Evolver. 2) Selecione a guia Registro.

Neste relatrio, so apresentados os resultados da simulao de cada soluo tentada. A coluna Resultado contm o valor da clula-alvo que voc est tentando maximizar ou minimizar, por tentativa; neste caso, o Lucro Total em $I$11. As colunas de C4 a G4 contm os valores usados nas clulas ajustveis.

Captulo 3: Evolver: Passo a Passo

39

Como parar a otimizao

Aps 5 minutos, o Evolver pra a otimizao. Voc tambm pode parar a otimizao das seguintes formas: 1) Clicando no cone Parar do Observador do Evolver ou nas janelas de progresso. Quando o processo do Evolver pra, exibida a guia Condies de parada, onde podem ser feitas as seguintes escolhas:

Estas mesmas opes tambm aparecem automaticamente sempre que as condies de parada definidas na caixa de dilogo Configuraes de otimizao do Evolver so atendidas.

40

Tour do Evolver

Relatrio resumido

O Evolver pode criar um relatrio resumido da otimizao, com informaes como data e hora da execuo, configuraes usadas, valor calculado da clula-alvo e valor de cada clula ajustvel.

Este relatrio til para comparar os resultados de otimizaes sucessivas.

Captulo 3: Evolver: Passo a Passo

41

Colocao dos resultados no modelo

Para colocar na planilha a nova combinao otimizada dos nveis de produo de cada um dos seis tipos de pes da padaria: 1) Clique no boto Parar. 2) Verifique se a opo Atualizar valores de clulas ajustveis exibidas na pasta de trabalho para est definida como Melhor. Ser apresentada a planilha Padaria tutorial passo a passo.xls com todos os novos valores de variveis que produzem a melhor soluo.

NOTA IMPORTANTE: Embora neste exemplo o Evolver tenha encontrado uma soluo que produziu um lucro total de 3.940.486, o resultado que voc obter poder ser mais alto ou mais baixo do que esse. Essas diferenas se devem a uma distino importante entre o Evolver e os demais algoritmos de soluo de problemas, a saber: o carter aleatrio do mecanismo de algoritmo gentico do Evolver permite que ele solucione uma grande variedade de problemas e encontre as melhores solues.

42

Tour do Evolver

Ao salvar uma planilha aps ela ser executada pelo Evolver (mesmo se voc restabelecer os valores originais da planilha aps a execuo do Evolver), todas as configuraes das caixas de dilogo do Evolver so salvas com a planilha especfica. Na prxima vez em que a planilha for aberta, todas as configuraes mais recentes do Evolver sero automaticamente carregadas. As configuraes do Evolver so preenchidas automaticamente em todas as demais planilhas de exemplo, deixando-as prontas para as execues do Evolver. NOTA: Se quiser dar uma olhada no modelo Padaria com todas as configuraes preenchidas automaticamente, abra o arquivo de exemplo do modelo PADARIA.xls.

Captulo 3: Evolver: Passo a Passo

43

44

Captulo 4: Exemplos de Aplicaes


Introduo .........................................................................................47 Seleo de publicidade ....................................................................49 Ordenao alfabtica .......................................................................51 Distribuio de tarefas .....................................................................53 Padaria ...............................................................................................55 Distribuio oramentria ...............................................................57 Equilbrio qumico ............................................................................59 Programador de horrios de aulas .................................................61 Segmentador de cdigo...................................................................65 Dakota: definio de rotas com restries ....................................69 Programador de tarefas de oficina .................................................73 Localizao de torres de rdio ........................................................75 Balanceamento de portflio ............................................................77 Mix de portflio .................................................................................81 Estaes de energia .........................................................................83 Compras ............................................................................................85 Problema de vendedor .....................................................................87 Navegador espacial ..........................................................................89 Negociante.........................................................................................91 Transformador ..................................................................................93 Transporte .........................................................................................95

Captulo 4: Exemplos de Aplicaes

45

46

Introduo
Este captulo explica como o Evolver pode ser utilizado em aplicaes variadas. Estes exemplos de aplicaes talvez no contenham todos os recursos que voc gostaria de ter em seus prprios modelos, mas a finalidade que sirvam para gerar idias e modelos. Todos os exemplos ilustram como o Evolver encontra solues com base nas relaes j existentes em sua planilha, portanto, importante que seu modelo de planilha retrate precisamente o problema a ser solucionado. Todos os exemplos de planilha de Excel encontram-se na pasta EVOLVE32, na subpasta EXEMPLOS. Eles esto relacionados alfabeticamente neste captulo. Os exemplos utilizam a seguinte conveno de cdigo de cores:

clulas realadas em azul. . . . . . clulas realadas em vermelho . . . . . .

clulas ajustveis que o Evolver ajustar. a clula-alvo ou meta.

Cada exemplo vem com todas as configuraes pr-selecionadas do Evolver, incluindo clula-alvo, clulas ajustveis, mtodos de soluo e restries. Recomendamos examinar as configuraes das caixas de dilogo antes de iniciar a otimizao. Voc entender melhor como o Evolver funciona se examinar as frmulas e experimentar diferentes configuraes do Evolver. Os modelos tambm permitem substituir os dados do exemplo por seus prprios dados de usurio. Se voc resolver modificar ou adaptar essas planilhas de exemplo, sugerimos salv-las com outro nome, para conservar os exemplos originais como referncia.

Captulo 4: Exemplos de Aplicaes

47

48

Seleo de publicidade
Uma agncia de publicidade precisa descobrir a maneira mais eficaz de usar seu oramento publicitrio para alcanar seu pblico-alvo. Ela no pode gastar mais do que oramento estabelecido, e a quantia gasta com TV deve ser maior do que a gasta com rdio.
Arquivo de exemplo: Meta: Seleo de publicidade.xls Distribuir verbas para veiculao em diversos meios publicitrios com vrias faixas de preo. Maximizar o pblico alcanado. oramento Problemas de tipo oramentrio, com restries adicionais.

Mtodo de soluo: Problemas similares:

Captulo 4: Exemplos de Aplicaes

49

Como o modelo funciona

A primeira coisa a fazer escolher um mtodo de soluo que diga ao Evolver o que fazer com as variveis. Consulte o Captulo 5: Guia de Referncia para ver explicaes sobre os vrios mtodos de soluo. Este problema , essencialmente, um tipo de oramento com restries adicionais em que o gasto com TV precisa ser maior que o gasto com rdio.

Como encontrar a soluo

As variveis a serem ajustadas pelo Evolver esto nas clulas C5:C9. Vamos instruir o Evolver a efetuar variaes nos dados utilizando o mtodo oramento, atribuindo a cada varivel um valor independente. O pblico-alvo total calculado com a funo SOMA na clula G13; essa a clula que pediremos para o Evolver maximizar. As restries rgidas especificam que o gasto com TV precisa ser superior ao gasto com rdio.

50

Seleo de publicidade

Ordenao alfabtica
Neste exemplo, temos uma lista de sete nomes que queremos que o Evolver coloque em ordem alfabtica. Embora este exemplo seja simples, o Evolver tem capacidade para lidar com ordenaes complexas em que os dados so interdependentes, ou em que os nomes so ponderados com base em outras informaes contidas no modelo.
Arquivo de exemplo: Meta: Mtodo de soluo: Problemas similares: Alfabetizar.xls Ordenar alfabeticamente a lista de nomes. Ordem Qualquer problema de ordenao que requer capacidade maior que a do Excel.

Captulo 4: Exemplos de Aplicaes

51

Como o modelo funciona

O arquivo Alfabetizar.xls um modelo bem simples que ilustra as possibilidades de ordenao do Evolver. A coluna B contm nomes de sete pessoas, e a coluna A contm o nmero de identificao correspondente a cada nome. A coluna D usa a funo PROCV do Excel para traduzir qualquer nmero escolhido na coluna C no nome correspondente. As clulas E4:E9 usam uma funo simples de penalidade para atribuir o valor 1 cada vez que um nome anterior apresentado na lista aps um nome posterior. A soma de todos estes erros encontra-se na clula E11, nossa clula-alvo. Neste modelo, as variveis a serem ajustadas encontram-se na coluna C (C3:C9). Instruiremos o Evolver a efetuar variaes nas clulas C3:C9 utilizando o mtodo de soluo ordem. O mtodo de soluo ordem instrui o Evolver a mudar a ordem dos valores selecionados e experimentar vrias permutaes das variveis, em vez de experimentar novos valores. Vamos pedir ao Evolver que descubra o valor mais prximo de 0 do erro total na clula E11, pois quando esta clula-alvo for 0, significa que todos os nomes esto na ordem correta.

Como solucionar o problema

Se nenhum critrio de parada for selecionado na caixa de dilogo Opes do Evolver, ele continuar a rodar indefinidamente at voc par-lo manualmente por meio do boto parar da barra de ferramentas do Evolver. Mas neste modelo selecionamos a opo valor mais prximo a, instruindo o Evolver a parar automaticamente quando encontrar uma soluo com o valor 0 como valor mais prximo a. Estamos utilizando uma populao pequena porque, embora no haja regras estritas quanto ao tamanho timo da populao, de modo geral podemos selecionar uma populao menor ao tratar de problemas que tm um nmero total menor de solues possveis, a fim de focar mais rapidamente a produo das melhores solues possveis. Neste problema, existem apenas 5040 ordens possveis para os 7 nomes.
52 Ordenao alfabtica

Distribuio de tarefas
Este exemplo apresenta um modelo de um problema comum relacionado distribuio de recursos. Neste problema, um gerente tem 16 funcionrios que realizam 16 tarefas. A capacidade de cada funcionrio realizar cada tarefa foi classificada numa escala de 1 a 10 (1 = incapaz de realizar a tarefa, 10 = perfeito para a tarefa). O desafio aqui correlacionar cada funcionrio a uma tarefa, de modo a maximizar a produtividade total dos funcionrios.
Arquivo de exemplo: Meta: Mtodo de soluo: Problemas similares: Distribuio de tarefas.xls Designar 16 funcionrios para 16 tarefas de modo a maximizar a eficincia geral. ordem Problemas de distribuio de tarefas, agendamento de reunies em horrios preferidos dos funcionrios, descobrir quais so os melhores equipamentos para uma srie de tarefas.

Captulo 4: Exemplos de Aplicaes

53

O modelo fornece uma grade de 16 por 16 nas clulas B4:Q19, em que os funcionrios foram classificados com respeito a cada tarefa. A coluna da tarefa escolhida (coluna S) direita da grade designa arbitrariamente cada funcionrio a uma tarefa. A prxima coluna (coluna U) indica a atribuio da tarefa e a classificao de cada funcionrio na tarefa especfica. Finalmente, o total de pontos da soluo inteira (na clula U21) correspondente soma de todas as classificaes individuais.
Como o modelo funciona

H somente uma pessoa para cada tarefa, portanto, nenhum nmero pode ser repetido, e cada nmero deve ser usado apenas uma vez. A classificao de proficincia de cada funcionrio na tarefa registrada na coluna U usando-se a funo NDICE(). Esses pontos so somados o total indicado na clula U21 e usados para encontrar o resultado total para o conjunto de tarefas em questo. O Evolver recebe instrudo a manipular as variveis da tarefa escolhida, localizadas na coluna S (S4:S19). Vamos instruir o Evolver a manipular essas clulas pelo mtodo de soluo ordem. Este mtodo embaralha os valores existentes nas clulas ao redor, portanto, certifique-se que haja apenas uma ocorrncia de cada valor antes de iniciar a otimizao. Vamos instruir o Evolver a encontrar o valor mximo para a clula U21, a clula-alvo, pois quanto maior for o seu valor, melhor ser a distribuio geral.

Como encontrar a soluo

54

Distribuio de tarefas

Padaria
Este exemplo apresenta um problema comum em situaes de deciso de produo, nas quais muito difcil encontrar a quantidade correta de cada produto a ser produzido, mesmo com poucos itens. Um proprietrio de padaria precisa determinar o nmero de caixas a serem produzidas para cada tipo de po, de forma a maximizar o lucro total da padaria. Certifique-se de considerar as limitaes delineadas, tais como o nmero total de horas/empregado, e a proporo correta de produtos a produzir. (Nota: Este modelo tratado em detalhe no Captulo 3: Evolver: Passo a Passo)
Arquivo de exemplo: Meta: Padaria.xls Encontrar a quantidade ideal de produo de cada tipo de po, de modo a satisfazer todas as quotas e maximizar os lucros. receita Desenvolvimento de carteiras de produtos, planejamento de produo

Mtodo de soluo: Problemas similares:

Captulo 4: Exemplos de Aplicaes

55

Como o modelo funciona

Este problema apresenta uma lista com a quantidade de cada produto de panificao a ser produzido, na parte superior do grfico na linha 4. Quando ajustamos essas variveis de quantidade (B4:G4), o modelo calcula as horas e o custo necessrios, assim como o lucro que seria gerado pela produo dessas quantidades. O lucro (nas clulas B11:G11) somado e o total colocado na clula I11, que se torna a clula-alvo a ser maximizada.

Este modelo tem trs restries. Todas elas so restries rgidas. A primeira uma restrio que define o formato do intervalo de valores como Simples; as outras duas so restries inseridas como frmulas de Excel.
Como encontrar a soluo

O Evolver instrudo a encontrar os valores das clulas B4:G4 (quantidades a serem produzidas) que maximizaro o valor na clula I11 (lucro total). Como cada valor encontrado pode ser independente dos demais, utilizaremos o mtodo de soluo receita. Tambm vamos instruir o Evolver a observar as restries nas clulas C4, D4, e I8.

56

Padaria

Distribuio oramentria
Um executivo snior deseja encontrar a forma mais eficaz de distribuir fundos entre os vrios departamentos da empresa visando a maximizar os lucros. Abaixo, apresentamos um modelo da empresa e o lucro projetado para o prximo ano. Este modelo estima o lucro do prximo ano com base no oramento anual e em pressupostos sobre, por exemplo, como a publicidade influencia as vendas. Este modelo simples, mas mostra como voc pode configurar qualquer modelo e efetuar a entrada de dados (inputs) no Evolver para que ele possa encontrar o melhor output.
Arquivo de exemplo: Meta: Distribuio oramentria.xls Distribuir o oramento anual entre cinco departamentos de modo a maximizar os lucros no prximo ano. Oramento Distribuio de recursos escassos (como mo-deobra, capital, combustvel, tempo) a entidades que os utilizam de diversas formas ou com graus diferentes de eficincia.

Mtodo de soluo: Problemas similares:

Captulo 4: Exemplos de Aplicaes

57

Como o modelo funciona

O arquivo Distribuio oramentria.xls apresenta um modelo dos efeitos do oramento de uma empresa em suas futuras vendas e lucros. As clulas C4:C8 (variveis) contm as quantias a serem gastas com cada um dos cinco departamentos. O total destes valores indicado na clula C10, o oramento anual total da empresa. Este oramento prefixado pela companhia e imutvel. As clulas F6:F10 efetuam uma estimativa da demanda dos produtos da empresa para o prximo ano, com base nos oramentos de publicidade e marketing. O montante das vendas efetivas corresponde ao mnimo da demanda e do suprimento calculados. O suprimento depende do capital distribudo aos departamentos de produo e operaes.

Como encontrar a soluo

Maximize o lucro na clula I16 usando o mtodo de soluo oramento para ajustar os valores nas clulas C4:C8. Defina intervalos independentes para cada clula ajustvel do oramento de cada departamento, de modo a impedir o Evolver de tentar usar nmeros negativos ou nmeros que no seriam solues adequadas (ex.: tudo para publicidade e nada para produo) para os oramentos departamentais. O mtodo de soluo oramento funciona como o mtodo de soluo receita, no sentido de que tenta encontrar a combinao certa das variveis escolhidas. Contudo, ao usar o mtodo de oramento, acrescentada a seguinte restrio: a soma total das variveis precisa ser a mesma que antes de o Evolver iniciar a otimizao.

58

Distribuio oramentria

Equilbrio qumico
Qualquer processo que pode ser modelado para produzir um resultado, dadas certas condies iniciais, pode ser otimizado pelo Evolver. Este exemplo mostra como o Evolver pode encontrar nveis de produtos qumicos diferentes (produtos e reagentes) que minimizam a energia livre aps uma reao ter alcanado o estado de equilbrio. Em processos qumicos complexos, os ingredientes (reagentes) e os produtos interagem continuamente uns com os outros at que a concentrao dos compostos se torne constante, isto , at ser alcanado o equilbrio. Em qualquer momento aps ser alcanado o equilbrio, uma porcentagem constante das substncias qumicas em equilbrio poderia ser constituda de reagentes (ex.: 5%), e uma porcentagem constante seria de produtos (95%).
Arquivo de exemplo: Meta: Equilbrio qumico.xls Calcular a energia livre do ambiente de reao e encontrar os nveis dos produtos qumicos, obedecendo as restries flexveis (alguns nveis qumicos so proporcionais a outros). Receita Determinar as condies de equilbrio do mercado mais estvel.

Mtodo de soluo: Problemas similares:

Captulo 4: Exemplos de Aplicaes

59

Como o modelo funciona

As variveis deste problema, nas clulas B4:B13, so os nveis de produtos qumicos a serem mesclados. A clula B15 calcula a quantidade total que precisa ser mantida dentro de certo intervalo, de acordo com as penalidades. As restries em F20:F22 so restries flexveis, o que significa que no foraremos o Evolver a aceitar apenas solues vlidas, mas em vez disso, calcularemos as penalidades caso certos produtos qumicos estejam fora das propores desejadas em relao a outros produtos qumicos. Essas restries flexveis utilizam funes de penalidades criadas diretamente no modelo da planilha. As penalidades so acrescentadas ao total de energia livre na clula F17, de forma que quando o Evolver for minimizar o alvo, ele buscar solues que no produzam penalidades.

Como encontrar a soluo

Use o mtodo de soluo receita para as clulas B4:B13. Minimize a clula F17.

60

Equilbrio qumico

Programador de horrios de aulas


Uma universidade precisa distribuir 25 cursos em 6 blocos horrios pr-definidos. Cada aula dura exatamente um bloco. Normalmente, poderamos tratar do problema usando o mtodo de soluo agrupamento. Entretanto, uma srie de restries precisam ser satisfeitas ao agendar os cursos. Por exemplo: Biologia e Qumica no podem ocorrer no mesmo horrio, para que os alunos do curso de Medicina possam cursar as duas matrias no mesmo semestre. Para satisfazer essas restries, vamos usar o mtodo de soluo agendamento. O mtodo de soluo agendamento semelhante ao mtodo agrupamento, mas com a restrio de que certas tarefas devem (ou no devem) obrigatoriamente ocorrer antes de outras tarefas (ou depois, ou durante).
Arquivo de exemplo: Meta: Programador de horrios de aulas.xls Agendar 25 cursos em 6 perodos de modo a manter em um nmero mnimo os alunos que seriam excludos desses cursos. Obedecer certo nmero de restries quanto a quais cursos podem ocorrer em qual perodo. Agendamento Todos os problemas de agendamento em que as tarefas tm uma mesma durao e podem ser designadas a vrios blocos de tempo especficos. Alm disso, qualquer problema de agrupamento em que houver restries relacionadas a que grupos certos itens podem ser designados.

Mtodo de soluo: Problemas similares:

Captulo 4: Exemplos de Aplicaes

61

Como o modelo funciona

O arquivo Programador de horrios de aulas.xls contm um modelo de um problema tpico de agendamento no qual vrias restries precisam ser atendidas. As clulas C5:C29 atribuem os 25 cursos a 6 blocos de horrios. H apenas cinco salas de aula disponveis, portanto, agendar mais de cinco cursos em um horrio significa que pelo menos um dos cursos no poder ser realizado. As clulas K17:M25 contm as restries; esquerda das restries encontram-se as descries das mesmas. possvel usar tanto o cdigo numrico quanto a descrio como restrio. A lista de cdigos de restries para problemas de agendamento pode ser encontrada na seo Mtodos de soluo do Captulo 5: Guia de Referncia do Evolver. Cada agendamento possvel avaliado calculando-se: a) o nmero de cursos que no podem realizados; b) o nmero de alunos que no podem assistir os cursos porque a sala de aula est lotada. A ltima restrio impede que o Evolver agende todos os cursos com maior nmero de alunos ao mesmo tempo. Se um ou dois cursos com mais alunos coincidirem durante um bloco horrio, as salas de aula maiores podero ser usadas.

62

Programador de horrios de aulas

As clulas I8:N8 usam a funo BDCONTAR do Excel para contar quantos cursos esto agendados em cada bloco horrio. Logo abaixo, as clulas I9:N9 calculam quantos cursos no receberam uma sala de aula para aquele bloco horrio. O nmero total de cursos sem salas de aula indicado na clula K10. Se o nmero de assentos exigido por uma matria exceder o nmero de assentos disponveis, as clulas I12:N12 calculam essa diferena, e o total de alunos sem assento calculado na clula K13. Na clula F6, esse total de alunos sem assentos somado mdia de tamanho da classe, e multiplicado pelo nmero de cursos sem salas de aula. Desta forma, temos uma clula que une todas as penalidades, de modo que quanto menor o nmero contido nesta clula, melhor ser o agendamento.
Como encontrar a soluo

Minimize o valor das penalidades na clula F6 alterando as clulas C5:C29. Utilize o mtodo de soluo agendamento. Quando esse mtodo de soluo escolhido, vrias opes relacionadas aparecem na seo opes inferior da caixa de dilogo. Defina o nmero de blocos de horrio como 6, e defina as clulas de restrio como K17:M25.

Captulo 4: Exemplos de Aplicaes

63

64

Segmentador de cdigo
Um programador de Windows deseja fragmentar um programa em vrios segmentos de cdigo, para que o Windows possa usar a memria de maneira mais eficiente mantendo na memria apenas os segmentos de cdigos que esto sendo usados. Esse um exemplo de coleta de itens semelhantes em grupos. Os itens podem interagir de maneira eficaz uns com os outros no mesmo grupo, mas difcil isso acontecer com itens de grupos diferentes. Quando h obstculos naturais que impedem a interao direta entre os itens (digamos, por exemplo, que todos os usurios de computador desejam conectar diretamente a uma impressora), necessrio fragmentar os itens em grupos. Um agrupamento eficaz pode ter um efeito significativo na produtividade total do sistema.
Arquivo de exemplo: Meta: Segmentador de cdigo.xls Agrupar rotinas de programa em oito segmentos de cdigos diferentes, para que o programa rode o mais rpido possvel. Agrupamento Juntar estaes de trabalho em blocos de LAN, ou circuitos em uma rea de microchips, de modo que o custo da comunicao entre os grupos seja minimizado.

Mtodo de soluo: Problemas similares:

Captulo 4: Exemplos de Aplicaes

65

Como o modelo funciona

Os programadores do Windows normalmente fragmentam programas desta forma para aumentar a eficincia do programa. Quando uma rotina de outro segmento precisa rodar, o Windows ativa o segmento chamado e efetua a sua leitura a partir do disco. Se um programa de 2 MB for fragmentado em at 80 segmentos de 20 Kb cada, o programa poder rodar mesmo se houver apenas 20 Kb de memria disponvel. Entretanto, para funcionar com desempenho aceitvel, os segmentos de cdigo precisam ser cuidadosamente organizados. Acionar uma funo em outro segmento demora mais tempo do que acion-la no mesmo segmento onde foi feito o acionamento. Minimizar o nmero de chamadas de segmentos cruzados chamado de problema de segmentao de cdigo. Como possvel otimizar algumas partes de uma aplicao por conta da aplicao completa, utilizaremos o Evolver para realizar uma otimizao global. O arquivo de exemplo Segmentador de cdigo.xls pressupe que uma aplicao foi compilada com uma certa segmentao. A aplicao foi rodada como qualquer usurio a rodaria, enquanto a rotina de desempenho de rastreamento mantm um registro do nmero de vezes que cada funo acionou outra funo. Consequentemente, esses resultados representam o tipo das chamadas no uso comum da aplicao. A partir desses resultados podemos fazer previses sobre a velocidade da aplicao com diferentes estratgias de segmentao. Esta planilha usa a funo comum SegCost. A funo SegCost calcula o tempo necessrio para que um usurio rode o programa da mesma maneira como quando as estatsticas de uso comum foram adquiridas. Ela efetua esse clculo contando o nmero de chamadas de funes dentro dos segmentos e fora dos segmentos, e multiplicando cada nmero pelo custo de cada tipo de chamada. Aqui, presumimos que uma chamada entre segmentos (ou chamada em segmento prximo) leva sete ciclos do relgio do sistema, e uma chamada entre segmentos (ou chamada distante) leva 34 ciclos, que tpico em qualquer computador 386.

66

Segmentador de cdigo

A funo SegCost escrita como uma Macro VBA do Excel, conforme mostrado abaixo:
Function segCost(segs, calls, inP, outP) As Double Dim inCost#, outCost#, total#, temp#, tempPtr# Dim i%, j%, wide%, funcNumber%, ThisSeg%, OtherSeg% Dim NumCalls%, NumInCall%, NumOutCall%, SegOrder$, CallOrder$ SegOrder = Application.Names(segs).RefersTo CallOrder = Application.Names(calls).RefersTo NumInCall = 0 NumOutCall = 0 inCost = Range(k2) outCost = Range(k3) total = 0 wide = Range(CallOrder).Columns.Count For i = 1 To Range(SegOrder).Rows.Count ThisSeg = Range(SegOrder).Rows(i) For j = 1 To wide temp = Range(CallOrder).Rows(i).Columns(j) If temp <> 0 Then funcNumber = Int(temp) OtherSeg = Range(SegOrder).Rows(funcNumber + 1) NumCalls = 10000 * (temp - funcNumber) If ThisSeg = OtherSeg Then temp = NumCalls * inCost NumInCall = NumInCall + 1 Else temp = NumCalls * outCost NumOutCall = NumOutCall + 1 End If total = total + temp End If Next Next segCost = total End Function

A aplicao do modelo tem 80 funes. O nmero de vezes que cada funo aciona outra armazenado no intervalo de chamadas (C5:I104). Poderamos criar uma matriz de 80 por 80 para representar o padro de chamadas, mas essa abordagem n por n se tornaria invivel depois de aproximadamente 250 funes, porque o Excel tem um limite de 256 colunas (e porque a abordagem requereria um montante exponencial de memria).

Captulo 4: Exemplos de Aplicaes

67

Em vez disso, usamos uma notao condensada para representar o padro de chamadas. Pressupomos, inicialmente, que nenhuma funo aciona mais do que um certo nmero de outras funes. Neste arquivo exemplo, pressupomos que sete o limite mximo; por isso o intervalo de chamadas tem sete colunas de largura, mas esse limite arbitrrio. Pressupomos, tambm, que nenhuma funo chamada por qualquer outra funo mais de 9999 vezes. Agora vamos examinar a funo 1, comeando na clula C5. A funo 1 aciona quatro funes: 3, 9, 81, e 41. C5:I5, a primeira linha das chamadas, contm um nmero real para cada funo acionada (ex.: 3,0023). A poro inteira (ex.: 3) representa a funo que acionada, e a frao multiplicada por 10.000 (ex.: 0,0023 x 10.000 = 23) representa o nmero de vezes que a funo 1 acionou a funo 3 no uso comum da aplicao. Assim sendo, 9,1117 significa que a funo acionou a funo No. 9 1.117 vezes, e assim por diante. Este formato conciso economiza memria e aproveita melhor o nmero limitado de colunas disponvel no Excel. A clula A5:A104 (intervalo de distribuio de segmentos) contm o nmero do segmento ao qual cada funo atribuda. A clula K4 usa a funo SegCost para calcular o desempenho geral da estratgia de segmentao atual.
Como encontrar a soluo

Minimize o valor na clula K4 ajustando as clulas em A5:A104. Utilize o mtodo agrupamento. O mtodo de soluo agrupamento instrui o Evolver a organizar as variveis em x grupos, onde x o nmero de valores distintos nas clulas ajustveis no incio de uma otimizao.

68

Segmentador de cdigo

Dakota: definio de rotas com restries


Uma imobiliria precisa avaliar cada uma de suas propriedades em todo estado de Dakota do Norte, em uma ordem especfica, de modo que certas propriedades sejam visitadas antes de outras. Este problema semelhante ao conhecido problema do vendedor ambulante, em que o objetivo encontrar a rota mais curta entre um grupo de cidades e garantir que cada cidade seja visitada uma vez. Contudo, neste acaso, acrescentamos a restrio de que certas cidades precisam ser visitadas antes de outras (ex.: a cidade 2 precisa ser visitada depois da cidade 4). Isso significa que, em vez de usar o mtodo de soluo ordem, devemos usar o mtodo de soluo projeto. Um projeto consiste na ordenao de um grupo de tarefas em que certas tarefas devem ser realizadas antes de outras. Voc pode usar o mtodo de soluo projeto em conjunto com as suas prprias funes personalizadas, para otimizar o cronograma de um projeto (com base na combinao de uma srie de critrios como prazo final, utilizao de recursos etc.).
Arquivo de exemplo: Meta: Dakota.xls Planejar uma rota entre 41 cidades no estado da Dakota do Norte, que seja a rota mais curta entre todas as cidades e, ao mesmo tempo, garanta que certas cidades sejam visitadas antes de outras. Projeto Reprogramar o cronograma de um projeto de modo a equilibrar o consumo de recursos. Agendar o fluxo de tarefas numa oficina de mquinas para reduzir o tempo total e, ao mesmo tempo, garantir que certas tarefas sejam realizadas antes de outras.

Mtodo de soluo: Problemas similares:

Captulo 4: Exemplos de Aplicaes

69

Como o modelo funciona

As clulas F3:F43 contm a ordem em que as cidades sero visitadas. A clula H10 calcula a distncia total do percurso, com base na ordem e na localizao x, y das cidades (em C3:D43). A clula H10 usa a funo personalizada BigRouteLength para acelerar o clculo da distncia total do percurso. As clulas J3:L43 contm as tarefas precedentes. Esta tabela mostra as cidades (tarefas) que devem ser precedidas por outras. Oito cidades (1,2,3,4,5,7, 11 e 13) devem ser precedidas pela visita a cidades especficas.

70

Dakota: definio de rotas com restries

Como encontrar a soluo

Minimize a distncia do percurso em H10 alterando as clulas F3:F43. Utilize o mtodo de soluo projeto e defina as tarefas com precedncia nas clulas J3:L43. Essas precedncias so definidas no campo Tarefas precedentes, na caixa de dilogo Configuraes de grupos de clulas ajustveis:

Captulo 4: Exemplos de Aplicaes

71

72

Programador de tarefas de oficina


Uma oficina metalrgica precisa encontrar a melhor maneira de programar vrios servios que podem ser fragmentados em etapas e realizados em diferentes mquinas. Cada servio composto de cinco tarefas, e as tarefas precisam ser executadas em certa ordem. Cada tarefa precisa ser realizada em uma mquina especfica e requer um tempo especfico para ser concluda. H cinco servios e cinco mquinas. Clicar no boto Refazer programao, no alto da planilha, re-desenha o grfico de barras para indicar para quando cada tarefa do servio est programada.
Arquivo de exemplo: Meta: Programador de tarefas de oficina.xls Atribuir partes do servio (tarefas) s mquinas de forma que o tempo total da execuo de todos os servios seja minimizado. Ordem Problemas de agendamento ou de gerenciamento de projeto.

Mtodo de soluo: Problemas similares:

Captulo 4: Exemplos de Aplicaes

73

Como o modelo funciona

A clula D5 calcula o tempo de execuo, ou seja, quanto tempo decorre entre o incio da primeira tarefa programada e o trmino da ltima tarefa programada. Esse tempo total o que desejamos minimizar. As clulas G11:G35 contm as variveis (as tarefas) a serem variadas at encontrar a ordem ideal de execuo. As equaes na planilha calculam o momento de incio de cada tarefa a ser executada na mquina necessria. Selecione o conjunto de clulas ajustveis G11:G35 e escolha o mtodo de soluo ordem. Minimize a clula D5.

Como encontrar a soluo

74

Programador de tarefas de oficina

Localizao de torres de rdio


Uma emissora de rdio deseja construir trs torres de rdio numa regio que tem 12 comunidades grandes. Cada comunidade tem um grupo populacional de tamanho diferente, e cada torre de rdio tem diferente alcance de transmisso. A meta colocar as torres em pontos que possibilitem alcanar o maior nmero de ouvintes dentro do raio de alcance das torres.

Um exemplo mais complicado de um problema de localizao poderia ser o de localizar vrias empresas de forma que se situem: a) nos arredores dos fornecedores e dos clientes; b) em um ambiente geograficamente aberto e financeiramente acessvel; c) prximas a uma fora de trabalho grande e tecnicamente treinada. Todas as influncias adicionais que possam ser consideradas vantajosas em termo do local, como incentivos fiscais, tambm podem ser includas no modelo. O Evolver pode, ento, encontrar a melhor localizao em x,y ou mesmo nas coordenadas espaciais x,y,z.
Arquivo de exemplo: Meta: Localizao de torres de rdios.xls Encontrar as melhores coordenadas x,y para as trs torres de rdio, de forma que o potencial mximo de audincia se encaixe dentro da faixa de transmisso. Receita Encontrar locais para depsitos que minimizem o frete necessrio entre os depsitos e as lojas. Localizar guarnies de bombeiros de forma que as populaes estejam mais bem cobertas com um nmero limitado de guarnies de bombeiros, incluindo fatores como densidade residencial.

Mtodo de soluo: Problemas similares:

Captulo 4: Exemplos de Aplicaes

75

Como o modelo funciona

O arquivo Localizao de torres de rdios.xls contm um modelo de rea bi-dimensional na qual a localizao de cinco torres de rdio determina quantos ouvintes podem ser alcanados. As clulas C6:D8 contm as coordenadas x,y das trs torres. A ilustrao contida no modelo consiste de dois elementos: um deles uma figura bitmap da densidade populacional (em verde) colada do programa Windows Paintbrush; o outro um grfico de disperso que automaticamente recalculado para exibir as localizaes das torres. Dez comunidades esto representadas como localidades em pontos individuais da tela. O modelo do Excel calcula a distncia entre as comunidades e as torres em K4:M15 para determinar se cada comunidade est coberta (sim) ou descoberta (no). A populao total de todas as comunidades cobertas (o nmero que desejamos maximizar) calculada na clula O17.

Como encontrar a soluo

Maximize a populao que se encontra dentro do alcance das torres, na clula O17, ajustando as clulas de localizao das torres C6:D8. Utilize o mtodo de soluo receita e defina os intervalos para as variveis entre 0 a 50 (limites da nossa rea de localizao). O mtodo de soluo receita instrui o Evolver a ajustar as variveis escolhidas da melhor maneira possvel. Assim como em uma receita de bolo, estamos procurando encontrar a melhor mistura de ingredientes (coordenadas x,y) para gerar a soluo ideal.

76

Localizao de torres de rdio

Balanceamento de portflio
Um corretor tem uma lista de 80 ttulos com valores monetrios diferentes. O corretor quer agrupar esses ttulos em cinco pacotes (portflios) com valores totais o mais equivalentes possveis. Este exemplo refere-se a uma classe geral de problemas conhecida como problemas de empacotamento em recipientes ou bin-packing. Por exemplo, acomodar a carga nos compartimentos de um navio cargueiro de modo que o peso de cada compartimento seja equivalente ao dos demais. Caso existam milhes de itens pequenos a serem acondicionados em pequenos grupos, como gros de trigo nos compartimentos de um cargueiro, possvel estimar uma distribuio aproximadamente equivalente, sem muita diferena de peso. Contudo, se houver vrios pacotes de pesos ou tamanhos diferentes, eles podem ser acondicionados de diversas maneiras, e a eficincia no empacotamento pode melhorar o equilbrio que seria encontrado manualmente.
Arquivo de exemplo: Meta: Balanceamento de portflio.xls Dividir uma lista de ttulos em cinco portflios, sendo que o valor total de cada um seja o mais prximo possvel dos demais. Agrupamento Organizar equipes com habilidades coletivas relativamente equivalentes. Organizar os contineres nos compartimentos de um navio cargueiro de modo que o peso seja igualmente distribudo.

Mtodo de soluo: Problemas similares:

Captulo 4: Exemplos de Aplicaes

77

Como o modelo funciona

O arquivo Balanceamento de portflio.xls contm um modelo de agrupamento tpico. A coluna A contm nmeros de identificao dos ttulos especficos, e a coluna B contm o valor em dlares de cada ttulo. A coluna C designa cada ttulo a um dos cinco portflios. Ao definir um problema de agrupamento ou empacotamento e usar o mtodo de soluo agrupamento, necessrio ter certeza de que cada grupo (de 1 a 5) esteja representado no cenrio atual pelo menos uma vez, antes de iniciar o Evolver. As clulas F6:F10 calculam o valor total de cada um dos cinco portflios. Isso feito com os critrios fora da tela (na coluna I) do banco de dados e as frmulas BDSOMA() nas clulas F6:F10. Consequentemente, a clula F6, por exemplo, calcula a funo BDSOMA de todos os valores contidos na coluna B que foram atribudos ao grupo 5 (na coluna C).

78

Balanceamento de portflio

A clula F12 calcula o desvio padro entre os valores totais dos portflios utilizando a funo DESVPAD(). Isso d uma idia da proximidade dos valores totais dos portflios entre si. O grfico mostra o valor total de cada portflio, com uma linha de referncia marcando o nmero-meta em que cada portflio estaria se todos fossem iguais.
Como encontrar a soluo

Minimize o valor na clula F12 ajustando as clulas em C5:C104. Utilize o mtodo agrupamento e certifique-se de que os valores 1, 2, 3, 4 e 5 apaream pelo menos uma vez na coluna C. O mtodo de soluo agrupamento instrui o Evolver a organizar as variveis em x grupos, onde x o nmero de valores distintos nas clulas ajustveis no incio de uma otimizao.

Captulo 4: Exemplos de Aplicaes

79

80

Mix de portflio
Um jovem casal possui ativos em diversos tipos de investimentos, cada um com rendimento, potencial de crescimento e risco especficos. Combinando vrias frmulas que multiplicam diversos pesos, eles criaram um tipo de pontuao que indica como cada mix especfico de investimento atende as suas necessidades.
Arquivo de exemplo: Meta: Mix de portflio.xls Encontrar o mix timo de investimentos para maximizar o lucro do casal, considerando suas necessidades atuais de risco/retorno. Oramento

Mtodo de soluo:

Captulo 4: Exemplos de Aplicaes

81

Como o modelo funciona

Este um modelo financeiro clssico que procura equilibrar o risco de perda e o retorno do investimento. Para cada ao presente na coluna A, atribudo um peso na coluna C. O modelo multiplica as porcentagens de retorno pelo peso de cada ao no portflio e apresenta o retorno total na clula C18. Tambm calculado o total do risco, na clula C19, que no deve ser maior do que o risco aceitvel exibido na clula C20. A pontuao total na clula C22 constitui o retorno total menos a penalidade por qualquer risco acima da porcentagem aceitvel. Maximizamos essa pontuao.

Como encontrar a soluo

82

Mix de portflio

Estaes de energia
Uma emissora de radio adquiriu trs torres de rdio abandonadas que no esto funcionando, numa regio em que h dez comunidades de grande porte. A emissora deseja comprar transmissores novos e instal-los nas torres para retomar as transmisses com essas torres. Em virtude de um oramento limitado, a meta gastar a quantia mnima de dinheiro nos transmissores, mas que seja suficiente para cobrir as 9 comunidades vizinhas. Vamos pressupor um modelo de preo linear, no qual o custo do transmissor diretamente relacionado sua potncia, portanto o que queremos comprar o transmissor com a potncia mnima necessria; para esse fim, seria igualmente fcil criar um grfico de consulta com os tipos e preos dos transmissores.
Arquivo de exemplo: Meta: Estaes de energia.xls Encontrar o menor transmissor (o mais barato) para cada torre antiga, mas com potncia suficiente para cobrir as dez comunidades vizinhas. Receita Problemas de definio de cobertura, em que uma srie de elementos precisa ser descrita por um nmero pequeno de conjuntos bem definidos.

Mtodo de soluo: Problemas similares:

Captulo 4: Exemplos de Aplicaes

83

Como o modelo funciona

Este exemplo muito parecido com o da localizao das torres de rdio (Localizao de torres de rdios.xls), exceto pelo fato de que aqui as localizaes so fixas, e as variveis a serem ajustadas so as faixas de potncia das torres, nas clulas E5:E7. O total do custo de energia das trs torres indicado na clula E12, a clula-alvo a ser minimizada. As clulas K4:M12 calculam a distncia entre cada comunidade e uma das torres; a coluna N retorna o valor VERDADEIRO caso uma comunidade esteja prxima o suficiente de um dos transmissores para receber cobertura. Todas estas restries so includas em uma nica restrio rgida chamada de Todas as reas esto cobertas? Essa restrio tem a frmula E($N$4:$N$12) que retorna VERDADEIRO somente se todos os valores na coluna N forem VERDADEIRO.

Como encontrar a soluo

Minimize a potncia exigida, na clula E12, ajustando os raios das torres nas clulas E5:E7. Utilize o mtodo de soluo receita e defina os intervalos de variveis de 0 a 100. Essa nica restrio rgida inserida usando o formato de frmula do Excel descrita acima.

84

Estaes de energia

Compras
Sempre que existem vrias formas de efetuar pedidos de itens, os descontos por compras em grande volume dificulta saber qual a melhor forma de comprar os itens. Este modelo contm uma tabela de preo simples, na qual constam os preos de desconto por compras em volume de um solvente especfico. necessrio comprar pelo menos 155 litros desse solvente, que vem em embalagens pequenas, mdias, grandes e extragrandes. Tente comprar o nmero correto de cada embalagem para obter o preo mais baixo possvel.
Arquivo de exemplo: Meta: Mtodo de soluo: Problemas similares: Compras.xls Gastar o mnimo possvel na compra de 155 litros de solvente. Receita O oposto: criar uma tabela de preos que sempre seja mais vantajosa para pedidos em grande quantidade.

Captulo 4: Exemplos de Aplicaes

85

Como o modelo funciona

Este solvente vem em embalagens de 3, 6, 10 e 14 litros A tabela de preos de cada tamanho de embalagem encontra-se nas clulas D6:H9. As clulas H13:H16 contm as quantidades de cada tamanho a serem compradas. A coluna K calcula o custo de cada compra, e a clula K18 contm o custo total Este modelo permite mudar a quantidade necessria a ser comprada (clula I19), de 155 a qualquer quantidade desejada A clula I18 contm o total de litros que foram comprados, portanto, essa clula precisa conter, pelo menos, o nmero requerido na clula I19 (155). A nica restrio rgida que a quantidade comprada seja superior quantidade necessria. Como so necessrios 155 litros, podemos pensar em adquirir 11 embalagens extragrandes (154 litros), mais uma embalagem pequena (3 litros), compondo o total de 157 litros. De acordo com a tabela de preo, o total seria de $1.200,00. Mas a execuo da otimizao fornecer uma combinao ainda mais econmica.

Como encontrar a soluo

Minimize o custo, na clula K18, ajustando as quantidades de compra nas clulas H13:H16. Utilize o mtodo de soluo receita para ajustar os valores, e definir os intervalos das variveis entre 1 e 20. No possvel comprar parte de uma embalagem, portanto, instruiremos o Evolver a procurar valores inteiros, assinalando a opo inteiros na caixa de dilogo Clulas ajustveis. Como no podemos comprar menos de 155 litros, inclua uma restrio rgida especificando que I18>155.

86

Compras

Problema de vendedor
Um vendedor tem que visitar uma vez cada cidade de seu territrio. Qual rota mais curta possvel que passa por todas as cidades? Este um problema clssico de otimizao que extremamente difcil de ser resolvido com tcnicas convencionais quando o nmero de cidades grande (>50). Um problema semelhante poderia ser o de encontrar a melhor ordem para realizar tarefas em uma fbrica. Por exemplo: poderia ser mais fcil aplicar tinta preta depois de aplicar tinta branca, em vez de o oposto. No Evolver, esses tipos de problemas podem ser melhor resolvidos pelo mtodo de soluo ordem.
Arquivo de exemplo: Meta: Mtodo de soluo: Problemas similares: Problema de vendedor.xls Encontrar a rota mais curta entre n cidades, incluindo uma visita por cidade. Ordem Planejar a perfurao de orifcios em placas de circuito impresso da forma mais rpida possvel.

Captulo 4: Exemplos de Aplicaes

87

Como o modelo funciona

O arquivo Problema de vendedor.xls calcula a distncia do percurso de viagem s vrias cidades, com base em uma tabela de referncia. A coluna A contm nmeros identificadores das cidades especficas. A coluna B contm os nomes correspondentes aos nmeros (com uma funo de consulta). A ordem em que as cidades (e seus nmeros) aparecem, de cima para baixo, a ordem em que as cidades sero visitadas. Por exemplo: se voc digitou 9 na clula A3, significa que Ottawa seria a primeira cidade a ser visitada. Se A4 contivesse 6 (Halifax), ento Halifax seria a segunda cidade visitada. As distncias entre as cidades constam na tabela, comeando em C25. As distncias indicadas na tabela so simtricas (a distncia de A a B a mesma que de B a A). Entretanto, modelos mais realistas podem incluir distncias no simtricas, a fim de representar uma dificuldade maior em se viajar numa nica direo (devido a pedgios, meios de transporte disponveis, vento contrrio, subidas, etc.). Agora, necessrio usar uma funo para calcular a distncia o percurso entre as cidades. A distncia total do percurso ser armazenada na clula G2, a clula que desejamos otimizar. Para fazer isso, utilizamos a funo RouteLength. Essa uma funo VBA personalizada, na planilha Problema de vendedor.xls.

Como encontrar a soluo

Minimize o valor na clula G2 ajustando as clulas em A3:A22. Utilize o mtodo ordem e, antes de iniciar a otimizao, certifique-se de que os valores 1 a 20 estejam contidos nas clulas ajustveis (A3:A22). O mtodo de soluo ordem instrui o Evolver a reorganizar as variveis escolhidas, experimentando diferentes permutaes das variveis existentes.

88

Problema de vendedor

Navegador espacial
Como parte da equipe do lanamento do nibus espacial Evolver III, voc precisa saber a quantidade e a direo de cada propulsor do foguete para alcanar seu destino usando o mnimo de combustvel possvel. As melhores solues provavelmente aproveitaro o efeito gravitacional de chicote dos sis prximos para economizar combustvel.
Arquivo de exemplo: Mtodo de soluo: Problemas similares: Navegador espacial.xls Receita Problemas de controle de processo

Captulo 4: Exemplos de Aplicaes

89

Como o modelo funciona

As clulas Q5:R13 contm os valores de deslocamento de ar na partida e de mudana de direo de cada um dos dez passos de tempo. A clula Q16, que queremos minimizar, consiste simplesmente da soma de todo o combustvel queimado nos dez passos de tempo (Q4:Q13). As restries rgidas so: a) que a posio final da espaonave esteja dentro das 10 unidades horizontais de seu destino; b) que esteja dentro das 10 unidades verticais.

Como encontrar a soluo

Minimize a clula Q16. Crie um grupo de clulas ajustveis que usa o mtodo de soluo receita com base nas clulas Q5:R13. As clulas do tamanho do deslocamento de ar (Q5:Q13) devem se manter dentro do intervalo de 0 a 300, e as clulas de mudana de direo (R5:R13) entre -3 e 3, uma vez que utilizam radianos para representar a direo dos deslocamentos de ar. Um radiano corresponde a cerca de 57 graus.

90

Navegador espacial

Negociante
Voc est negociando no mercado S&P 500, e determinou que a anlise tcnica fornece uma previso da cotao de aes mais exata do que a anlise fundamental tradicional, e que isso pode poupar tempo se for desenvolvido um sistema. Parece haver um nmero infinito de regras pelas quais voc pode negociar, mas apenas algumas delas teriam produzido lucro aprecivel se tivessem sido seguidas. Uma busca inteligente de computador poderia ajud-lo a determinar quais regras teriam rendido mais lucro em um perodo histrico especfico.
Arquivo de exemplo: Meta: Mtodo de soluo: Problemas similares: Negociante.xls Encontrar um conjunto de trs regras que possibilite obter o maior lucro em um perodo especfico. Receita Encontrar mdias flutuantes timas que permitam produzir o melhor resultado; qualquer problema de descoberta de padres e critrios.

Captulo 4: Exemplos de Aplicaes

91

Como o modelo funciona

Este modelo usa vrios grupos de clulas ajustveis para resolver o problema como um todo. H trs regras que so avaliadas para cada dia de negociao. Se as condies das trs regras forem verdadeiras, ento o computador far a compra naquele dia, caso contrrio ele efetuar a venda. (Um sistema de negociao mais realista no compraria ou venderia apenas, mas s vezes tambm reteria os valores mobilirios j possudos.) Cada regra descrita por um conjunto de quatro nmeros nas clulas C5:E8, que pode indicar vrias coisas: 1) a fonte de dados a que a regra se refere; 2) se o valor dos dados deve estar acima ou abaixo de um valor limite; 3) o valor limite que determina se a regra verdadeira; 4) um valor modificador que determina se o prprio valor deveria ser examinado, ou se o valor do dia anterior ou se a mudana desde o dia anterior deveria ser examinada. O intervalo de valores limite varia entre 0 e 1, e representa o percentual do intervalo da fonte de dados. Por exemplo: se o volume varia de 5.000 a 10.000, ento o valor limite de 0,0 corresponderia a um volume de 5.000; um valor limite de 1,0 corresponderia a um volume de 10.000; e um valor limite de 0,5 corresponderia a um volume de 7.500. Esse sistema permite que as regras se reportem a qualquer fonte de dados, independentemente dos valores atribudos.

Como encontrar a soluo

Crie grupos de clulas ajustveis, todos eles usando o mtodo de soluo receita. Cada linha em C5:E5, C6:E6, C7:E7 e C8:E8 deve ser criada separadamente, de forma que cada grupo possa atribuir facilmente suas prprias opes, como nmero inteiro e intervalos. As configuraes de cada conjunto de variveis so exibidas em F5:F8. Maximize a clula E10, que executa uma macro para simular a negociao com aquelas regras. O lucro total realizado aps a simulao da negociao diria no banco de dados histrico inserido na clula E10.

92

Negociante

Transformador
O transformador com 2 enrolamentos precisa ter classificao nominal de 1080 VAC com perdas totais de carga de 28 watts e dissipao de calor superficial que no ultrapasse 0,16 watts/cm2. Minimize os custos e observe os critrios de desempenho.
Arquivo de exemplo: Meta: Mtodo de soluo: Problemas similares: Transformador.xls Minimizar o custo inicial e operacional de um transformador. Receita Projeto de circuito, projeto de ponte

Captulo 4: Exemplos de Aplicaes

93

Como o modelo funciona

As restries de potncia nominal, perda de carga e dissipao de calor so catalogadas como restries flexveis. Criamos uma restrio flexvel penalizando as solues que no satisfazem nossas exigncias, e que so, portanto, invlidas. Diferentemente de uma restrio rgida que precisa obrigatoriamente ser satisfeita, o Evolver tem permisso para experimentar algumas solues invlidas, mas pelo fato dessas solues invlidas serem penalizadas por uma funo do modelo que marca as infraes, elas produziro resultados inadequados na clulaalvo. Assim, com o passar do tempo, essas solues invlidas sero descartadas do universo evolutivo de solues possveis. Um modelo com restrio flexvel pode funcionar melhor do que um com restrio rgida, se o problema tolerar menos restries. Ele tambm permite que o Evolver aceite uma soluo que pode ser excelente, mesmo se ela no atender as restries, e isso pode vir a ser mais valioso do que uma soluo no to excelente que satisfaz todas as restries.

Como resolve-lo

Calcule o custo de material (custo inicial) e os custos operacionais (custo de eletricidade e eletricidade desperdiada) nas clulas F11 e F12. Mescle-as com as funes de penalidades definidas em F18:F20 para produzir um custo final forado na clula F22. Minimize essa clula-alvo usando o mtodo de soluo receita.

94

Transformador

Transporte
Qual seria o custo mnimo do transporte rodovirio de objetos a diferentes partes do pas? Este problema-padro foi expandido a partir de um exemplo mais antigo do Microsoft Solver. Minimizar os custos do transporte de mercadorias das fbricas aos depsitos perto de centros metropolitanos em que existe demanda, sem exceder o suprimento disponvel de cada fbrica e atendendo demanda de cada rea metropolitana. Para tornar o problema mais realista, os custos de transporte foram alterados para que no sejam mais lineares, mas dependam da quantidade de caminhes necessrios. Um caminho capaz de carregar at 6 objetos, portanto, o transporte de 14 objetos requer 3 caminhes (com carga de 6 + 6 + 2 objetos).
Arquivo de exemplo: Meta: Mtodo de soluo: Problemas similares: Transporte.xls Transportar objetos de trs fbricas para cinco depsitos pelo menor custo possvel. Receita Projetar redes de comunicao

Captulo 4: Exemplos de Aplicaes

95

Como o modelo funciona

As clulas C5:G7 contm o nmero de objetos enviados de uma fbrica para cada depsito. As clulas 13:G13 calculam o nmero de caminhes necessrios para transportar os objetos. As restries rgidas so: 1) o total enviado de cada fbrica deve ser menor que ou igual ao estoque disponvel na fbrica; 2) o total enviado de todas as fbricas para cada depsito deve ser maior que ou igual quantia exigida pelo depsito. Isso garante que todos os depsitos recebero o que precisam, e que nenhuma fbrica ficar sobrecarregada. Utilize o mtodo de soluo receita nas clulas C5:G7, com nmeros inteiros entre 0 e 500. Um conjunto de restries rgidas inserido para cada fbrica, especificando que a remessa das fbricas seja <= estoque da fbrica. Um segundo conjunto de restries rgidas inserido para cada depsito, especificando que o total das remessas para o depsito deve ser >= demanda do depsito. Minimize os custos de remessa na clula B22.

Como encontrar a soluo

96

Transporte

Captulo 5: Guia de Referncia do Evolver


Comando Definio do modelo.......................................................99 Intervalos de clulas ajustveis .........................................................101 Grupos de clulas ajustveis..............................................................104 Mtodo de soluo oramento .............................................109 Mtodo de soluo agendamento........................................111 Taxa de crossover e mutao ....................................................113 Nmero de blocos de tempo e clulas com restries .........115 Tarefas precedentes ...................................................................115 Restries...............................................................................................118 Adicionar Como inserir restries .......................................118 Restries simples e de frmula..............................................119 Comando Configuraes de otimizao ......................................123 Comando Configuraes de otimizao Guia Geral ..................123 Comando Configuraes de otimizao Guia Tempo de execuo..............................................................................................124 Comando Configuraes de otimizao Guia Visualizar..........127 Comando Configuraes de otimizao Guia Macros ...............128 Comando Iniciar otimizao ..........................................................129 Comandos Utilidades .....................................................................131 Comando Configuraes da aplicao .............................................131 Comando Solver de restries ...........................................................132 Observador do Evolver ..................................................................135 Observador do Evolver Guia Progresso........................................136 Observador do Evolver Guia Sumrio ..........................................138 Observador do Evolver Guia Registro ..........................................139 Observador do Evolver Guia Populao.......................................140 Observador do Evolver Guia Diversidade ...................................141 Observador do Evolver Guia Condies de parada....................142

Captulo 5: Guia de Referncia do Evolver

97

98

Comando Definio do modelo


Define a meta, as clulas ajustveis e as restries de um modelo
Selecionar o comando Definio do modelo do Evolver (ou clicar no cone Modelo, na barra de ferramentas do Evolver) faz com que seja exibida a caixa de dilogo Modelo.

Caixa de dilogo Modelo do Evolver

A caixa de dilogo Modelo do Evolver usada para especificar ou descrever um problema de otimizao para o Evolver. Essa caixa de dilogo comea vazia em cada nova pasta de trabalho do Excel, mas salva as informaes nela contidas junto com cada pasta de trabalho. Isso significa que quando a planilha aberta novamente, ela estar preenchida da mesma forma que antes. Cada componente da caixa de dilogo descrito nesta seo.

Captulo 5: Guia de Referncia do Evolver

99

As opes da caixa de dilogo Modelo so: Objetivo da otimizao. A opo Objetivo da otimizao define o tipo de resposta que o Evolver deve procurar. Se for selecionado Mnimo, o Evolver procurar valores de variveis que produzem o menor valor possvel na clula-alvo (at -1e300). Se for selecionado Mximo, o Evolver procurar valores de variveis que produzem o maior valor possvel na clula-alvo (at +1e300). Se for selecionado Valor alvo, o Evolver procurar valores de variveis que produzem o valor mais prximo possvel do valor especificado pelo usurio. Quando o Evolver encontra uma soluo que produz esse resultado, ele pra automaticamente. Por exemplo, se voc especificar que o Evolver deve encontrar o resultado mais prximo de 14, ele poder encontrar cenrios que resultem em um valor como 13,7 ou 14,5. Observe que 13,7 mais prximo de 14 do que 14,5. Para o Evolver, no importa se o valor maior ou menos do que o valor especificado, importa apenas qual o valor mais prximo. Clula. A clula ou clula-alvo contm o output do seu modelo. Ser gerado um valor para esta clula em cada soluo-teste gerada pelo Evolver (isto , cada combinao de valores possveis de clulas ajustveis). A clula-alvo deve conter uma frmula que depende (diretamente ou por meio de uma srie de clculos) das clulas ajustveis. Esta frmula pode ser criada com base em frmulas padro do Excel, como SOMA(), ou de funes de macro VBA definidas pelo usurio. Ao usar funes de macro VBA, voc pode especificar que o Evolver avalie os modelos muito complexos. Ao procurar uma soluo, o Evolver usa o valor da clula-alvo como uma classificao ou funo objetivo para avaliar a adequao de cada cenrio possvel e determinar que valores de variveis devem continuar se reproduzindo de modo cruzado e quais devem morrer. Na evoluo biolgica, morte a funo objetivo que determina que genes continuaro a se reproduzir na populao. Ao construir o seu modelo, a clula-alvo precisa representar a aptido ou adequao de qualquer cenrio especfico, para que conforme o Evolver calcule as possibilidades, ele possa medir com exatido como est progredindo na busca da melhor soluo.

100

Comando Definio do modelo

Intervalos de clulas ajustveis


A tabela Intervalos de clulas ajustveis apresenta todos os intervalos que contm clulas ou valores que o Evolver pode ajustar, e a descrio de cada clula, conforme voc as inseriu. Cada conjunto de clulas ajustveis apresentado em uma linha horizontal. Um ou mais intervalos de clulas ajustveis podem ser includos em um grupo de clulas ajustveis. Todos os intervalos de clulas de um grupo de clulas ajustveis usam o mesmo mtodo de soluo, taxa de crossover, taxa de mutao e operadores.

Como as clulas ajustveis contm as variveis do problema, voc precisa definir pelo menos um grupo de clulas ajustveis para poder usar o Evolver. A maioria dos problemas descrita com apenas um grupo de clulas ajustveis, mas problemas mais complexos podem exigir a soluo de diversos blocos de variveis por diferentes mtodos de soluo simultaneamente. Essa arquitetura exclusiva permite construir com facilidade a estrutura de problemas extremamente complexos, a partir de vrios grupos de clulas ajustveis. As seguintes opes esto disponveis para a entrada de intervalos de clulas ajustveis: Adicionar. Voc pode adicionar novas clulas ajustveis, clicando no boto Adicionar ao lado da caixa de listagem Clulas ajustveis. Selecione a clula ou intervalo de clulas a ser adicionado; aparecer uma nova linha na tabela Intervalos de clulas ajustveis. Na tabela, voc pode inserir um valor Mnimo e um valor Mximo para as clulas do intervalo, e o tipo de valores a ser testado: valores inteiros em todo o intervalo ou qualquer valor.

Captulo 5: Guia de Referncia do Evolver

101

Mnimo e Mximo. Aps especificar o local das clulas ajustveis, defina as entradas de Mnimo e Mximo para especificar o intervalo aceitvel para cada clula ajustvel. Por definio padro, cada clula ajustvel assume como valor um nmero real (ponto flutuante de preciso dupla) entre infinito e +infinito. As configuraes de intervalo so restries que so rigorosamente impostas. O Evolver no permite que nenhuma varivel assuma um valor fora do intervalo definido. Sugerimos que, sempre que possvel, voc defina intervalos mais especficos para as variveis, a fim de otimizar o desempenho do Evolver. Por exemplo, faa isso se voc souber que o nmero no pode ser negativo, ou que o Evolver deve tentar usar apenas valores entre 50 e 70 para determinada varivel.

Intervalo. A referncia da clula ou clulas a serem ajustadas especificada no campo Intervalo. Essa referncia pode ser especificada selecionando-se a regio da planilha com o mouse, ou inserindo um nome de intervalo ou, ainda, digitando uma referncia vlida no Excel, como Planilha1!A1:B8. O campo Intervalo pode ser usado com todos os mtodos de soluo. Contudo, para os mtodos de receita e oramento, as opes Mnimo, Mximo e Valores podem ser acrescentadas, a fim de permitir a insero de um intervalo de clulas ajustveis. NOTA: Ao definir intervalos menores para as variveis, voc restringe o mbito da busca e acelera a convergncia do Evolver para encontrar uma soluo. Mas tenha cuidado para no restringir demais os intervalos de variveis, para no impedir que o Evolver encontre as melhores solues possveis.

Valores. O item Valores permite especificar se o Evolver deve tratar todas as variveis do intervalo definido como nmeros inteiros (ex.: 22), em vez de como nmeros reais (ex.: 22,395). Essa opo s pode ser usada com os mtodos de soluo receita e oramento. A definio padro o tratamento das variveis como nmeros reais.

102

Comando Definio do modelo

Se o seu modelo usar variveis para procurar itens em tabelas (PROCH(), PROCV(), NDICE(), DESLOC() etc.), escolha a definio de nmeros Inteiros. Observe que a definio Inteiros aplicada a todas as variveis do intervalo selecionado. Se quiser que algumas variveis sejam tratadas como nmeros reais e outras como nmeros inteiros, crie dois grupos de clulas ajustveis em vez de apenas um, e, neste caso, um bloco pode ser tratado como nmeros inteiros e o outro como nmeros reais. Para fazer isso, basta Adicionar um grupo de receita de clulas ajustveis e deixar a o item Valores definido como Qualquer. Em seguida, s Adicionar outro intervalo de clulas e, desta vez, selecionar Inteiros e somente as clulas ajustveis com nmeros inteiros.

Captulo 5: Guia de Referncia do Evolver

103

Grupos de clulas ajustveis


Cada grupo de clulas ajustveis pode conter vrios intervalos de clulas ajustveis. Isso permite criar uma hierarquia de grupos de clulas ajustveis relacionadas. Dentro de cada grupo, cada intervalo de clula pode ter sua prpria restrio de mnimo e mximo. Todos os intervalos de clulas de um grupo de clulas ajustveis usam o mesmo mtodo de soluo, taxa de crossover, taxa de mutao e operadores. Essa configuraes so definidas na caixa de dilogo Configuraes de grupos de clulas ajustveis. Essa caixa de dilogo acessada por meio do boto Grupo, ao lado da tabela Intervalos de clulas ajustveis. Voc pode criar um novo Grupo ao qual pode adicionar intervalos de clulas ajustveis, ou pode editar as configuraes de um grupo existente.

As opes da guia Geral da caixa de dilogo Configuraes de grupos de clulas ajustveis so: Descrio. Descreve o grupo de intervalos de clulas ajustveis para uso em caixas de dilogos e relatrios. Mtodo de soluo. Seleciona o mtodo de soluo a ser usado para cada intervalo de clulas ajustveis do grupo.

104

Comando Definio do modelo

Ao selecionar um intervalo de clulas a serem ajustadas pelo Evolver, voc tambm pode especificar o mtodo de soluo que deseja aplicar ao ajustar as clulas. Essencialmente, cada mtodo de soluo um algoritmo gentico totalmente diferente, com suas prprias rotinas otimizadas de seleo, crossover e mutao. Cada mtodo de soluo manipula os valores das variveis de uma forma diferente. O mtodo de soluo receita, por exemplo, trata cada varivel selecionada como um ingrediente de uma receita; o valor de cada varivel pode ser alterado independentemente dos valores das outras. O mtodo de soluo ordem, por sua vez, troca os valores das variveis das clulas ajustveis, mudando a ordem dos valores originais. O Evolver tem seis mtodos de soluo. Trs desses mtodos (receita, ordem e agrupamento) usam algoritmos totalmente distintos. Os outros trs mtodos so descendentes dos primeiros trs, mas usam restries adicionais. A prxima seo descreve a funo de cada mtodo de soluo. Para entender melhor como cada mtodo de soluo usado, sugerimos examinar os arquivos de exemplo fornecidos com o software (consulte o Captulo 4: Exemplos de Aplicaes).

Captulo 5: Guia de Referncia do Evolver

105

Mtodo de soluo receita

O mtodo de soluo receita o mtodo de soluo mais simples e mais usado. Use este mtodo sempre que o conjunto de variveis a serem ajustadas possam ser variadas independentemente umas das outras. Pense em cada varivel como a quantidade de determinado ingrediente de um bolo; ao usar o mtodo receita voc est instruindo o Evolver a gerar nmeros para essas variveis, a fim de encontrar a melhor combinao de ingredientes. A nica restrio usada nas variveis da receita definir o intervalo (o valor mais alto e o mais baixo) dentro do qual os valores devem se enquadrar. Defina esses valores nos campos Mn e Mx da caixa de dilogo Clulas ajustveis (ex.: 1 a 100), e indique se o Evolver deve procurar apenas nmeros inteiros (1; 2; 7) ou nmeros reais (1,4230024; 63,72442). A seguir, apresentamos exemplos de um conjunto de valores de variveis da forma como podem aparecer em uma planilha antes do processamento pelo Evolver, e dois novos cenrios que poderiam ser apresentados depois de usar o mtodo de soluo receita.
Conjunto original de valores das variveis 23,472 145 9 65.664 Conjunto de possveis valores de receita 15,344 101 32,44 14.021 Outro conjunto de possveis valores de receita 37,452 190 7,073 93.572

106

Comando Definio do modelo

Mtodo de soluo ordem

O mtodo de soluo ordem o segundo mtodo mais usado depois de receita. Ordem consiste na permutao de uma lista de itens em que voc tenta encontrar a melhor forma de organizar determinado conjunto de valores. Diferentemente dos mtodos de soluo receita e oramento, que instruem o Evolver a gerar valores para as variveis escolhidas, este mtodo de soluo instrui o Evolver a usar os valores j existentes no modelo. A ordem pode representar a ordem de execuo de um conjunto de tarefas. Por exemplo, digamos que voc queira saber em que ordem deve realizar cinco tarefas, numeradas como 1, 2, 3, 4 e 5. O mtodo de soluo ordem embaralha esses valores; assim, um dos cenrios poderia ser 3,5,2,4,1. Como o Evolver simplesmente experimenta com os valores de variveis da sua planilha inicial, no necessrio definir o intervalo mnimo-mximo das clulas ajustveis ao se usar o mtodo ordem. A seguir, apresentamos exemplos de um conjunto de valores de variveis da forma como podem aparecer em uma planilha antes do processamento pelo Evolver, e dois novos cenrios que poderiam ser apresentados depois de usar o mtodo de soluo ordem.
Conjunto original de valores das variveis 23,472 145 9 65.664 Conjunto de possveis valores de ordem 145 23,472 65.664 9 Outro conjunto de possveis valores de ordem 65.664 9 145 23,472

Captulo 5: Guia de Referncia do Evolver

107

Mtodo de soluo agrupamento

O mtodo de soluo agrupamento deve ser usado para resolver problemas com mltiplas variveis que precisam ser agrupadas em conjuntos. O nmero de grupos criados pelo Evolver ser igual ao nmero de valores nicos presentes nas clulas ajustveis no incio da otimizao. Portanto, ao criar um modelo do seu sistema, assegure-se de que cada grupo seja representado pelo menos uma vez. Por exemplo, vamos supor que estamos usando um intervalo de 50 clulas que contm apenas os valores 2, 3,5 e 17. Ao selecionar as 50 clulas e ajustar os valores com o mtodo de soluo agrupamento, o Evolver colocar cada uma das 50 clulas em um dos trs grupos: 2, 3,5 ou 17. Todos os grupos so representados por, no mnimo, uma clula ajustvel; como se voc jogasse cada uma das 50 variveis em diferentes caixas e verificasse se h pelo menos uma varivel em cada caixa. Outro exemplo seria: em um sistema de negociao de aes, designar os valores 1, 0 e -1 s posio comprar, vender, reter. Da mesma forma que com o mtodo de soluo ordem, neste caso tambm o Evolver organiza os valores j existentes, portanto no h necessidade de definir o intervalo mn-mx nem a opo de nmeros inteiros. NOTA: Ao usar o mtodo de soluo agrupamento, no deixe nenhuma clula em branco, a menos que queira que 0,0 seja considerado um dos grupos. Talvez voc note que poderia ser feita uma aproximao do mtodo de soluo agrupamento usando-se o mtodo receita com a opo de nmeros inteiros selecionada e os intervalos definidos como de 1 a 3 (ou de modo correspondente ao nmero de grupos existente). A diferena que as buscas efetuadas pelo mtodo receita e pelo mtodo agrupamento so distintas. As rotinas de seleo, mutao e crossover so diferentes; o mtodo agrupamento muito mais direcionado aos valores de todas as variveis, porque ele pode trocar um conjunto de variveis de um grupo por um conjunto de variveis de outro grupo.

108

Comando Definio do modelo

A seguir, apresentamos exemplos de um conjunto de valores de variveis da forma como poderiam aparecer em uma planilha antes do processamento pelo Evolver, e dois novos cenrios que poderiam ser apresentados depois de usar o mtodo de soluo agrupamento.
Conjunto original de valores das variveis 6 7 8 8 Mtodo de soluo oramento Conjunto de possveis Outro conjunto de valores de possveis valores de agrupamento agrupamento 6 6 8 7 8 7 6 7

O mtodo oramento semelhante a receita, mas nele, o valor total das variveis precisa ser um nmero especfico. Esse nmero corresponde ao valor total das variveis no momento em que a otimizao foi iniciada. Suponhamos, por exemplo, que voc queria saber qual a melhor maneira de distribuir um oramento anual entre vrios departamentos. O mtodo de soluo oramento pega o total dos valores atuais dos departamentos e usa a soma desses valores como oramento total a ser distribudo da melhor forma possvel. A seguir, apresentamos exemplos de dois possveis cenrios aps usar o mtodo de soluo oramento.
Conjunto original de valores de oramento 200 3,5 10 10 Conjunto de possveis valores de oramento 93,1 30 100 0,4 Outro conjunto de possveis valores de oramento 223,5 0 -67 67

Muitos valores so experimentados, mas a soma de todos eles sempre 223,5.

Captulo 5: Guia de Referncia do Evolver

109

Mtodo de soluo projeto

O mtodo de soluo projeto semelhante ao mtodo ordem, exceto pelo fato de que certos itens (tarefas) precisam preceder outros na execuo. O mtodo de soluo projeto pode ser usado no gerenciamento de projetos, para reorganizar a ordem em que as tarefas so realizadas; contudo, a ordem sempre precisa obedecer as restries de precedncia. Um problema modelado com o mtodo de soluo projeto muito mais fcil de trabalhar e entender se as clulas ajustveis contiverem a ordem das tarefas em uma mesma coluna, em vez de em uma linha. Isso ocorre porque o mtodo de soluo prev que as clulas de tarefas precedentes sero organizadas na vertical, e no na horizontal; por isso, mais fcil examinar a planilha se as clulas ajustveis forem colocadas na vertical. Aps especificar o local das clulas ajustveis, ser necessrio especificar o local das clulas de tarefas precedentes, na seo Tarefas precedentes da caixa de dilogo. Na tabela abaixo, as clulas descrevem as tarefas que necessitam ser precedidas por outras tarefas especficas. O mtodo de soluo usa esta tabela para reorganizar a ordem das variveis e criar um cenrio que obedea as restries de precedncia. O intervalo de tarefas precedentes deve conter uma linha para cada tarefa indicada nas clulas ajustveis. Comeando na primeira coluna do intervalo de tarefas precedentes, o nmero identificador de cada tarefa da qual a tarefa da linha depende deve ser colocado em colunas separadas.

Exemplo de como dispor as tarefas precedentes ao usar o mtodo de soluo projeto.

O intervalo de tarefas precedentes deve ser especificado como n linhas por m colunas, sendo que n o nmero de tarefas do projeto (clula ajustveis) e m o maior nmero de tarefas precedentes de qualquer tarefa especfica.

110

Comando Definio do modelo

A seguir, apresentamos exemplos de um conjunto de valores de variveis da forma como poderiam aparecer em uma planilha antes do processamento pelo Evolver, e dois novos cenrios que poderiam ser apresentados depois de usar o mtodo de soluo projeto, com a restrio de que 3 deve sempre vir depois de 1, e 4 deve sempre vir depois de 2.
Conjunto original de valores das variveis 1 2 3 4 Mtodo de soluo agendamento Conjunto de possveis Outro conjunto de valores de projeto possveis valores de projeto 1 3 2 4 1 2 4 3

O mtodo agendamento semelhante ao mtodo agrupamento; trata-se de designar tarefas a intervalos de tempo. Pressupe-se que cada tem a mesma durao, da mesma forma como cada aula escolar tem a mesma durao. Ao contrrio do agrupamento, no entanto, ao se usar o mtodo de soluo agendamento, a caixa de dilogo Grupo de clulas ajustveis permite especificar diretamente o nmero de blocos de tempo (ou grupos) a serem usados. Ao selecionar o mtodo de soluo agendamento, observe que vrias opes relacionadas aparecem na parte inferior da caixa de dilogo.

Na seo Parmetros de otimizao, observe que pode ser includo um intervalo de clulas com restrio. Esse intervalo pode ser de qualquer comprimento, mas precisa ter exatamente trs colunas de largura. So aceitos oito tipos de restries: 1) (com) As tarefas na primeira e na terceira coluna precisam ocorrer no mesmo bloco de tempo. 2) (no ao mesmo tempo) As tarefas na primeira e na terceira coluna no podem ocorrer no mesmo bloco de tempo. 3) (antes) A tarefa na primeira coluna precisa ocorrer antes da tarefa na terceira coluna.
Captulo 5: Guia de Referncia do Evolver 111

4) (em) A tarefa na primeira coluna precisa ocorrer antes da tarefa na terceira coluna. 5) (no aps) A tarefa na primeira coluna precisa ocorrer ao mesmo tempo ou antes da tarefa na terceira coluna. 6) (no antes) A tarefa na primeira coluna precisa ocorrer ao mesmo tempo ou depois da tarefa na terceira coluna. 7) (no em) A tarefa na primeira coluna no pode ocorrer durante o bloco de tempo da terceira coluna. 8) (aps) A tarefa na primeira coluna precisa ocorrer depois da tarefa na terceira coluna. Voc pode inserir como restrio um cdigo numrico (de 1 a 8) ou a descrio por extenso (aps, no em, etc.). (Nota: No que se refere insero de restries, as verses do RiskOptimizer em todos os idiomas reconhecem a descrio em ingls e na forma traduzida. Todas as restries especificadas no problema sero atendidas. Para criar restries, procure um espao em branco na planilha e crie uma tabela; nessa tabela, as colunas da esquerda e da direita representam tarefas e a coluna do meio representa os tipos de restries. Um nmero entre 1 e 8 representa o tipo de restrio mencionada acima. Antes de comear a otimizao, necessrio que as clulas do intervalo de restrio contenham os dados da restrio.
Esta tarefa 5 12 2 7 6 9 Restrio 4 2 3 1 2 3 Esta tarefa 2 8 1 5 4 1

112

Comando Definio do modelo

A seguir, apresentamos exemplos de um conjunto de valores de variveis da forma como poderiam aparecer em uma planilha antes do processamento pelo Evolver, e dois novos cenrios que poderiam ser apresentados depois de usar o mtodo de soluo agendamento.
Conjunto original de valores das variveis 1 2 3 1 2 3 Conjunto de possveis Outro conjunto de valores de possveis valores de agendamento agendamento 1 1 3 1 2 3 1 3 1 2 2 2

NOTA: Com o mtodo de soluo agendamento, sempre so usados nmeros inteiros, a partir de 1 (1,2,3...), independentemente dos valores originais contidos nas clulas ajustveis.
Taxa de crossover e mutao

Um dos problemas mais difceis ao procurar a melhor soluo para problemas que aparentemente tm infinitas possibilidades, saber no que se concentrar. Em outras palavras, quanto tempo computacional deve ser dedicado a buscas em novas reas do espao de soluo, e quanto tempo deve ser dedicado a refinar as solues j encontradas que j foram comprovadas como adequadas? Grande parte do sucesso do algoritmo gentico atribuda sua capacidade inerente de manter esse equilbrio. A estrutura do algoritmo gentico permite que as boas solues se reproduzam, mas, ao mesmo tempo, ela mantm organismos menos aptos por perto, para preservar a diversidade, na esperana de que possa haver um gene mais relevante para a soluo final.

Captulo 5: Guia de Referncia do Evolver

113

Crossover e Mutao so dois parmetros que afetam o escopo da busca; no Evolver o usurio pode mudar esses parmetros antes e durante o processo evolutivo. Assim, um usurio com mais conhecimento pode ajudar o algoritmo gentico a decidir onde concentrar a sua energia. Para a maioria das finalidades, as configuraes padro de crossover e mutao (respectivamente; 5 e 1), no precisam ser ajustadas. Se voc quiser fazer um ajuste fino do algoritmo em funo do seu problema especfico, faa estudos comparativos ou, simplesmente, experimente. A seguir apresentamos uma breve introduo a esses dois parmetros: Crossover. A taxa de crossover pode ser definida entre 0,01 e 1,0; ela representa a probabilidade de que futuros cenrios ou organismos'' contero uma mescla de informaes da gerao anterior de organismos pais ou genitores. Essa taxa pode ser modificada por usurios experientes para otimizar o desempenho do Evolver ao resolver problemas complexos. Em outras palavras: uma taxa de 0,5 significa que um indivduo, ou organismo filho, conter cerca de 50% dos valores variveis de um dos genitores e o restante dos valores do outro. Uma taxa de 0,9 significa que cerca de 90% dos valores de um indivduo, ou organismo filho, ser proveniente do primeiro genitor e 10% do segundo. Uma taxa de 1 significa que no ir ocorrer crossover, portanto, s sero avaliados os clones dos genitores. A taxa padro usada pelo Evolver 0,5. Se o Evolver j tiver comeado a resolver o problema, voc pode mudar a taxa de crossover usando o Observador do Evolver (consulte a seo Observador do Evolver, neste captulo). Taxa de Mutao. A taxa de mutao pode ser definida entre 0,0 e 1,0; ela representa a probabilidade de futuros cenrios conterem alguns valores aleatrios. Uma taxa de mutao mais alta simplesmente significa que mais mutaes ou valores aleatrios de genes so introduzidos na populao. Como a mutao ocorre depois do crossover, a definio da taxa de mutao como 1 (100% de valores aleatrios) efetivamente impede o efeito de crossover, e o Evolver, nesse caso, gera cenrios totalmente aleatrios. Se todos os dados da soluo tima (a melhor soluo possvel) se encontrarem na populao, ento o operador de crossover por si s no ser suficiente para chegar a uma soluo. No mundo biolgico, a mutao demonstrou ser uma fora poderosa devido a vrios fatores, e esses mesmos fatores a tornam necessria nos algoritmos genticos. vital manter a diversidade da populao
114 Comando Definio do modelo

de organismos individuais, e assim evitar que a populao se torne rgida e incapaz de se adaptar a um ambiente dinmico. Da mesma forma que no algoritmo gentico, geralmente as mutaes genticas que ocorrem em animais eventualmente levam ao desenvolvimento de novas funes cruciais. Para a maioria das finalidades, a definio padro de mutao no precisa ser ajustada; contudo, usurios experientes podem fazer um ajuste fino para otimizar o desempenho do Evolver em problemas complexos. O usurio talvez queira aumentar a taxa de mutao, caso a populao usada pelo Evolver seja razoavelmente homognea e nenhuma soluo tiver sido encontrada nas ltimas centenas de tentativas. As mudanas tpicas desta definio variam de 0,06 a 0,2. Se o Evolver j tiver comeado a resolver o problema, voc pode mudar a taxa de mutao usando o Observador do Evolver (consulte a seo Observador do Evolver, neste captulo). Selecione Auto na lista suspensa do campo da taxa de mutao para que ela seja ajustada automaticamente. O ajuste automtico da taxa de mutao permite que o Evolver aumente a taxa automaticamente quando um organismo envelhece significativamente, isto , permanece no mesmo lugar no decorrer de um grande nmero de tentativas. Em muitos modelos, especialmente em casos em que no se sabe qual a taxa de mutao, selecionar Auto pode produzir melhores resultados com mais rapidez.
Nmero de blocos de tempo e clulas com restries Tarefas precedentes

Para obter mais informaes sobre estas opes, consulte o mtodo Agendamento, na seo Mtodos de soluo deste captulo. Para obter mais informaes sobre estas opes, consulte o mtodo Projeto, na seo Mtodos de soluo deste captulo.

Captulo 5: Guia de Referncia do Evolver

115

Operadores

O Evolver contm operadores genticos selecionveis que podem ser usados com o mtodo de soluo receita. Clique na guia Operadores na caixa de dilogo Configuraes de grupos de clulas ajustveis, para selecionar um operador gentico especfico (ex.: crossover heurstico ou mutao boundary) a ser usado para gerar os valores possveis para um conjunto de clulas ajustveis. Voc tambm pode instruir o Evolver a testar automaticamente todos os operadores disponveis e identificar o que produz o melhor desempenho para o problema.

Algoritmos genticos usam operadores genticos para criar novos indivduos na populao, com base nos indivduos existentes. Dois tipos de operadores genticos empregados pelo Evolver so: mutao e crossover. O operador de mutao determina se mudanas aleatrias nos genes (variveis) ocorrero, e de que forma ocorrero. O operador de crossover determina de que forma pares de indivduos da populao trocam material gentico para produzir novos indivduos, os quais podem vir a ser melhores solues dos que os dois genitores. O Evolver oferece os seguintes operadores genticos especializados: Crossover aritmtico Cria um novo indivduo por meio da combinao aritmtica de dois genitores (em vez de pela troca de genes). Crossover heurstico Usa valores produzidos pelos genitores para determinar como ser produzido o novo indivduo. Ele efetua a busca nas direes mais promissoras e faz ajuste fino local.
Comando Definio do modelo

116

Mutao Cauchy Mutao elaborada para produzir pequenas mudanas nas variveis, na maioria das vezes, mas ocasionalmente pode produzir grandes mudanas. Mutao boundary Mutao elaborada para otimizar rapidamente as variveis que afetam o resultado, de modo monotnico; pode ser definida nos extremos do intervalo sem infringir restries. Mutao no uniforme Produz mutaes cada vez menores medida que so calculadas mais tentativas. Isso permite que o Evolver faa um ajuste fino das respostas. Linear Mutao elaborada para solucionar problemas nos quais a melhor soluo se encontra nos limites do espao de busca definido pelas restries. Este par de operadores de mutao e crossover muito til para solucionar problemas de otimizao lineares. Busca local Projetado para pesquisar o espao de soluo nas proximidades de uma soluo anterior, expandindo-se nas direes que produzem melhorias e contraindo-se nas direes que produzem resultados piores.

Dependendo do tipo de problema de otimizao, certas combinaes de operadores de mutao e crossover podem fornecer melhores resultados que outras. Na guia Operadores da caixa de dilogo Configuraes do grupo de clulas ajustveis, ao usar o mtodo de soluo Receita, qualquer nmero de operadores pode ser selecionado. Quando forem feitas mltiplas selees, o Evolver testar as combinaes vlidas dos operadores selecionados para identificar quais apresentaro o melhor desempenho para o seu modelo. Aps uma execuo, a planilha de Resumo da otimizao classifica cada operador selecionado de acordo com o seu desempenho durante a execuo. Em execues subsequentes do mesmo modelo, selecionar apenas os melhores operadores poder produzir otimizaes mais rpidas e melhores. NOTA: Ao criar mltiplos grupos de clulas ajustveis, assegure-se de que nenhuma clula da planilha esteja includa em diferentes grupos de clulas ajustveis. Cada grupo de clulas ajustveis deve conter clulas ajustveis nicas, porque os valores contidos no primeiro grupo de clulas seriam ignorados e sobrescritos pelos valores contidos no segundo grupo de clulas ajustveis. Se achar que um problema deva ser representado por mais de um mtodo de soluo, pense em como dividir as variveis em dois ou mais grupos.

Captulo 5: Guia de Referncia do Evolver

117

Restries
O Evolver permite definir restries ou condies que precisam ser satisfeitas para que a soluo seja vlida. As restries inseridas so exibidas na tabela Restries, na caixa de dilogo Definio do modelo.

Adicionar Como inserir restries

Clicar no boto Adicionar prximo tabela Restries exibe a caixa de dilogo Configuraes de restries, na qual as restries so inseridas Nesta caixa de dilogo, voc pode inserir o tipo de restrio desejada, a descrio correspondente, o tipo, definio e tempo de avaliao.

118

Comando Definio do modelo

Tipo de restrio

Podem ser definidos dois tipos de restries no Evolver: Hard (rgidas) so condies que precisam obrigatoriamente ser atendidas para que a soluo seja vlida (ex.: uma restrio rgida de iterao poderia ser C10<=A4; neste caso, se a soluo gerar um valor maior que o da clula A4 para a clula C10, a soluo ser descartada). Soft (lexveis) so condies que devem ser atendidas tanto quanto possvel, mas que aceitamos trocar por uma grande melhoria no resultado da clula-alvo ou funo objetivo (ex.: uma restrio flexvel ou soft poderia ser C10<100; mas C10 poderia ser maior que 100 se, quando isso ocorresse, o valor calculado da clula-alvo fosse reduzido de acordo com a funo de penalidade que voc inseriu).

Restries simples e de frmula

Podem ser usados dois formatos para definir restries: Simples e Frmula. O tipo de informao que pode ser inserida como restrio depende do formato selecionado. Formato Simples O formato Simples permite inserir restries usando relaes simples <, <=, >, >= ou =, pelas quais uma clula comparada a um nmero inserido. Uma restrio Simples tpica seria: 0<Valor de A1<10 onde A1 inserido na caixa Intervalo da clula, 0 inserido na caixa Mn e 10 inserido na caixa Mx. O operador desejado selecionado nas caixas da lista suspensa. Com o formato de restrio simples de intervalo de valores, voc pode inserir apenas um valor Mn, apenas um valor Mx ou ambos. Os valores Mn e Mx inseridos precisam ser valores numricos, no formato de restrio de intervalo de valores simples. Formato Frmula O formato Frmula permite inserir qualquer frmula vlida do Excel como restrio; por exemplo: A19<(1,2*E7)+E8. O Evolver confere se a frmula inserida avaliada como VERDADEIRO ou FALSO, para saber se a restrio foi atendida.

Captulo 5: Guia de Referncia do Evolver

119

Restries flexveis

Restries flexveis ou soft so condies que, de preferncia, devem ser atendidas na mxima medida possvel, mas que podem ser ajustadas em funo de uma melhoria substancial na adequao ou no resultado da clula-alvo. Quando uma restrio flexvel no atendida, ela produz uma mudana no resultado da clula-alvo no sentido oposto ao valor timo. A quantidade de mudana produzida por uma restrio flexvel no atendida calculada por meio de uma funo de penalidade que inserida ao se especificar a restrio flexvel.

Mais informaes sobre as funes de penalidade so apresentadas a seguir: Como inserir uma funo de penalidade. O Evolver tem uma funo penalidade padro que exibida quando voc insere inicialmente uma restrio flexvel. No entanto, qualquer frmula vlida do Excel pode ser inserida para calcular a quantidade de penalidade a ser aplicada quando a restrio flexvel (soft) no atendida. Uma funo de penalidade inserida deve incluir a palavra-chave desvio, que representa a quantidade absoluta pela qual a restrio ultrapassou o limite estabelecido. No final de cada simulao de uma soluo teste o Evolver verifica se a restrio flexvel foi atendida; se no foi, ele insere a quantidade de desvio na frmula da funo de penalidade e calcula o valor da penalidade a ser aplicada na estatstica da clula-alvo. O valor da penalidade pode ser subtrado ou somado estatstica calculada da clula-alvo, de forma a torn-la menos tima. Por exemplo, se no campo Objetivo da otimizao, da caixa de dilogo Modelo do Evolver, tiver sido escolhido Mximo, a penalidade ser subtrada da estatstica calculada para a clula-alvo.
120 Comando Definio do modelo

Como visualizar os efeitos de uma funo de penalidade inserida. O Evolver inclui uma planilha Excel chamada Penalidade.xls que pode ser usada para avaliar os efeitos de diferentes funes de penalidade em restries flexveis especficas e resultados de clulas-alvo.

A planilha Penalidade.xls permite que voc selecione uma restrio flexvel no modelo, cujos efeitos deseja analisar. Voc pode ento alterar a funo de penalidade e verificar como a funo mapear um valor especfico da restrio flexvel no atendida em relao a um valor-alvo especfico penalizado. Por exemplo, se a restrio flexvel for A10<100, voc pode usar a planilha Penalidade.xls para verificar qual seria o valor do alvo se um valor de 105 fosse calculado para a clula A10.

Captulo 5: Guia de Referncia do Evolver

121

Como visualizar as penalidades aplicadas. Quando uma penalidade aplicada a uma clula-alvo devido a uma restrio flexvel no atendida, a quantidade de penalidade aplicada pode ser visualizada no Observador do Evolver. Alm disso, os valores de penalidades so exibidos nas planilhas de Registro de otimizao, criadas opcionalmente aps a otimizao.

NOTA: Se voc inserir uma soluo na planilha usando as opes Atualizar clulas ajustveis, da caixa de dilogo Parar, o resultado calculado da clula exibido na planilha no incluir nenhuma penalidade aplicada devido a restries flexveis no atendidas. Verifique na planilha de registro da otimizao qual foi o resultado de clula-alvo penalizado e a quantidade de penalidade imposta devido a cada restrio flexvel no atendida. Implementao de restries flexveis em frmulas da planilha. As funes de penalidade podem ser implementadas diretamente nas frmulas de sua planilha. Ao inserir restries flexveis diretamente na planilha, elas no devem ser inseridas na caixa de dilogo principal do Evolver. Para obter mais informaes sobre como inserir funes de penalidade em uma planilha, consulte a seo Restries flexveis (soft) no Captulo 8: Recursos Adicionais do Evolver.

122

Comando Definio do modelo

Comando Configuraes de otimizao


Comando Configuraes de otimizao Guia Geral
Define as configuraes gerais para uma otimizao.
A guia Geral da caixa de dilogo Configuraes de otimizao permite definir o tamanho da populao, a taxa de atualizao da tela e a semente de gerao do nmero aleatrio.

As opes de Parmetros de otimizao da guia Geral incluem: Tamanho da populao. O tamanho da populao informa ao Evolver quantos organismos (ou conjuntos completos de variveis) devem ser armazenados na memria a um dado momento. Embora ainda haja muito debate e pesquisa com relao ao tamanho timo de populao a ser utilizado em diferentes problemas, de modo geral recomendamos usar de 30 a 100 organismos na populao, dependendo do porte do problema (maiores populaes para maiores problemas). A noo comum que uma populao maior prolonga a busca da soluo, mas fornece maior probabilidade de encontrar uma resposta global devido maior diversidade de genes presentes. Semente do gerador de nmeros aleatrios. A opo Semente do gerador de nmeros aleatrios permite que voc defina o valor inicial da semente para o gerador de nmeros aleatrios usado no Evolver. Quando o mesmo valor de semente usado, a otimizao gera as mesmas exatas respostas para o mesmo modelo, contanto que este no tenha sido modificado. O valor da semente deve ser um nmero inteiro dentro do intervalo de 1 a 2147483647.
123

Captulo 5: Guia de Referncia do Evolver

Comando Configuraes de otimizao Guia Tempo de execuo


Define as configuraes de tempo de execuo de uma otimizao.
A guia Tempo de execuo da caixa de dilogo Configuraes de otimizao exibe configuraes do Evolver que determinam o tempo de execuo da otimizao. Estas condies de parada especificam como e quando o Evolver dever parar a otimizao. Aps selecionar o comando Iniciar otimizao, o Evolver rodar continuamente, buscando melhores solues e rodando simulaes at que o critrio de parada selecionado seja atendido. Voc pode acionar qualquer nmero de condies ou nenhuma, se desejar que o Evolver faa a busca indefinidamente (at voc par-la manualmente). Quando mltiplas condies so selecionadas, o Evolver pra assim que uma das condies atendida. Voc tambm pode ignorar essas restries e parar o Evolver manualmente a qualquer momento por meio do boto Parar, na janela do Observador do Evolver ou na janela Progresso.

124

Comando Configuraes de otimizao

Opes de tempo de execuo da otimizao

As opes de Tempo de execuo de otimizao da guia Tempo de execuo so: Tentativas Esta opo, quando definida, pra o Evolver aps ser gerado o nmero de tentativas especificado. A definio Tentativas especialmente til para comparar a eficincia do Evolver ao experimentar diferentes mtodos de modelagem. Ao mudar a forma de modelar um problema ou ao escolher um mtodo de soluo diferente, voc pode aumentar a eficincia do Evolver. Ao especificar que um modelo rode durante determinado nmero de simulaes, possvel saber com que grau de eficincia o Evolver converge em uma soluo, independentemente das diferenas no nmero de variveis escolhidas, velocidade do hardware utilizado ou taxa de atualizao da tela. A planilha de resumo de otimizao do Evolver tambm til para comparar os resultados de diversas execues. Para obter mais informao sobre as planilhas de resumo de otimizao, consulte a seo Observador do Evolver Condies de parada, neste captulo. Tempo Esta opo, quando definida, faz com que o Evolver pare de simular cenrios depois de decorrido dado nmero de horas, minutos ou segundos. Esta opo pode ser definida com qualquer nmero real positivo (600, 5,2 etc.). Progresso Esta opo, quando definida, faz com que o Evolver pare de simular cenrios quando a melhoria na clula-alvo for menor que a quantidade especificada (critrio de mudana). Voc pode definir o nmero de simulaes aps as quais deve ser verificada a ocorrncia de melhoria; esta definio deve ser um nmero inteiro. Um valor percentual (ex.: 1%) pode ser inserido como mxima mudana de valor, no campo Mxima mudana. Suponha que voc esteja tentando maximizar a mdia da clulaalvo e que, aps 500 simulaes, a melhor resposta encontrada seja 354,8. Se a opo Progresso for a nica condio de parada selecionada, o Evolver far uma pausa na simulao 600 e s continuar se tiver encontrado uma soluo melhor que 354,9 nas ltimas 100 simulaes. Em outras palavras, se as respostas do Evolver no tiverem melhorado pelo menos 0,1 nas ltimas 100 simulaes, o Evolver presumir que h pouca otimizao a ser feita e pra a busca. No caso de problemas mais complexos, sugerimos aumentar o nmero de simulaes executadas pelo Evolver (at 500) antes de decidir se h melhoria suficiente para continuar.

Captulo 5: Guia de Referncia do Evolver

125

Esta a condio mais usada de parada, porque fornece ao usurio uma forma eficaz de interromper o Evolver aps a taxa de melhoria ter cado bastante e o Evolver no conseguir mais gerar melhores solues. Se estiverem sendo exibidos os grficos dos melhores resultados na guia Progresso do Observador do Evolver, eles se tornaro planos aps certo tempo, antes da condio ser atendida e o Evolver parar. Progresso , na verdade, simplesmente uma forma automtica de fazer o que voc poderia fazer manualmente: deixar o grfico rodar at a taxa de melhoria praticamente zerar. Frmula verdadeira. Esta condio de parada faz com que a otimizao se encerre sempre que a frmula Excel inserida (ou referenciada) retorne VERDADEIRO durante a otimizao. Parar em erro. Esta condio de parada faz com que a otimizao se encerre sempre que um valor de erro calculado para a clulaalvo.

NOTA: Voc tambm pode deixar de selecionar uma condio de parada; neste caso, o Evolver rodar indefinidamente at voc pressionar o boto Parar na janela do Observador do Evolver.

126

Comando Configuraes de otimizao

Comando Configuraes de otimizao Guia Visualizar


Define as configuraes de visualizao de uma otimizao.
A guia Visualizar, na caixa de dilogo Configuraes de otimizao, permite definir o que ser exibido durante uma otimizao.

As opes da guia Visualizar so: Minimizar o Excel no incio. Esta opo minimiza o Excel quando uma otimizao iniciada. Exibir reclculos do Excel. Esta opo especifica que o Excel deve fazer uma atualizao A cada nova melhor simulao ou no final das simulaes, A cada simulao. Manter registro de todas as tentativas. Esta opo especifica que o Evolver mantenha um registro atualizado de cada nova simulao realizada. Este registro pode ser visto na janela do Observador do Evolver.

Captulo 5: Guia de Referncia do Evolver

127

Comando Configuraes de otimizao Guia Macros


Define macros a serem rodadas durante a otimizao.
Macros VBA podem ser rodadas em vrios pontos durante a otimizao e durante a execuo da simulao de cada soluo teste. Isto permite desenvolver clculos customizados que podem ser chamados durante a otimizao.

As macros podem ser executadas nos seguintes pontos de uma otimizao: No incio da otimizao a macro roda aps o cone Rodar ser clicado; antes da primeira soluo teste ser gerada. Antes do reclculo de cada tentativa a macro roda antes de cada reclculo executado. Aps o reclculo de cada tentativa a macro roda aps o reclculo de cada tentativa. Aps armazenar o output a macro roda aps cada tentativa executada e aps o valor da clula-alvo ser armazenado. No final da otimizao a macro roda quando a otimizao finalizada.

Esta funcionalidade permite que clculos que s podem ser efetuados usando uma macro sejam efetuados durante a otimizao. Exemplos de clculos realizados por macros so os clculos em loop iterativo e clculos que requerem novos dados de fontes externas. O Nome da macro especifica a macro a ser executada.
128 Comando Configuraes de otimizao

Comando Iniciar otimizao


Inicia uma otimizao.
Ao selecionar o comando Iniciar otimizao, ou clicar no cone Iniciar otimizao, iniciada uma otimizao do modelo e da pasta de trabalho ativa. Quando o Evolver est rodando, apresentada a janela Progresso:

A janela Progresso contm o seguinte: Tentativa ou o nmero de tentativas que foram executadas; Vlido indica o nmero de tentativas em que as restries foram atendidas. Tempo de execuo ou o tempo decorrido da execuo. Original ou o valor original da clula-alvo. Melhor ou o melhor valor atual da clula-alvo que est sendo minimizada ou maximizada.

Captulo 5: Guia de Referncia do Evolver

129

As opes da barra de ferramentas da janela Progresso do Evolver so: Exibir opes de atualizao do Excel. Esta opo selecionada para atualizar a tela do Excel A cada tentativa, Cada nova melhor tentativa ou Nunca. Note que em algumas situaes a tela ser atualizada independentemente destas configuraes, como quando a otimizao pausada. Exibir Observador do Evolver. Exibe a janela inteira do Observador do Evolver. Executar. Clicar no cone Executar faz com que o Evolver comece a buscar a soluo com base na descrio constante na caixa de dilogo Modelo do Evolver. Se voc pausar o Evolver, poder ainda clicar no cone Executar para continuar a busca de melhores solues. Pausar. Se voc quiser pausar o Evolver, basta clicar no cone Pausar para congelar temporariamente o processo do Evolver. Com o Evolver em pausa, voc pode abrir e explorar o Observador do Evolver e alterar parmetros, visualizar a populao completa, visualizar o relatrio de status ou copiar um grfico. Parar. Pra a otimizao.

130

Comando Iniciar otimizao

Comandos Utilidades
Comando Configuraes da aplicao
Exibe a caixa de dilogo Configuraes da aplicao, onde os valores padro do programa podem ser definidos. Muitas configuraes do Evolver podem ser definidas em valores padro que so usados sempre que o Evolver executado. Isso inclui Padres de parada, Crossover padro, Taxas de mutao e outras.

Captulo 5: Guia de Referncia do Evolver

131

Comando Solver de restries


Executa o Solver de restries O Solver de restries aumenta a capacidade do Evolver de lidar com as restries do modelo. Quando o Evolver executa uma otimizao, ele pressupe que os valores ajustveis originais da clula satisfazem todas as restries rgidas (hard), isto , que a soluo original vlida. Se esse no for o caso, o algoritmo poder executar um nmero muito grande de simulaes at encontrar a primeira soluo vlida. Contudo, se determinado modelo contiver vrias restries, nem sempre bvio quais valores de clulas ajustveis atendero as restries. Se o modelo do Evolver contiver vrias restries rgidas (hard) e a otimizao fracassar, isto , todas as solues forem invlidas, aparecer uma notificao; nesse caso, pode-se executar o Solver de restries. O Solver de restries executa a otimizao de um modo especial, com o objetivo de encontrar uma soluo que atenda a todas as restries rgidas (hard). O andamento da otimizao mostrado ao usurio da mesma forma que nas otimizaes normais. A janela Progresso mostra o nmero de restries que foram atendidas pela soluo original e pela melhor soluo.

Um boto na janela Progresso permite que o usurio passe para o Observador do Evolver. No modo Solver de restries, os detalhes do andamento da otimizao podem ser vistos da mesma forma que nas otimizaes efetuadas no modo normal, nas guia Progresso, Sumrio, Registro, Populao e Diversidade. No modo Solver de restries, o Observador contm uma guia adicional denominada Solver de restries. Essa guia apresenta o status de cada restrio rgida (Atingidas ou No atingidas) nas solues Melhor, Original e ltima.

132

Comandos Utilidades

A otimizao feita pelo Solver de restries pra automaticamente quando encontrada uma soluo que atende a todas as restries rgidas; a otimizao tambm pode ser parada clicando-se no boto da janela de progresso ou no Observador do Evolver. Aps o Solver de restries ser executado, voc pode escolher entre as solues Melhor, Original ou ltima, como faz nas otimizaes em modo normal, na guia Condies de parada do Observador do Evolver. Observe que no h necessidade de configurar o Solver de restries antes de execut-lo. Ele usa as configuraes especificadas no modelo, mudando apenas o objetivo da otimizao: o novo objetivo encontrar uma soluo que atenda a todas as restries rgidas.

Captulo 5: Guia de Referncia do Evolver

133

134

Observador do Evolver
O cone de lente de aumento na barra de ferramentas de janela Progresso exibe o Observador do Evolver. O Observador do Evolver responsvel por regular e relatar toda a atividade do Evolver. A partir do Observador do Evolver, voc pode alterar parmetros e analisar o andamento da otimizao. Voc tambm pode visualizar em tempo real informaes sobre o problema e o progresso do Evolver na barra de status, ao longo da parte inferior do Observador do Evolver.

Captulo 5: Guia de Referncia do Evolver

135

Observador do Evolver Guia Progresso


Exibe grficos de progresso do valor da clula-alvo.
A guia Progresso do Observador do Evolver exibe graficamente como os resultados na clula-alvo selecionada esto se alterando com cada simulao.

Os grficos de progresso mostram a contagem da simulao no eixo X e o valor da clula-alvo no eixo Y. A escala dos grficos de progresso pode ser alterada clicando-se nos limites dos eixos e arrastando os mesmos para outros valores da escala. Alternativamente, clicar com o boto direito no grfico de progresso abre a caixa de dilogo de Opes de grficos, onde os grficos podem ser ainda mais personalizados.

136

Observador do Evolver

Caixa de dilogo Opes de grficos

A caixa de dilogo Opes de grficos permite definir os ttulos, legendas, escala e fontes usadas no grfico exibido.

Captulo 5: Guia de Referncia do Evolver

137

Observador do Evolver Guia Sumrio


Exibe detalhes dos valores das clulas ajustveis.
A guia Sumrio do Observador do Evolver exibe uma tabela resumida dos valores das clulas ajustveis testadas durante a otimizao, bem como ferramentas para ajustar as taxas de crossover e mutao para cada grupo de clulas ajustveis do modelo.

As Configuraes de grupos de clulas ajustveis permitem que voc altere as taxas de Crossover e Mutao do algoritmo gentico quando o problema est em andamento. Quaisquer mudanas feitas aqui substituem a configurao original destes parmetros e ocorrem imediatamente, afetando a populao (ou grupo de clulas ajustveis) que foi selecionada no campo Grupo exibido. Quase sempre recomendamos o uso do valor padro de crossover de 0,5. Para mutao, em muitos modelos voc pode aument-la at 0,4 se desejar encontrar a melhor soluo e estiver disposto a aguardar mais tempo. Definir o valor da mutao como 1 (o mximo) resultar em uma adivinhao completamente aleatria, porque o Evolver faz a mutao depois do crossover. Isto significa que aps os dois genitores selecionados serem cruzados para criar um indivduo, neste caso uma soluo, 100% dos genes da soluo sofrero mutao com nmeros aleatrios, tornando o crossover totalmente intil (para obter mais informaes, veja taxa de crossover, funo e taxa de mutao, funo no ndice remissivo).

138

Observador do Evolver

Observador do Evolver Guia Registro


Exibe um registro de cada simulao rodada durante a otimizao.
A guia Registro do Observador do Evolver exibe uma tabela resumida durante a otimizao. O registro inclui os resultados para a clulaalvo, cada clula ajustvel e as restries inseridas. Um registro s est disponvel se a opo Manter registro de todas as tentativas for selecionada na guia Visualizar, na caixa de dilogo Configuraes de otimizao.

As opes em Exibir podem ser selecionadas para a exibio de um registro de Todas as tentativas ou apenas das simulaes em que houve um Passo de progresso (isto , onde o resultado da otimizao melhorou). O registro inclui: Tempo decorrido, ou o tempo de incio da simulao. Iters, ou o nmero de iteraes executadas. Resultado, ou o valor da estatstica da clula-alvo que voc est tentando maximizar ou minimizar, incluindo penalidades para as restries flexveis (soft). Mdia do output, DesvPad do output, Mnimo do output Mximo do output, ou as estatsticas para a distribuio de probabilidade da clula-alvo para a qual foi calculada. Colunas de inputs, ou os valores usados para as clulas ajustveis. Colunas de restries, indica se as restries foram atendidas ou no.
139

Captulo 5: Guia de Referncia do Evolver

Observador do Evolver Guia Populao


Apresenta uma lista de todas as variveis de cada organismo (cada soluo possvel) da populao atual.
A tabela de populao uma grade que lista todas as variveis para cada organismo (cada possvel soluo) da populao atual. Estes organismos (Org n) so elencados na ordem do pior para o melhor. Como esta lista elenca todos os organismos na populao, a configurao tamanho da populao no dilogo de Configuraes do Evolver determina quantos organismos sero listados aqui (a definio padro 50). Alm disso, a primeira coluna do grfico mostra o valor resultante da clula-alvo para cada organismo.

140

Observador do Evolver

Observador do Evolver Guia Diversidade


Exibe um grfico colorido de todas as variveis na populao atual.
O grfico na guia Diversidade associa cores a valores de clulas ajustveis, com base em quanto o valor de uma dada clula difere da populao de organismos (soluo) armazenados na memria em um ponto especfico. (Segundo a terminologia de otimizao gentica, essa indicao significa que a diversidade j existe no pool gentico.) Cada barra vertical do grfico corresponde a uma clula ajustvel. As listras horizontais dentro de cada barra representam os valores da clula ajustvel em questo em diferentes organismos (solues). As cores das listras so atribudas dividindo-se o intervalo entre o valor mnimo e mximo correspondente a uma clula ajustvel especfica em 16 intervalos de mesma amplitude; cada intervalo representado por uma cor distinta. Por exemplo, na figura, o fato de que a barra vertical que representa a segunda clula ajustvel de uma cor s significa que a clula tem o mesmo valor em cada uma das solues contidas na memria.

Captulo 5: Guia de Referncia do Evolver

141

Observador do Evolver Guia Condies de parada


Exibe as opes de parada da otimizao.
Ao clicar no boto Parar, a guia Condies de parada da caixa de dilogo Observador do Evolver exibida. Ela inclui as opes disponveis para atualizar a planilha com os melhores valores calculados para as clulas ajustveis, restaurar valores originais e gerar um relatrio resumido da otimizao. Clicar em OK destri a populao de solues do Evolver e insere na planilha os valores selecionados. Se quiser salvar alguma informao sobre a sesso do Evolver, incluindo os valores da populao, o tempo e nmero de tentativas rodadas, necessrio ter selecionado a opo para criar um resumo da otimizao.

142

Observador do Evolver

Esta caixa de dilogo tambm aparece se uma das condies de parada especificadas pelo usurio tiver sido encontrada (nmero de tentativas solicitadas foi avaliado, minutos requisitados j se encerraram, etc.). O alerta de parada oferece trs escolhas para atualizar os valores de clulas ajustveis na sua planilha: Melhor: Aceita os resultados do Evolver e encerra a busca de melhores solues. Ao escolher esta opo, os valores de melhor cenrio que o Evolver encontrou so inseridos nas clulas ajustveis de sua planilha. Original. Restaura os valores originais nas clulas ajustveis, como estavam antes do Evolver ser rodado, e encerra a busca de melhores solues pelo Evolver. ltimo. Faz com que o Evolver insira os valores calculados por ltimo na otimizao da planilha. A opo ltimos valores calculados especialmente til para depurar modelos.

Captulo 5: Guia de Referncia do Evolver

143

As opes de Relatrios a gerar podem gerar planilhas de resumo de otimizao que podem ser usadas para relatar os resultados e comparar os resultados entre as execues. As opes de relatrios so: Resumo de otimizao. Este relatrio resumido da otimizao contm informaes como data e hora da execuo, configuraes usadas, valor calculado da clula-alvo e valor de cada clula ajustvel.

Este relatrio til para comparar os resultados de otimizaes sucessivas.


144 Observador do Evolver

Registro de todas as tentativas. Este relatrio registra os resultados de todas as tentativas realizadas.

Registro de passos de progresso. Este relatrio registra os resultados de todas as tentativas que melhoraram o resultado da clula-alvo.

Captulo 5: Guia de Referncia do Evolver

145

146

Captulo 6: Otimizao
Mtodos de otimizao ..................................................................149 Sobre algoritmos Hill-Climbing (gradiente ascendente)..............151 Solver do Excel ...............................................................................155 Comparao entre o Evolver e o Solver............................................156 Quando usar o Evolver........................................................................158 Tipos de problemas .........................................................................159 Problemas lineares.....................................................................159 Problemas no lineares .............................................................159 Problemas baseados em tabelas ..............................................162 Problemas combinatrios .........................................................162

Captulo 6: Otimizao

147

148

Mtodos de otimizao
J apresentamos alguns exemplos de problemas de otimizao nos tutoriais. Alguns problemas de otimizao so muito mais difceis de resolver que outros. Para problemas difceis, como encontrar a rota mais curta entre 1000 cidades, no vivel examinar cada soluo possvel. Isso levaria de anos de clculos mesmo nos computadores mais rpidos. Para resolver esses tipos de problemas, necessrio procurar solues em um subconjunto de todas as solues possveis. Examinando estas solues, podemos ter uma melhor noo de como encontrar solues melhores. Isto realizado atravs de um algoritmo. Um algoritmo simplesmente uma descrio passo a passo de como abordar um problema. Todos os programas de computadores, por exemplo, so construdos pela combinao de um grande nmero de algoritmos. Vamos comear explorando a forma como a maior parte dos algoritmos de soluo de problemas representam um problema. A maior parte dos problemas pode ser dividida em trs componentes bsicos: inputs, algum tipo funo e um output resultante.
Ao procurar: Dado o seguinte: Para obter o melhor:

Componentes do problema No Evolver/Excel

Inputs Variveis

Funo Modelo

Output Meta

Vamos pressupor que nosso problema de otimizao envolva duas variveis, X e Y. Quando expressas em forma de equao, essas duas variveis produzem um resultado = Z. Nosso problema encontrar valores para X e Y que produzam o maior valor em Z. Podemos considerar Z como uma nota ou classificao, que indica a qualidade de um par X,Y especfico.
Ao procurar: Dado o seguinte: Para obter o melhor:

Neste exemplo

XeY

Equao

A plotagem de cada par de Xs, Ys e os Zs resultantes produziria um grfico de superfcie tridimensional, como o exibido abaixo.

Captulo 6: Otimizao

149

Uma paisagem de possveis cenrios ou solues.

Cada interseco de valores X e Y produz uma altura Z. Os picos e vales desta paisagem representam boas e ms solues, respectivamente. A busca do ponto mximo ou mais alto desta funo atravs do exame de cada soluo levaria muito tempo, at mesmo com um computador potente e o programa mais rpido. Lembre-se de que estamos fornecendo ao Excel apenas a funo, no um grfico da funo, e que seria igualmente fcil lidar com um problema de 200 dimenses ou de duas dimenses. Portanto, precisamos de um mtodo que nos possibilite efetuar menos clculos e ainda assim encontre a produtividade mxima.

150

Mtodos de otimizao

Sobre algoritmos Hill-Climbing (gradiente ascendente)


Vamos examinar um algoritmo simples chamado Hill-Climbing. Este algoritmo funciona da seguinte forma: 1) Comece em um ponto aleatrio da paisagem (uma escolha aleatria). 2) 3) Caminhe uma distncia pequena em uma direo arbitrria. Se tiver at um ponto mais alto, fique nele e repita a etapa 2. Se o ponto for inferior, retorne ao ponto original e tente novamente.

O algoritmo Hill-Climbing experimenta apenas uma soluo ou cenrio por vez. Utilizaremos um ponto preto () para representar uma soluo possvel (um conjunto de valores X, Y e Z). Se colocarmos o ponto em um local aleatrio, esperamos que o mtodo de hill-climbing leve o ponto at o local mais alto do grfico.

No diagrama acima podemos ver claramente que queremos que o ponto suba a colina direita. Entretanto, s sabemos disso porque vimos a paisagem como um todo. medida que o algoritmo executado, ele v a paisagem imediatamente prxima, mas no a paisagem como um todo; ele v as rvores, mas no a floresta.

Captulo 6: Otimizao

151

Na maior parte dos problemas reais, a paisagem no to suave e precisaria de anos para ser calculada, ento calculamos apenas o cenrio atual e os imediatamente adjacentes. Imagine que o ponto uma pessoa vendada, em p, entre colinas suaves e onduladas. Se a pessoa usasse o algoritmo hill-climbing, ela colocaria um p em cada direo e apenas se moveria se sentisse uma elevao. Essa pessoa caminharia em direo ao topo e eventualmente poderia chegar l. Parece bastante simples. Entretanto, teremos um problema bastante srio se a pessoa comear em outro lugar. Ela pode subir a colina errada! (Veja o diagrama abaixo).

Mesmo com uma funo suave, o hill-climbing pode fracassar se voc comear em um ponto ligeiramente diferente ( direita).

O mtodo hill-climbing (subida de encosta ou gradiente ascendente) encontra apenas o topo de colina mais prximo, ou o mximo local. Assim, se o problema tiver uma paisagem de soluo irregular e cheia de colinas, como um modelo mais realista com certeza ter, o mtodo hill-climbing provavelmente no encontrar a colina mais alta, ou mesmo uma das mais altas. O mtodo hill-climbing apresenta outro problema: como encontramos o terreno ao redor da localizao atual? Se a paisagem for descrita por uma funo suave, pode ser possvel o uso de derivao (uma tcnica de clculo) para encontrar a direo que tem a maior elevao. Se a paisagem descontnua ou no diferenvel (como mais provvel de ocorrer em problemas reais), precisamos calcular a qualidade dos cenrios circundantes.

152

Mtodos de otimizao

Por exemplo, digamos que um banco contrate um segurana das 9:00 horas s 17:00 horas para guardar o banco, mas o banco deve dar ao segurana dois intervalos de meia-hora. Precisamos encontrar os melhores horrios para os intervalos, dadas as regras gerais relacionadas a taxas de performance e fadiga, e considerar os diferentes nveis de atividades dos clientes no decorrer do dia. Podemos comear experimentando vrias combinao de intervalos de servio e avaliando-as. Se usarmos uma agenda na qual os intervalos comeam s 11:00 horas e s 15:00 horas, podemos calcular a produtividade dos cenrios adjacentes: Dire o
Solu o atual Cenrio Oeste Cenrio Leste Cenrio Norte Cenrio Sul

Intervalo 1 (x) 11:00 10:45 11:15 11:00 11:00

Intervalo 2 (y) 15:00 15:00 15:00 15:15 14:45

Pontuao (z) = 46,5 = 44,67 = 40.08 = 49,227 = 43,97

Se tivssemos trs clulas ajustveis (intervalos) em vez de duas, precisaramos procurar em oito direes. De fato, se tivssemos cinquenta variveis (bastante real para um problema de porte mdio) teramos de calcular a produtividade de 250, ou seja, mais de um quadrilho de cenrios, e isto apenas para um guarda!!! H modificaes que podem ser feitas ao mtodo hill-climbing para melhorar a capacidade de encontrar timos globais (os picos mais altos na paisagem). O gradiente ascendente, ou hill-climbing, um mtodo muito til para lidar com problemas unimodais (um nico pico), e por isso que alguns programas de anlise o usam. No entanto, um mtodo muito limitado para resolver problemas complexos ou de grande porte.

Captulo 6: Otimizao

153

154

Solver do Excel
O Excel inclui uma ferramenta de otimizao chamada Solver. Sua finalidade semelhante ao do Evolver: encontrar as melhores solues possveis, isto , solues timas. O Solver pode resolver dois tipos de problemas: problemas lineares e problemas no-lineares simples. Ele resolve problemas lineares usando uma rotina de programao linear. Esta tcnica matemtica clssica chamada de mtodo Simplex; ela sempre encontra respostas perfeitas para problemas de pequeno porte, puramente lineares. Da mesma forma que a maioria dos baby solvers, o Microsoft Solver tambm resolve problemas no lineares utilizando uma rotina de hill-climbing (especificamente a rotina GRG2). Uma rotina de hillclimbing comea com o valor atual da varivel e, vagarosamente, ajusta-o at o output do modelo no apresentar mais nenhuma melhoria. Isto significa que problemas com mais de uma soluo possvel podem ser impossvel para o Solver resolver adequadamente, porque o Solver pra em uma soluo tima local e no pode fazer o salto para uma soluo global (veja a figura abaixo).

(soluo local aparente / soluo global efetiva) Paisagem de solues possveis.

Alm disso, o Solver requer que a funo representada pelo modelo seja contnua. Isto significa que o output deve se alterar suavemente medida que os inputs so ajustados. Se o seu modelo utiliza tabelas de referncia, recebe dados com rudo em tempo real de outro programa, contm elementos aleatrios ou envolve regras de situaes condicionais (if-then), ele ser descontnuo e errtico. O Solver no consegue resolver esse tipo de problema. O Solver tambm s pode usar um nmero limitado de restries e variveis no problema (200), acima do qual se torna necessrio usar uma tcnica mais poderosa.

Captulo 6: Otimizao

155

Comparao entre o Evolver e o Solver


Tanto o Excel Solver quanto o Evolver tm pontos fortes e pontos fracos. De modo geral, o Solver mais rpido na soluo de problemas simples e de pequeno porte. O Evolver, por outro lado, o nico meio de resolver muitos outros tipos de problemas. Alm disso, voc ver que o Evolver encontra respostas muito melhores que o Solver para problemas mais complexos e de maior porte, ou seja, os problemas com que nos deparamos com mais frequncia no mundo real. O Evolver consegue encontrar respostas para muito mais tipos de problemas do que o Solver. Praticamente qualquer situao numrica que pode ser modelada no Excel, pode ser otimizada no Evolver. Especificamente, o Evolver encontra solues timas para problemas numricos lineares, no lineares, baseados em tabelas ou estocsticos (aleatrios). Ele resolve problemas que contm qualquer combinao dessas propriedades. O Evolver tambm gera permutaes de valores existentes, reordena os valores ou os agrupa de diversas formas, a fim de encontrar a melhor soluo possvel. De fato, sempre que se tem um modelo em planilha com variveis que podem ser ajustadas para afetar o output do modelo, o Evolver pode automatizar o processo de busca de soluo fazendo clculos inteligentes de milhares de cenrios, sem perder de vista os cenrios melhores. O processo de algoritmo gentico do Evolver mais adequado do que o do Solver para interrupes; voc pode parar o processo do Evolver quando quiser e ver as melhores solues encontradas at o momento. Com base nisso, voc pode fazer mudanas no problema, propriamente dito, e, em seguida, continuar o processo do ponto onde o interrompeu. Por exemplo, no caso de um problema de agendamento de trabalho, talvez voc queira saber quais so as melhores tarefas para distribuir entre certas mquinas. Quando uma mquina estiver disponvel, voc pode parar o processo do algoritmo gentico para encontrar a melhor tarefa a ser designada a essa mquina disponvel. Em seguida, voc pode omitir a tarefa do problema; assim, a otimizao pode prosseguir com as tarefas restantes. O algoritmo gentico que possibilita ao Evolver lidar com todos esses tipos de problemas geralmente mais lento do que o Solver e outros mtodos matemticos ou estatsticos convencionais. Para certos tipos de problemas, existem rotinas de otimizao bastante refinadas e conhecidas disponveis. Nesses casos, voc encontrar respostas mais

156

rapidamente usando os mtodos customizados, em vez do mtodo mais genrico usado pelo Evolver.

Captulo 6: Otimizao

157

Quando usar o Evolver


De modo geral, o Evolver deve ser usado quando: 1) Os algoritmos comuns no produzem solues globais adequadas. 2) O problema de grande porte ou contm mais variveis do que o algoritmo comum consegue processar. 3) O problema muito complexo para ser resolvido por qualquer outro mtodo. 4) O modelo contm nmeros aleatrios, tabelas de pesquisa, declaraes ifthen (se-ento) ou outras funes descontnuas que impedem o uso de solvers tradicionais. 5) Voc no tem a menor idia de qual poderia ser a soluo e, consequentemente, no tem um ponto de partida para poder iniciar a busca de soluo em um solver comum. 6) Voc quer ter a opo de fazer com que certas restries rgidas (hard) do problema (ex.: X deve obrigatoriamente ser igual a Y) possam ser consideradas mais flexveis (soft), e, portanto, mais exatas (ex.: X deve ser igual a Y, caso contrrio, perco Z), e de explorar uma variedade muito maior de solues possivelmente melhores, mesmo se algumas restries forem infringidas para tanto. 7) Voc preferiria conseguir uma soluo razoavelmente adequada de forma mais rpida do que ter de esperar muito tempo para a soluo absolutamente melhor. 8) Voc necessita de vrias solues alternativas prximas melhor soluo. 9) Voc deseja incorporar um algoritmo de busca simples e robusto no seu prprio aplicativo customizado (veja mais detalhes no Kit do Desenvolvedor do Evolver). NOTA: Se houver tempo suficiente, o Evolver pode ser usado adicionalmente a outros mtodos, para confirmar a exatido dos mesmos. Embora demore mais que outros mtodos, a melhor soluo encontrada pelo Evolver provavelmente tempo bem investido. Lembre-se de que como o Evolver no precisa saber todos os detalhes do problema, ele pode resolver problemas mesmo se o usurio no tiver conhecimento de tcnicas de programao lineares, teoria de otimizao, matemtica ou estatstica. Para usar o Evolver, s necessrio que o usurio defina as variveis (as clulas que contm valores que podem ser ajustados), a meta (a clula que contm o output) e uma descrio dos valores que o Evolver pode usar ao fazer a busca das melhores solues (solues timas).
158

Tipos de problemas
Vrios tipos de problemas so comumente otimizados. Se voc entende esses tipos de problemas, est mais preparado para aplicar o Evolver aos seus modelos.
Problemas lineares

Em problemas lineares, todos os outputs so funes lineares simples dos inputs, como y=mx + b. Quando os problemas s utilizam operaes aritmticas simples como adio e subtrao, e funes do Excel como TENDNCIA() e PREVISO(), indica que h relaes puramente lineares entre as variveis. Problemas lineares tm sido bem fceis de resolver desde o advento dos computadores e a inveno do Mtodo Simplex por George Dantzig. Um problema linear simples pode ser resolvido de forma rpida e exata com um aplicativo de programao linear. O utilitrio Solver, includo no Excel, se transforma em uma ferramenta de programao linear quando voc clica na caixa Presumir modelo linear.* O Solver utiliza ento uma rotina de programao linear para encontrar rapidamente a soluo perfeita. Se o problema pode ser expresso em termos puramente lineares, voc deve usar programao linear. Infelizmente, a maior parte dos problemas da vida real no pode ser descrita linearmente.

Problemas no lineares

Se o custo de fabricao e transporte de 5000 peas $5.000, custaria $1 para fabricar e vender 1 pea? Provavelmente no. A linha de montagem ainda consumiria energia, a papelada teria que ser processada pelos vrios departamentos, os materiais ainda seriam comprados em lote, os caminhes requereriam a mesma quantidade de gasolina para entregar as peas e o motorista ainda receberia um dia inteiro de salrio, no importa o tamanho da carga. A maior parte dos problemas reais no envolve variveis com simples relaes lineares. Estes problemas envolvem multiplicao, quociente, expoentes e funes construdas do Excel, como RAIZ() e CRESCIMENTO(). Sempre que as variveis tiverem uma relao desproporcional entre si, o problema se torna no linear.

Para obter informaes mais especficas sobre o utilitrio Solver da Microsoft, consulte o Guia do Usurio do Excel.
159

Captulo 6: Otimizao

Um exemplo perfeito de um problema no linear o gerenciamento de um processo de fabricao em uma planta qumica. Imagine que desejamos misturar alguns reagentes qumicos e obter um produto qumico como resultado. A taxa dessa reao pode variar no linearmente com a quantidade de reagente disponvel; em algum ponto, o catalisador fica saturado e o excesso de reagentes apenas atrapalha a reao. O diagrama a seguir ilustra esta relao:

(taxa de reao / nvel de reagente)

Se precisarmos simplesmente encontrar o nvel mnimo de reagentes que nos fornecer a maior taxa de reao, poderemos comear em qualquer ponto do grfico e subir pela curva at alcanar o topo. Este mtodo de encontrar uma resposta chamado de gradientes ascendente, escalada ou subida de encosta, ou hill-climbing. Hill-climbing sempre encontra a melhor resposta se: a) a funo sendo explorada suave; b) os valores iniciais das variveis colocam voc na encosta da montanha mais alta. Se uma dessas condies no for atendida, a escalada levar a uma soluo local em vez de global.

160

Tipos de problemas

Os problemas altamente no lineares, que ocorrem muito na prtica, apresentam muitas solues ao longo de uma paisagem complicada. Se um problema tem muitas variveis ou as frmulas envolvidas tm muitas distores ou saltos, a melhor resposta provavelmente no ser encontrada com hill-climbing, mesmo tentando centenas de vezes com valores diferentes de posio inicial. bem provvel que ser encontrada uma soluo sub-tima e local (veja figura abaixo).

Hill-climbing encontra o local timo, mas no o global.

Dados com distores: o mtodo hillclimbing no eficaz, mesmo com mltiplas tentativas.

O Evolver no utiliza hill-climbing. Ele usa uma tcnica de busca direcionada, estocstica, conhecida como algoritmo gentico. Isto permite que o Evolver salte pelo espao de soluo de um problema, examinando muitas combinaes de valores dos inputs, sem ficar paralisado em locais timos. Alm disso, o Evolver permite que os cenrios bons se comuniquem para obter informaes valiosas sobre a aparncia da paisagem de soluo do problema, e usa esta informao para melhor definir os cenrios que tero maior possibilidade de sucesso. Se o problema que voc quer solucionar extremamente complexo e no linear, voc deve, e muitas vezes precisa usar o Evolver.

O Evolver gera muitos cenrios possveis; depois, refina a busca baseado nas informaes que recebe.

Captulo 6: Otimizao

161

Problemas baseados em tabelas

Muitos problemas requerem o uso de tabelas e bancos de dados. Por exemplo, na escolha de quantidades de materiais a comprar, voc pode ter que verificar os preos cobrados por diferentes quantidades. Tabelas e bancos de dados tornam os problemas descontnuos (nosuaves). Isto torna difcil para as rotinas de hill-climbing, como o Solver, encontrar solues timas. O Evolver, entretanto, no precisa de continuidade nas funes que avalia, e pode encontrar boas solues para problemas baseados em tabelas, at mesmo os que usam tabelas grandes e inter-relacionadas. Se o seu problema envolve a pesquisa de valores em um banco de dados ou uma tabela de dados do Excel, onde o ndice do item da tabela uma varivel ou uma funo de uma varivel, voc precisar usar o Evolver. Se voc procura um item constante e nico em uma tabela (o mesmo registro obtido da tabela independentemente dos valores da varivel de input), na verdade est simplesmente lidando com uma constante, e provavelmente pode usar o Solver eficazmente. H uma categoria grande de problemas que so muito diferentes dos problemas numricos examinados at agora. Chamamos de problemas combinatrios aqueles em que os outputs envolvem alterao na ordem das variveis de inputs existentes, ou agrupamento de subconjuntos dos inputs. Esses problemas em geral so muito difceis de resolver, porque muitas vezes requerem um tempo exponencial, isto , ou seja, o tempo necessrio para um problema com 4 variveis pode ser 4 x 3 x 2 x 1, e se o nmero de variveis for dobrado para 8, o tempo de soluo passa a ser 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1, ou um fator de 1.680. O nmero de variveis dobra, mas o nmero de possveis solues aumenta 1.860 vezes. Por exemplo, escolher a escalao de incio da partida de um time de beisebol um problema combinatrio. Para 9 jogadores, voc pode escolher um dentre os nove para ser o primeiro rebatedor. Voc ento pode escolher um dos 8 restantes como segundo batedor, um dos 7 restantes como terceiro, e assim por diante. H ento 9x8x7x6x5x4x3x2x1 (9 fatorial) formas de escolher uma linha de 9 jogadores. So aproximadamente 362.880 ordens distintas. Agora, se voc dobrar o nmero de jogadores, haver 18 possveis linhas, ou 6.402.373.705.000.000 possveis opes! O algoritmo gentico do Evolver busca de forma inteligente as permutaes possveis. Isto muito mais prtico do que buscar todas as possibilidades, e muito mais eficiente do que examinar permutaes puramente aleatrias; as sub-ordens de cenrios adequados podem ser retidas e usadas para criar cenrios ainda melhores.

Problemas combinatrios

162

Tipos de problemas

Captulo 7: Algoritmos Genticos


Introduo .......................................................................................165 Histria.............................................................................................167 Exemplo na biologia.......................................................................171 Exemplo digital ...............................................................................173

Captulo 7: Algoritmos Genticos

163

164

Introduo
O Evolver usa algoritmos genticos para buscar solues timas para modelos de simulao. Os algoritmos genticos so adaptados do Evolver, um add-in de otimizao da Palisade Corporation para o Excel. Este captulo contm informaes gerais sobre algoritmos genticos e sobre como os mesmos so usados em modelos de simulao de otimizao.

Captulo 7: Algoritmos Genticos

165

166

Histria
Os primeiros algoritmos genticos foram desenvolvidos no incio dos anos 1970 por John Holland, da Universidade de Michigan. Holland estava impressionado com a facilidade que os sistemas biolgicos tinham para executar tarefas que enganavam at os mais poderosos supercomputadores; animais podem reconhecer objetos sem falha, entender e traduzir sons, e navegar por um ambiente dinmico quase instantaneamente. Durante dcadas, os cientistas prometeram replicar estas capacidades em mquinas, mas comeamos a reconhecer quo difcil esta tarefa. A maior parte dos cientistas concorda que qualquer sistema biolgico que exibe tais qualidades evoluiu at este ponto.
Teoria da Evoluo

A Evoluo, de acordo com a Teoria de mesmo nome, produziu sistemas com capacidades fantsticas, atravs de elementos relativamente simples e que se replicam seguindo algumas simples regras: 1) A Evoluo ocorre no nvel do cromossomo. O organismo no evolui, mas serve como um corpo de prova em que os genes so carregados e passados adiante. So os cromossomos que esto em mudana dinmica com o rearranjo dos genes. 2) A Natureza tende a fazer mais cpias de cromossomos que produzem um organismo melhor, mais adaptado. Se um organismo sobrevive durante o tempo suficiente e saudvel, seus genes tm maior probabilidade de ser passados a uma nova gerao atravs da reproduo. Este princpio em geral referido como a sobrevivncia do mais apto. Lembre-se que mais apto um termo relativo; um organismo s precisa ser mais apto em comparao com os outros na populao atual para obter sucesso. 3) A Diversidade deve ser mantida na populao. Mutaes aparentemente aleatrias ocorrem frequentemente na natureza para assegurar a variao nos organismos. Estas mutaes genticas em geral resultam em uma capacidade til e vital para a sobrevivncia de uma espcie. Com um maior intervalo de combinaes possveis, uma populao tambm menos suscetvel a fraquezas comuns que poderiam destruir a todos (vrus, etc.) ou outros problemas associados reproduo na ausncia de diversidade. Uma vez que a evoluo foi dividida nestes elementos fundamentais, fica mais fcil aplicar estas tcnicas no mundo computacional, e efetivamente comear a mover na direo de mquinas mais fluidas e comportamentos mais naturais.

Captulo 7: Algoritmos Genticos

167

Holland comeou a aplicar estas propriedades de evoluo a sequncias de nmeros simples que representavam cromossomos. Primeiro, ele codificou os problemas em sequncias binrias (linhas de 0s e 1s) para representar os cromossomos, e fez com que o computador gerasse muitas destas sequncias de bits para formar uma populao completa das mesmas. Uma funo objetivo foi programada para avaliar e ordenar cada sequncia, e as sequncias que foram consideradas mais adaptadas ou aptas comearam a trocar dados com outras atravs de uma rotina de crossover para gerar filhos. Holland at submeteu seus cromossomos digitais a um operador de mutao para manter a diversidade na populao. Esta funo objetivo substituiu o papel da morte no mundo biolgico, determinando que sequncias eram boas o suficiente para continuar gerando indivduos (filhos) e quais no valia mais a pena manter na memria.

O programa manteve um determinado nmero destes cromossomos na memria e esta populao inteira de sequncias continuou a evoluir at maximizar a funo objetivo. O resultado foi ento decodificado em seus valores originais para revelar a soluo. John Holland continua a ser um pioneiro ativo nesse campo, atraindo o que hoje so centenas de cientistas e acadmicos que devotaram a maior parte do seu tempo a esta promissora alternativa a tcnicas matemticas e estatsticas de programao linear tradicional. O algoritmo gentico original de Holland era bem simples, mas notadamente robusto, encontrando solues timas para uma grande variedade de problemas. Muitos programas customizados hoje em dia resolvem problemas complexos e reais de grande escala usando verses ligeiramente modificadas desse algoritmo gentico original.

168

Histria

Adaptaes modernas de algoritmos genticos

medida que o interesse aumentou nos crculos acadmicos, o poder computacional comeou a aumentar nos computadores desktop, e padres como o Microsoft Windows e o Excel tornaram o design e manuteno de modelos complexos mais fcil. O uso de nmeros reais em vez de representaes de sequncias binrias eliminou a tarefa difcil de codificar e decodificar cromossomos. A popularidade do algoritmo gentico est aumentando de forma exponencial atualmente, com seminrios, livros, artigos em revistas e consultores reconhecidos surgindo em todo o mundo. A Conferncia Internacional de Algoritmos Genticos j est se concentrando em aplicaes prticas, um sinal de maturidade que no ocorre em outras tecnologias de inteligncia artificial. Muitas empresas Fortune 500 empregam algoritmos genticos regularmente para resolver problemas reais, desde seguradoras at usinas geradoras de energia, empresas de telecomunicao, redes de restaurantes, fabricantes de automvel e redes de televiso. De fato, h uma boa chance de que voc j tenha indiretamente usado um algoritmo gentico!

Captulo 7: Algoritmos Genticos

169

170

Exemplo na biologia
Vamos examinar um exemplo simples de evoluo no mundo biolgico (em uma escala pequena). Por evoluo aqui entendemos a mudana na distribuio ou frequncia dos genes em uma populao. Evidentemente, o interessante sobre a evoluo que tende a levar a populaes que constantemente se adaptam aos seus ambientes. Vamos supor que estejamos estudando uma populao de camundongos. Estes camundongos so de dois tamanhos, pequeno e grande, e duas cores, claro e escuro. Nossa populao composta dos oito camundongos abaixo:

Um certo dia, aparecem gatos na vizinhana e comeam a comer os camundongos. No entanto, os camundongos pequenos e escuros so mais difceis para os gatos encontrarem. Assim, os camundongos diferentes possuem diferentes chances de evitar os gatos at terem tempo suficiente de se reproduzir. Isto afeta a natureza da prxima gerao de camundongos. Pressupondo que os camundongos mais velhos morrem logo aps reproduzirem, a prxima gerao de camundongos ser aproximadamente assim:

Note que os camundongos grandes e os camundongos claros, e especialmente os grandes e claros tm dificuldade para sobreviver o tempo suficiente a ponto de se reproduzirem. Isto continua para a prxima gerao.

Captulo 7: Algoritmos Genticos

171

Agora a populao consiste principalmente de camundongos pequenos e escuros, porque estes camundongos so mais ajustados para sobreviver neste ambiente do que os outros tipos de camundongos. De forma similar, os gatos comeam a ficar mais famintos porque h menos camundongos para comer e talvez os gatos que prefiram comer grama sejam melhor adaptados e passem seu gene de amor-pela-grama para uma nova gerao de gatos. Este o conceito central da sobrevivncia do mais apto. Mais precisamente, poderia ser melhor colocado como sobrevivncia at a reproduo. Em termos de evoluo, ser o solteiro mais saudvel na populao intil, uma vez que voc precisa se reproduzir para os seus genes influenciarem futuras geraes.

172

Exemplo na biologia

Exemplo digital
Imagine um problema com duas variveis, X e Y, que resultam em uma varivel Z. Se calcularmos e plotarmos o Z resultante para cada possvel valor de X e Y, veramos a paisagem de soluo aparecer (como discutido tambm no Captulo 6: Otimizao). Como estamos buscando o mximo Z, os picos da funo so boas solues e os vales so ms solues. Quando usamos um algoritmo gentico para maximizar a funo, comeamos criando aleatoriamente vrias possveis solues ou cenrios (pontos pretos), no apenas um ponto inicial. Ento calculamos o output da funo e plotamos cada cenrio como um ponto. Em seguida ordenamos os cenrios por altitude, do melhor para o pior, mantendo os da parte superior, e descartando os demais.

Primeiro, criamos uma populao inteira de solues possveis. Algumas sero melhores (mais altas) que outras.

Em seguida, ordenamos e mantemos as solues que geram melhores resultados.

Cada um dos trs cenrios remanescentes se duplica, aumentando o nmero de cenrios para seis. Agora vem a parte interessante: Cada um dos seis cenrios feito de dois valores ajustveis (plotados como uma coordenada X e Y). Os cenrios so reunidos em pares aleatoriamente. Agora cada cenrio troca o primeiro valor ajustvel com o correspondente de seu parceiro. Por exemplo: Antes Cenrio 1 Cenrio 2
3,4; 5,0 2,6; 3,2

Depois
2,6; 5,0 3,4; 3,2

Captulo 7: Algoritmos Genticos

173

Esta operao chamada crossing over, ou crossover. Quando esses seis cenrios se acasalam aleatoriamente e fazem crossover, podemos obter um novo conjunto de cenrios como o seguinte:

No exemplo acima, presumimos que os trs cenrios originais, a, b e c, se acasalaram com suas duplicatas A, B e C, para formar os pares aB, bC, bA. Estes pares trocaram valores da primeira clula ajustvel, o que equivalente em nosso diagrama a alternar as coordenadas x e y entre pares de pontos. A populao de cenrios viveu uma inteira gerao, com seu ciclo de morte e nascimento. Note que alguns dos novos cenrios resultam em menor output (altitude inferior) do que qualquer um da gerao original. No entanto, um cenrio subiu a colina mais alta, indicando progresso. Se deixarmos a populao evoluir por outra gerao, poderemos ver uma cena como a seguinte:

174

Exemplo digital

possvel verificar como a performance mdia da populao de cenrios melhora com relao gerao anterior. Neste exemplo, no h muito espao para melhoria adicional. Isto porque s h dois genes por organismos, seis organismos e nenhuma forma pela qual novos genes podem ser criados. Isto significa que h um pool gentico reduzido. O pool gentico o conjunto de todos os genes de todos os organismos na populao. Algoritmos genticos podem ser tornados muito mais poderosos pela replicao da inerente fora da evoluo no mundo biolgico; aumentar o nmero de organismos em uma populao e permitir mutaes ocasionais e aleatrias. Alm disso, podemos escolher cenrios que vivero e se reproduziro de uma forma natural: com um elemento aleatrio que possui um leve vis na direo de uma melhor performance, em vez de escolher apenas os melhores elementos para procriar (at o maior e mais forte leo pode ser atingido por um raio)! Todas estas tcnicas estimulam o refinamento gentico e ajudam a manter a diversidade na coletividade de genes, mantendo todos os tipos de genes disponveis para o caso em que se tornem teis em diferentes combinaes. O Evolver implementa automaticamente todas estas tcnicas.

Captulo 7: Algoritmos Genticos

175

176

Captulo 8: Recursos Adicionais do Evolver


Como inserir restries .................................................................179 Restries de intervalo ........................................................................180 Restries rgidas (hard) personalizadas ......................................181 Restries flexveis (soft) ....................................................................182 Funes de penalidade..............................................................182 Como inserir uma funo de penalidade...............................183 Como visualizar os efeitos de uma funo de penalidade inserida .....................................................................................184 Como visualizar as penalidades aplicadas ............................184 Como inserir restries flexveis em uma planilha .............185 Mais exemplos de funes de penalidade .............................185 Como usar funes de penalidade ..........................................186 Problemas com mltiplas metas........................................................188 Como aumentar a velocidade........................................................189 Como o Evolver efetua a otimizao ............................................191 Seleo..........................................................................................191 Crossover .....................................................................................192 Mutao........................................................................................193 Substituio.................................................................................193 Restries.....................................................................................193

Captulo 8: Recursos Adicionais do Evolver

177

178

Como inserir restries


No mundo real, em geral os problemas apresentam uma srie de restries que devem ser atendidas na procura de respostas timas. Por exemplo, no tutorial que busca o design de transformadores com o menor custo, uma das restries que o transformador deve se manter frio, irradiando menos do que 0,16 watts/cm2. Um cenrio que atende todas as restries de um modelo dito uma soluo vivel ou vlida. s vezes difcil encontrar solues viveis para um modelo, quanto mais encontrar a soluo vivel tima. Isto pode ser porque o problema muito complexo e tem apenas algumas restries viveis, ou porque o problema foi sobreespecificado (h muitas restries, ou conflitos entre as mesmas) e no h solues viveis. H trs tipos bsicos de restries: restries de intervalo, ou intervalos mn-mx inseridos nas clulas ajustveis, restries rgidas (hard), que devem sempre ser atendidas e restries flexveis (soft), que devem ser atendidas na medida do possvel, mas que estamos dispostos a trocar por uma grande melhoria na adequao da soluo.

Captulo 8: Recursos Adicionais do Evolver

179

Restries de intervalo
As restries rgidas mais simples so aquelas que so inseridas nas prprias variveis. Ao configurar um certo intervalo para cada varivel, podemos limitar o nmero total de solues possveis que o Evolver ir buscar, resultando numa busca mais eficiente. Insira valores Mn e Mx na seo Intervalos de clulas ajustveis da janela Modelo para informar ao Evolver que intervalos de valores so aceitveis para cada varivel.

O Evolver experimentar apenas valores entre 0 e 50.000 para as clulas especificadas.

Um segundo tipo de restrio inserida nas variveis inerente a cada um dos mtodos de soluo do Evolver (receita, ordem, agrupamento, etc.). Por exemplo, quando ajustamos variveis usando o mtodo de oramento, significa que o Evolver est restrito de forma rgida a testar apenas conjuntos de valores com total da mesma quantia. Da mesma forma que na configurao Intervalos, esta restrio rgida tambm reduz o nmero de cenrios possveis que devem ser procurados. A opo Inteiro na caixa de dilogo Modelo tambm uma restrio rgida que instrui o Evolver a testar apenas valores inteiros (1, 2, 3 etc.) em vez de nmeros reais (1.34, 2.034, etc.) ao ajustar os valores das variveis.

180

Como inserir restries

Restries rgidas (hard) personalizadas


Qualquer restrio que esteja fora das restries de variveis do Evolver pode ser inserida usando a caixa de dilogo Configuraes de restries.

NOTA: Da mesma forma que na evoluo biolgica, o poder de soluo de problemas do algoritmo gentico recai primariamente na sua habilidade de explorar livremente muitas combinaes de solues possveis, e de apontar naturalmente na direo das melhores. Se proibirmos o Evolver de ver as solues que no atendem as nossas demandas, o processo de otimizao do algoritmo gentico ser menos eficaz. sempre mais fcil para o Evolver encontrar solues que atendam as restries rgidas se o cenrio inicial na planilha tambm atender a essas restries. Isso permite que o Evolver saiba qual o ponto inicial no espao de solues vlidas. Se voc no sabe de nenhum cenrio que atenda as restries, rode o Evolver com qualquer cenrio inicial e ele usar todos os seus recursos para encontrar cenrios que atendam as restries.

Captulo 8: Recursos Adicionais do Evolver

181

Restries flexveis (soft)


Forar um programa a encontrar apenas solues que atendem a todas as restries pode resultar em no encontrar nenhuma soluo vivel. Em geral, mais til obter solues aproximadamente viveis, onde talvez algumas solues no consigam atender as restries. Uma alternativa ao uso de restries rgidas que devem ser necessariamente atendidas reconfigurar o problema com restries flexveis, isto , restries que o Evolver tender a atender. Estas restries flexveis em geral so mais realistas e permitem que o Evolver experimente muitas alternativas. No caso de um problema altamente restrito (onde no h muitas solues que atendam todas as restries), o algoritmo gentico do Evolver ter maior probabilidade de alcanar a soluo tima se for permitido obter informaes de algumas solues que esto prximas de satisfazer as restries. Quando as restries representam metas, como produzir duas vezes mais garfos do que facas, em geral no to importante atend-las exatamente, especialmente se a obteno de um cronograma de produo perfeitamente balanceado requerer um processo de otimizao que leve um dia inteiro. Neste caso, uma boa soluo para o problema, que quase atende a restrio (produo 40% garfos, 23% facas, 37% colheres), geralmente melhor do que esperar o dia inteiro para saber que talvez no haja soluo porque todas as restries possivelmente no podem ser atendidas.
Funes de penalidade

Restries flexveis podem ser facilmente inseridas no Excel com o uso de funes de penalidade. Em vez de instruir o Evolver a que absolutamente no use certos valores quando estiver buscando solues, voc pode permitir que esses valores invlidos sejam explorados, mas penalizando estas solues. Por exemplo, suponhamos que o problema seja encontrar a forma mais eficiente de distribuir mercadorias com a restrio de que s podem ser usados trs caminhes. Um modelo mais exato incluiria uma funo de penalidade que permitira usar mais caminhes, mas adicionaria um custo significativo ao resultado. As funes de penalidade podem ser especificadas na caixa de dilogo Configuraes de restries, ou inseridas diretamente no modelo por meio de frmulas que representem as funes de penalidade.

182

Como inserir restries

Como inserir uma funo de penalidade

O Evolver tem uma funo penalidade padro que exibida quando voc insere inicialmente uma restrio flexvel. Mas qualquer frmula vlida do Excel pode ser inserida para calcular a quantidade de penalidade a ser aplicada quando a restrio flexvel ou soft no atendida. Uma funo de penalidade inserida deve incluir a palavrachave desvio, que representa a quantidade absoluta pela qual a restrio ultrapassou o limite. No final de cada simulao de uma soluo teste, o Evolver verifica se a restrio flexvel foi atendida; se no foi, ele insere a quantidade de desvio na frmula da funo de penalidade e, em seguida, calcula o valor da penalidade a ser aplicada na estatstica de simulao da clula-alvo que est sendo minimizada ou maximizada. O valor da penalidade pode ser tanto subtrado quanto somado estatstica calculada para a clula-alvo, de forma a torn-la menos tima. Por exemplo, se no campo Encontrar o, da caixa de dilogo Modelo do Evolver, foi escolhido Mximo, a penalidade ser subtrada da estatstica calculada para a clula-alvo.

Captulo 8: Recursos Adicionais do Evolver

183

Como visualizar os efeitos de uma funo de penalidade inserida

O Evolver inclui uma planilha Excel chamada Penalidade.xls que pode ser usada para avaliar os efeitos de diferentes funes de penalidade em restries flexveis especficas e em resultados de clulas alvo.

A planilha Penalidade.xls permite que voc selecione uma restrio flexvel do modelo, cujos efeitos deseja analisar. Voc pode ento alterar a funo de penalidade para ver como a funo ir mapear um valor especfico de uma restrio flexvel no atendida em uma estatstica penalizada especfica da clula-alvo. Por exemplo, se a restrio flexvel A10<100, voc pode usar a planilha Penalidade.xls para verificar qual seria o valor do alvo se um valor de 105 fosse calculado para a clula A10.
Como visualizar as penalidades aplicadas

Quando uma penalidade aplicada para uma clula-alvo devido a uma restrio flexvel no atendida, a quantidade de penalidade aplicada pode ser visualizada no Observador do Evolver. Alm disso, os valores de penalidade so exibidos nas planilhas de Registro de otimizao, criadas opcionalmente aps a otimizao.

184

Como inserir restries

Como inserir restries flexveis em uma planilha

As funes de penalidade tambm podem ser inseridas diretamente na planilha. Uma funo de penalidade booleana associar uma dada penalidade a qualquer cenrio que no atenda a restrio especificada. Por exemplo, se quiser que o valor da clula B1 (oferta) seja igual a ou maior que o valor da clula A1 (demanda), voc pode criar esta funo penalidade em outra clula: =IF(A1>B1, -1000, 0). Se o resultado dessa clula for adicionado estatstica da clula-alvo, toda vez que o Evolver experimentar uma soluo que viole esta restrio (ou seja, a oferta no atende a demanda), a estatstica da clula-alvo que est sendo maximizada indicaria um valor de 1000 abaixo do resultado real. Qualquer soluo que viole esta restrio produziria um valor inferior na estatstica da clula-alvo, e eventualmente o Evolver eliminaria esses organismos. Voc tambm pode usar uma funo de penalidade de escala, que penaliza de forma mais precisa cada soluo com base em quanto ela viola a restrio. Isto muito prtico em problemas reais, porque uma soluo em que a oferta no atende a demanda por uma diferena pequena seria melhor que uma soluo na qual a oferta nem chegou perto da demanda. Uma funo de penalidade de escala simples calcula a diferena absoluta entre o valor da meta da restrio e o seu valor real. Por exemplo, no mesmo problema em que A1 (demanda) no deve exceder B1 (oferta), poderamos associar a seguinte funo de penalidade: =SE(A1>B1;(A1-B1)^2;0). Esse tipo de funo de penalidade mede quo prxima a restrio est de ser atendida, e exagera essa diferena atravs de seu quadrado. Agora nossa penalidade se altera com base na medida em que a soluo viola a restrio.

Mais exemplos de funes de penalidade

Por exemplo, suponha que voc criou um modelo de uma fbrica em que uma das restries que a quantidade de madeira usada deve ser igual quantidade de plstico usada. Esta restrio atendida quando QtdMad = QtdPlast. Desejamos encontrar solues que incluam a mesma quantidade de ambos os materiais, ento criamos uma funo de penalidade para desencorajar solues que se desviem de nossa meta. A frmula =ABS(QtdMad-QtdPlast) computa a diferena absoluta (no-negativa) entre a quantidade de madeira e de plstico sendo usada. Empregando a funo aBS(), chegamos mesma penalidade se QtdMad for 20 unidades maior que QtdPlast ou se QtdPlast for 20 unidades maior que QtdMad. Quando otimizamos o modelo, nossa meta minimizar a mdia dos resultados da simulao para esta diferena absoluta.

Captulo 8: Recursos Adicionais do Evolver

185

Suponha que impusemos a seguinte restrio: a quantidade de madeira deve ser o dobro da quantidade de plstico. A funo de penalidade seria ento:
=ABS(QtdMad-QtdPlast*2)

Uma outra restrio possvel que a quantidade de madeira deve ser no mais do que duas vezes a quantidade de plstico. Enquanto o exemplo anterior produziu uma penalidade se houvesse muita madeira, neste caso apenas h penalidade se no houver madeira suficiente; se QtdMad for dez vezes o valor de QtdtPlast, no queremos que nenhuma penalidade seja aplicada. A funo de penalidade adequada seria:
=SE(QtdMad<QtdPlast*2, ABS(QtdPlast*2QtdMad),0)

Se QtdMad for pelo menos duas vezes maior que QtdPlast, a funo de penalidade retorna zero. Caso contrrio, fornece uma medida de quo menor que duas vezes QtdPlast o valor de QtdMad.
Como usar funes de penalidade

Depois de criar funes de penalidade para descrever as restries flexveis no modelo, voc pode combin-las com a clula-alvo normal para obter uma frmula restringida na clula-alvo. No exemplo ilustrado abaixo, se a clula C8 calcula o custo total de um projeto, e as clulas E3:E6 contm cinco funes de penalidade, ento voc pode criar uma frmula na clula C10 tal como =SOMA(C8, E3:E6).

Criar uma clula que adiciona as restries ao total e minimizar a mdia dos resultados da simulao para esta clula.

186

Como inserir restries

Isto adiciona as penalidades na coluna E ao custo em C8 para obter uma funo penalizada ou restringida em C10. Note que se este fosse um problema de maximizao, voc subtrairia, ao invs de adicionar, as penalidades clula-alvo original. Agora quando utilizar o Evolver, voc simplesmente selecionar a clula restringida, C10, como a clula-alvo a ser aquela cuja estatstica de simulao ser otimizada. Quando o Evolver tenta otimizar uma estatstica restringida para uma clula-alvo, as funes de penalidade tendero a forar a busca na direo de cenrios que atendam as restries. Eventualmente o Evolver chegar a solues que so boas respostas e que atendem ou praticamente atendem todas as restries (as funes penalidade possuiro valores prximos de 0).

Captulo 8: Recursos Adicionais do Evolver

187

Problemas com mltiplas metas


Voc s pode especificar uma clula no campo clula-alvo do Evolver, mas ainda pode solucionar mltiplas metas criando uma funo que combine duas metas em uma s. Por exemplo, como cientista de polmeros, voc pode tentar criar uma substncia que flexvel mas tambm resistente. Seu modelo computa a resistncia, flexibilidade e peso resultantes que resultariam de uma dada mistura de combinaes qumicas. As quantidades de cada produto qumico a serem usadas so as variveis ajustveis do problema. Como voc deseja maximizar a Resistncia da substncia (na clula S3) mas tambm a Flexibilidade (na clula F3), poderia criar uma nova clula com a frmula: =(S3+F3). Esta seria sua nova clula-alvo, pois quanto maior for este nmero, melhor a soluo geral. Se a flexibilidade for um componente mais importante que a resistncia, poderamos alterar a frmula na clula-alvo para =(S3+(F3*2)). Desta forma, os cenrios que aumentarem a flexibilidade por uma certa quantidade pareceriam melhor (produziriam um melhor valor de ajuste ou objetivo) que os cenrios que aumentassem a fora pela mesma quantidade. Se quiser maximizar a Resistncia de uma substncia (na clula S5) mas tambm minimizar seu Peso (na clula W5) voc criaria uma nova clula com a seguinte frmula: =(S5^2)-(W5^2). Esta frmula produziria um nmero alto quando a estrutura fosse resistente e leve, e nmeros igualmente mdios para cenrios fracos e leves ou resistentes e pesados. Voc deveria usar esta nova clula como seu alvo e maximizar sua mdia para satisfazer ambas as metas.

188

Como inserir restries

Como aumentar a velocidade


Ao usar o Evolver para resolver um problema, voc usa tanto a biblioteca de rotinas do Evolver para controlar o processo quanto a funo de avaliao do Excel para examinar diferentes cenrios. Grande parte do tempo usado pelo Evolver , na verdade, tempo usado pelo Excel para recalcular a planilha. H vrios procedimentos para acelerar a otimizao do Evolver e o processo de reclculo do Excel. A velocidade do Evolver diretamente relacionada velocidade do processador do computador que est sendo usado. Um Pentium de 2,0 GHz ser aproximadamente duas vezes mais rpido que um Pentium de 1,0 GHz. Isso significa que o Evolver ser capaz de avaliar duas vezes o nmero de tentativas na mesma quantidade de tempo. Experimente diferentes condies de parada da simulao. Os testes iniciais de um modelo devem ser feitos com um menor nmero fixo de iteraes por simulao. Quando tiver certeza de que o modelo e as restries esto funcionando da forma desejada, faa com que o Evolver determine quantas iteraes deve rodar em cada simulao, selecionando parada na convergncia real ou parada na convergncia projetada. A configurao de parada na convergncia projetada resulta em otimizaes mais rpidas que com parada de convergncia real. Aumente a configurao Tolerncia de convergncia se estiver usando a condio Parar na convergncia real ou Parar na convergncia projetada. Isso impedir o Evolver de executar iteraes desnecessrias, sem alterar significativamente as estatsticas da simulao. Entretanto, definir a Tolerncia de convergncia muito alta produzir resultados de simulao instveis. Tente evitar redesenhar na sua tela. Desenhar grficos e nmeros na tela leva tempo, algumas vezes mais de metade do tempo de otimizao! Se a planilha tiver grficos ou tabelas, a velocidade de reclculo ser substancialmente reduzida. Voc pode instruir o Excel a no gastar tempo desenhando durante a soluo de um problema; basta desativar a opo Atualizar exibio na caixa de dilogo Modelo do Evolver, ou minimizar a planilha Excel. Observe na barra de status o ganho na rapidez de processamento do problema.

Captulo 8: Recursos Adicionais do Evolver

189

Depois que o Evolver tiver mais ou menos convergido em uma soluo e no houver melhoria na melhor soluo por um dado tempo (ex.: nas ltimas mil tentativas), voc pode aumentar a taxa de mutao para permitir que o Evolver alargue o espectro de busca de solues, em vez de continuar a refinar solues usando principalmente o crossover. Voc pode aumentar a taxa de mutao atravs do Observador do Evolver usando o comando Configuraes da populao. Defina de forma mais restrita os intervalos em que as clulas ajustveis devero cair; isto criar uma rea menor em que o Evolver deve procurar solues e, assim, dever acelerar o processo. Assegure que os intervalos dem liberdade suficiente para o Evolver explorar todas as solues realsticas.

190

Como aumentar a velocidade

Como o Evolver efetua a otimizao


Esta seo descreve mais especificamente como os algoritmos de otimizao do Evolver funcionam. NOTA: Voc no precisa saber este material para usar o Evolver. A maior parte da tecnologia de algoritmos genticos do Evolver, como os mtodos de soluo receita e ordem so baseados em trabalhos acadmicos no campo de algoritmos genticos nos ltimos dez anos. Entretanto, a maior parte dos mtodos de soluo descendentes includos no Evolver e as funcionalidades de mltiplos grupos de clulas ajustveis, backtrack, estratgia e probabilidade s existem no Evolver. O Evolver emprega uma abordagem de estado-constante. Isso significa que somente um organismo substitudo de cada vez, em vez de uma gerao ser substituda. Foi demonstrado que esta tcnica de estado de equilbrio funciona to bem ou melhor que os mtodos de substituio de geraes. Para encontrar o nmero equivalente de geraes que o Evolver rodou, divida o nmero de tentativas individuais exploradas pelo tamanho da populao.
Seleo

Quando um novo organismo vai ser criado, dois genitores so escolhidos na populao atual. Os organismos com os maiores valores desejados tm maior probabilidade de serem escolhidos como genitores. No Evolver, os genitores so escolhidos por meio de um mecanismo baseado em classificao de postos. Ao contrrio de outros sistemas de algoritmos genticos em que a escolha da chance de um pai ser escolhido para reproduo diretamente proporcional sua aptido, uma abordagem de ranking produz uma curva de probabilidade de seleo mais suave. Isso impede que bons organismos dominem totalmente a evoluo desde o comeo.

Captulo 8: Recursos Adicionais do Evolver

191

Crossover

Como cada mtodo de soluo ajusta as variveis de formas diferentes, o Evolver emprega uma rotina otimizada de crossover distinta para cada tipo de problema. O mtodo de soluo bsico da receita executa crossover por meio de uma rotina uniforme de crossover. Isso significa que em vez de cortar a lista de variveis de um dado cenrio em determinado ponto e lidar com cada ponto (chamado crossover de ponto nico ou de ponto duplo), so formados dois grupos por seleo aleatria de itens para um grupo ou o outro. Crossovers tradicionais de ponto x podem produzir vis na busca devido posio irrelevante das variveis, enquanto o mtodo de crossover uniforme considerado melhor por preservar o esquema e poder gerar qualquer esquema a partir dos dois genitores.

Populao original

Prossover de ponto nico Se ocorrer crossover, um ponto selecionado aleatoriamente e o organismo dividido em dois.

Crossover uniforme Uma dada porcentagem do organismo selecionada aleatoriamente.

O mtodo de soluo ordem efetua o crossover atravs de um algoritmo semelhante ao operador de crossover de ordem descrito no livro Handbook of Genetic Algorithms de L. Davies.* Ele seleciona itens aleatoriamente de um dos genitores, encontra o seu lugar no outro genitor e copia os itens restantes no segundo genitor, na mesma ordem em que se encontram no genitor original. Isto preserva algumas das sub-ordens dos genitores originais e cria algumas novas subordinaes.

Davis, Lawrence (1991). Handbook of Genetic Algorithms. New York: Van Nostrand Reinhold.
Como o Evolver efetua a otimizao

192

Mutao

De forma semelhante ao crossover, os mtodos de mutao so customizados para cada mtodo de soluo. O mtodo bsico de soluo receita faz a mutao examinando cada varivel individualmente. Um nmero aleatrio entre 0 e 1 gerado para cada varivel do organismo, e se a varivel obtm um nmero que menor ou igual taxa de mutao (ex.: 0.06), ento ocorre mutao nessa varivel. A magnitude e tipo da mutao so automaticamente determinados por um algoritmo proprietrio. Fazer mutao em uma varivel envolve substitu-la por um valor gerado aleatoriamente (dentro do intervalo mn-mx vlido). Para preservar os valores originais, o mtodo de soluo ordem executa a mutao pela alternncia de posies de algumas variveis no organismo. O nmero de trocas executadas aumentado ou reduzido proporcionalmente ao aumento e diminuio da configurao da taxa de mutao (entre 0 e 1).

Substituio

Como o Evolver utiliza um mtodo de substituio baseado em ordem, e no um mtodo geracional, os organismos com pior performance so sempre substitudos por um novo organismo, criado por seleo, crossover e mutao, independentemente do nvel de aptido. As restries rgidas (hard) so implementadas por meio da tecnologia de backtracking da Palisade. Se um novo indivduo (filho) infringir alguma restrio imposta externamente, o Evolver retrocede, por backtrack, a um dos genitores do indivduo e altera o indivduo at ele se enquadrar no espao de soluo vlido.

Restries

(valid organisms (solutions) =organismos vlidos (solues) (invalid "offsprings" organism = organismo-filho invlido)

Captulo 8: Recursos Adicionais do Evolver

193

194

Anexo A: Automatizao do Evolver


VBA
O Evolver possui elementos de linguagem de macros para a construo de aplicaes customizadas que usam as funcionalidades do Evolver. As funes customizadas do Evolver podem ser usadas no Visual Basic for Applications (VBA) para configurar e rodar otimizaes e exibir os resultados correspondentes. Para obter mais informaes sobre esta interface de programao, consulte a o material de referncia do Kit do Desenvolvedor do Evolver, disponvel no menu Ajuda do Evolver.

Anexo A: Automatizao do Evolver

195

196

VBA

Anexo B: Perguntas e Respostas


Perguntas e Respostas
Esta seo apresenta respostas a perguntas comuns sobre o Evolver, e fornece informaes atualizadas sobre questes usuais, problemas e sugestes. Aps ler esta seo, voc pode contatar o suporte da Palisade nos nmeros indicados no captulo inicial deste manual. P: Por que estou tendo problemas na obteno de uma resposta vlida do Evolver? R: Verifique se a caixa de dilogo do Evolver est configurada corretamente. A maioria dos problemas relaciona-se configurao das variveis. Cada grupo de clulas ajustveis deve ser nico, ou seja, nenhuma clula ou intervalo de clulas deve ser processado por mais de um mtodo de soluo. P: O Evolver pode lidar com conceitos ou categorias, em vez de apenas nmeros? R: O Evolver pode lidar indiretamente com qualquer tipo de dado, pois nmeros so simplesmente smbolos. Use uma tabela de referncia do Excel para converter nmeros inteiros em sequncias de texto. O Evolver (como todos os programas de computador) em ltima instncia lida apenas com nmeros, mas a sua interface pode usar esses nmeros para representar e exibir qualquer sequncia de dados.

Anexo B: Perguntas e Respostas

197

P: Embora eu preencha as caixas de dilogo da mesma forma e deixe o Evolver rodar durante o mesmo intervalo de tempo, por que o Evolver s vezes encontra solues diferentes? R: Assim como no caso da seleo natural no mundo biolgico, o algoritmo gentico do Evolver nem sempre segue o mesmo caminho na busca de solues (a no ser que voc use uma semente fixa de gerao de nmeros aleatrios). Ironicamente, esta imprevisibilidade que possibilita que o Evolver solucione mais tipos de problemas e, em geral, encontre solues melhores do que as tcnicas tradicionais. O mecanismo do algoritmo gentico do Evolver faz mais do que apenas executar uma srie de comandos pr-programados ou obter valores de uma frmula matemtica; ele experimenta eficientemente muitos cenrios hipotticos simultaneamente e, em seguida, refina a busca usando muitos operadores de sobrevivncia do mais apto que tambm contm elementos aleatrios. P: Por que a melhor soluo encontrada no est se alterando? R: Talvez voc tenha especificado a clula-alvo errada na caixa de dilogo Modelo do Evolver. O Evolver est vendo esta clula em branco, e o valor no se altera porque no h frmula. Para corrigir isto, abra a caixa de dilogo Modelo do Evolver e selecione uma clula-alvo adequada, isto , que indique com exatido em que medida a soluo adequada ou inadequada. Uma clula-alvo adequada tem uma frmula que depende, direta ou indiretamente, das variveis que o Evolver est ajustando (clulas ajustveis). P: Algumas clulas na minha planilha contm smbolos ####. R: Se a clula for muito pequena para exibir todo o contedo, ela exibir vrios smbolos ####. Aumente o tamanho da clula.

198

Perguntas e Respostas

P: O Evolver est funcionando bem, mas h alguma forma simples de obter melhores resultados? R: Experimente relaxar as restries do problema, inclusive os intervalos de variveis. Mude algumas restries rgidas para restries flexveis usando funes de penalidade (consulte Como inserir restries, no Captulo 8: Recursos Adicionais do Evolver). O excesso de restries ao que o Evolver pode experimentar pode impedir o Evolver de explorar uma rea de possibilidades que poderia produzir melhores resultados. Lembre-se de que quanto mais tempo voc deixar o Evolver explorar as possibilidades, maior ser a probabilidade de ele encontrar a soluo tima. Para obter mais sugestes sobre como fazer ajustes finos no Evolver, consulte o Captulo 8: Recursos Adicionais do Evolver. Quanto mais cenrios o Evolver puder rodar, melhor. Acelere o processo do Evolver desativando a opo A cada reclculo relativa atualizao da tela.

Anexo B: Perguntas e Respostas

199

200

Anexo C: Recursos Adicionais


Recursos adicionais de aprendizagem
A lista a seguir representa uma amostra seleta de materiais sobre algoritmos genticos e inteligncia artificial. O asterisco (*) indica materiais recomendados para leitura pela Palisade.

Livros
Bolles, R.C., & Beecher, M.D. (Eds.). (1988). Evolution and Learning. Lawrence Erlbaum. Beer, R.D. (1990). Intelligence as Adaptive Behavior: An Experiment in Computational Neuroethology. Academic Press. Davis, Lawrence (1987). Genetic Algorithms and Simulated Annealing. Palo Alto, CA: Morgan Kaufman. * Davis, Lawrence (1991). Handbook of Genetic Algorithms. New York: Van Nostrand Reinhold. Darwin, Charles (1985). On The Origin of Species. London: Penguin Classics. (originally 1859) * Dawkins, Richard. (1976). The Selfish Gene. Oxford University Press. Eldredge, N. (1989). Macroevolutionary Dynamics: Species, Niches, and Adaptive Peaks. McGraw-Hill. Fogel, L., Owens, J., and Walsh, J. (1966). Artificial Intelligence through Simulated Evolution. New York: John Wiley and Sons. Goldberg, David (1989). Genetic Algorithms in Search, Optimization, and Machine Learning. Reading, MA: Addison-Wesley Publishing. Holland, J.H. (1975). Adaptation in Natural and Artificial Systems. Ann Arbor, MI: University of Michigan Press. Koza, John (1992). Genetic Programming. Cambridge, MA: MIT Press. * Langton, C.L. (1989). Artificial Life. MIT Press. [ALife I] Levy, Steven (1992). Artificial Life. New York: Pantheon. Meyer, J.-A., & S.W. Wilson (Eds.). (1991). Proceedings of the First International Conference on Simulation of Adaptive Behavior: From Animals to Animats. MIT Press/Bradford Books.

Anexo C: Recursos Adicionais

201

* Proceedings of the Sixth International Conference (ICGA) on Genetic Algorithms (1995). San Mateo, CA: Morgan Kaufman Publishing. (Also available; the first five ICGA proceedings). Proceedings of the Workshop on Artificial Life (1990). Christopher G. Langton, Senior Editor. Reading, MA: Addison-Wesley Publishing. Rawlins, Gregory (1991). Foundations of Genetic Algorithms. San Mateo, CA: Morgan Kaufman Publishing. Richards, R.J. (1987). Darwin and the Emergence of Evolutionary Theories of Mind and Behavior. U. Chicago Press. Williams, G.C. (1966). Adaptation and Natural Selection. Princeton U. Press.

Artigos
* Antonoff, Michael (October, 1991). Software by Natural Selection. Popular Science, pgs. 70-74. Arifovic, Jasmina (January, 1994). Genetic Algorithm Learning and the Cobweb Model. In Journal of Economic Dynamics & Control v18 pg. 3 * Begley, S (May 8, 1995). Software au Naturel In Newsweek, pg. 70 Celko, Joe (April, 1993). Genetic Algorithms and Database Indexing. In Dr. Dobbs Journal pg. 30 Ditlea, Steve (November, 1994). Imitation of Life. In Upside Magazine pg. 48 Gordon, Michael (June, 1991). User-based Document Clustering by Redescribing Subject Descriptions with a Genetic Algorithm. In Journal of the American Society for Information Science v42 pg. 311 Hedberg, Sara (September, 1994). Emerging Genetic Algorithms. In AI Expert, pgs. 25-29. Hinton, G.E., & Nowlan, S.J. (1987). How Learning Can Guide Evolution. In Complex Systems 1: pgs. 495-502. * Kennedy, Scott (June, 1995). Genetic Algorithms: Digital Darwinism. In Hitchhickers Guide to Artificial Intelligence Miller Freeman Publishers Kennedy, Scott (December, 1993). Five Ways to a Better GA. In AI Expert, pgs. 35-38 Lane, A (June, 1995). The GA Edge in Analyzing Data. In AI Expert pg. 11 Lee, Y.C. (Ed.). (1988). Evolution, learning, and cognition. In World Scientific. Levitin, G and Rubinovitz, J (August, 1993). Genetic Algorithm for Linear and Cyclic Assignment Problem. In Computers & Operations Research v20 pg. 575

202

Recursos adicionais de aprendizagem

Marler, P., & H.S. Terrace. (Eds.). (1984). The Biology of Learning. SpringerVerlag. Mendelsohn, L. (December, 1994) Evolver Review In Technical Analysis of Stocks and Commodities. pg. 33 Maynard Smith, J. (1987). When Learning Guides Evolution. In Nature 329: pgs. 761-762. Murray, Dan (June, 1994). Tuning Neural Networks with Genetic Algorithms. In AI Expert pg. 27 Wayner, Peter (January, 1991). Genetic Algorithms: Programming Takes a Valuable Tip from Nature. Byte Magazine v16 pg. 361

Revistas e newsletters
Advanced Technology for Developers (newsletter mensal). Jane Klimasauskas, Ed., High-Tech Communications, 103 Buckskin Court, Sewickley, PA 15143 (412) 741-7699 AI Expert (monthly magazine). Larry OBrien, Ed., 600 Harrison St., San Francisco, CA 94107 (415) 905-2234. *Embora AI Expert no seja mais publicada desde o primeiro semestre de 1995, os nmeros antigos contm muitos artigos teis. Miller-Freeman, San Francisco. Applied Intelligent Systems (newsletter bi-mensal). New Science Associates, Inc. 167 Old Post Rd., Southport, CT 06490 (203) 259-1661 Intelligence (monthly newsletter). Edward Rosenfeld, Ed., PO Box 20008, New York, NY 10025-1510 (212) 222-1123 PC AI Magazine (revista mensal). Joseph Schmuller, Ed., 3310 West Bell Rd., Suite 119, Phoenix, AZ 85023 (602) 971-1869 Release 1.0 (newsletter mensal). Esther Dyson, Ed., 375 Park Avenue, New York, NY 10152 (212) 758-3434 Sixth Generation Systems (newsletter mensal). Derek Stubbs, Ed., PO Box 155, Vicksburg, MI, 49097 (616) 649-3592

Introduo a simulao
Se voc principante no mundo da Simulao ou se desejar obter informaes gerais sobre essa tcnica, os livros e artigos a seguir podem ser teis:
* Baird, Bruce F. Managerial Decisions Under Uncertainty: John Wiley & Sons, Inc. 1989. * Clemen, Robert T. Making Hard Decisions: Duxbury Press, 1990. Hertz, D.B. Risk Analysis in Capital Investment: HBR Classic, Harvard Business Review, September/October 1979, pgs. 169-182.

Anexo C: Recursos Adicionais

203

Hertz, D.B. and Thomas, H. Risk Analysis and Its Applications: John Wiley and Sons, New York, NY, 1983. Megill, R.E. (Editor). Evaluating and Managing Risk: PennWell Books, Tulsa, OK, 1984. Megill, R.E. An Introduction to Risk Analysis, 2nd Ed.: PennWell Books, Tulsa, OK, 1985. Morgan, M. Granger and Henrion, Max, with a chapter by Mitchell Small, Uncertainty: Cambridge University Press, 1990. Newendorp, P.D. Decision Analysis for Petroleum Exploration: Petroleum Publishing Company, Tulsa, Okla., 1975. Raiffa, H. Decision Analysis: Addison-Wesley, Reading, Mass., 1968.

Referncias tcnica para simulao Monte Carlo


Se voc desejar estudar mais a fundo simulao, tcnicas de amostragem e teoria estatstica, os seguintes livros podem ser teis:
Iman, R. L., Conover, W.J. A Distribution-Free Approach To Inducing Rank Correlation Among Input Variables: Commun. Statist.-Simula. Computa.(1982) 11(3), 311-334 * Law, A.M. and Kelton, W.D. Simulation Modeling and Analysis: McGrawHill, New York, NY, 1991,1982. Rubinstein, R.Y. Simulation and the Monte Carlo Method: John Wiley and Sons, New York, NY, 1981.

Referncias tcnicas para amostragem de Hipercubo Latino


Se voc tiver interesse na tcnica de amostragem Hipercubo Latino, as fontes a seguir podem ser teis:
Iman, R.L., Davenport, J.M., and Zeigler, D.K. Latin Hypercube Sampling (A Program Users Guide): Technical Report SAND79-1473, Sandia Laboratories, Albuquerque (1980). Iman, R.L. and Conover, W.J. Risk Methodology for Geologic Displosal of Radioactive Waste: A Distribution - Free Approach to Inducing Correlations Among Input Variables for Simulation Studies: Technical Report NUREG CR 0390, Sandia Laboratories, Albuquerque (1980). McKay, M.D, Conover, W.J., and Beckman, R.J. A Comparison of Three Methods for Selecting Values of Input Variables in the Analysis of Output from a Computer Code: Technometrics (1979) 211, 239-245. Startzman, R. A. and Wattenbarger, R.A. An Improved Computation Procedure for Risk Analysis Problems With Unusual Probability Functions: SPE Hydrocarbon Economics and Evaluation Symposium Proceedings, Dallas (1985). 204 Recursos adicionais de aprendizagem

Exemplos e estudos de casos com uso de simulao


Se voc quiser examinar estudos de casos relacionados ao uso da Simulao em situaes reais, consulte o seguinte material:
Hertz, D.B. and Thomas, H. Practical Risk Analysis - An Approach Through Case Histories: John Wiley and Sons, New York, NY, 1984. * Murtha, James A. Decisions Involving Uncertainty, An @RISK Tutorial for the Petroleum Industry: James A. Murtha, Houston, Texas, 1993 Newendorp, P.D. Decision Analysis for Petroleum Exploration: Petroleum Publishing Company, Tulsa, Okla., 1975. Pouliquen, L.Y. Risk Analysis in Project Appraisal: World Bank Staff Occasional Papers Number Eleven. John Hopkins Press, Baltimore, MD, 1970. * Trippi, Robert R. and Truban, Efraim, Neural Networks: In Finance and Investing: Probus Publishing Co., 1993

Anexo C: Recursos Adicionais

205

206

Glossrio
Para obter mais informaes sobre um termo especfico, consulte o ndice remissivo no prximo captulo.
Algoritmo

Mtodo matemtico passo a passo para a soluo de certos tipos de problemas. Todos os programas de computadores so construdos com base na combinao de muitos algoritmos. Um procedimento para melhorar os resultados de uma operao por meio de repetidas tentativas de vrias solues possveis e da reproduo e combinao dos componentes das melhores solues. O processo muito semelhante e inspirado no processo de evoluo biolgica, em que os organismos mais aptos sobrevivem e se reproduzem. Um procedimento de otimizao que comea com um dado cenrio e repetitivamente altera o cenrio em pequenos passos na direo que mais ir melhor-lo. Algoritmos Hill-Climbing ou (tambm referidos como subida de encosta ou gradientes ascendente) so rpidos e simples, mas apresentam duas desvantagens. Primeiro, podem exigir muito trabalho para encontrar a direo de maior melhoria. Segundo, os algoritmos em geral escalam o morro mais prximo, ou o mximo local. Isto impede o algoritmo de encontrar o mximo global em um problema difcil. Amostra aleatria um valor escolhido em uma distribuio de probabilidade e corresponde a uma varivel aleatria. Essa amostra tirada aleatoriamente, de acordo com um algoritmo de amostragem. A distribuio de frequncia construda por um grande nmero de amostras aleatrias tiradas por esse algoritmo se aproxima bastante da distribuio de probabilidade para a qual o algoritmo foi projetado. Assimetria uma medida do formato da distribuio. Indica o grau de assimetria de uma distribuio. As distribuies distorcidas tm mais valores ao lado de um pico ou valor mais provvel uma extremidade muito mais longa que a outra. Uma assimetria 0 indica uma distribuio simtrica, e uma assimetria negativa indica que a distribuio est distorcida para a esquerda. Assimetria positiva indica uma distribuio distorcida para a direita. Consulte Curtose.

Algoritmo gentico

Algoritmo HillClimbing

Amostra aleatria

Assimetria

Glossrio

207

Baby Solver

Termo de gria de informtica que se refere a programas de software que encontram inputs que produzem um output desejado, usando uma combinao de tcnicas de programao linear ou algoritmos bsicos do tipo hill-climbing. Geralmente, os baby solvers simplesmente iniciam seu processo com um chute que, em seguida, refinado at chegar a uma soluo local, em vez de uma soluo global. A barra de status aparece na parte inferior da janela do Excel e mostra a atividade atual do Evolver. A janela na tela do computador que requer que o usurio fornea informaes. Tambm chamada de dilogo. O Evolver contm duas caixas de dilogo principais: Modelo do Evolver e Clulas Ajustveis. Unidade bsica para entrada de dados. Dependendo do tipo de campo, ele pode conter texto, figuras ou nmeros. A maior parte dos campos nas caixas de dilogo do Evolver solicita ao usurio que insira a localizao de clulas da planilha ou opes relacionadas a como o Evolver deve funcionar. Clula a unidade bsica de uma planilha na qual os dados so armazenados. Cada planilha de Excel pode conter at 256 colunas e 16.000 linhas, fornecendo um total de mais de 4 milhes de clulas. Uma clula de planilha cujo valor pode ser ajustado pelo Evolver para tentar otimizar o valor da clula-alvo. Uma clula ajustvel um valor varivel e sempre deve conter um nmero simples, e no uma equao. A clula da planilha cujos valores desejamos minimizar ou maximizar. Esta clula definida na caixa de dilogo Modelo do Evolver (selecione o comando Definio do modelo ou o cone Modelo). Um conjunto de valores para as variveis em um modelo planilha. Geralmente, cada cenrio representa uma soluo possvel. Em um contexto gentico, crossing over uma troca de material gentico entre cromtides homlogos durante a meiose. No Evolver, o termo crossover usado para expressar o equivalente computacional ao crossing over, em que uma troca entre as variveis gera novas combinaes de cenrios. Curtose uma medida do formato da distribuio. A curtose indica quo achatada ou alongada uma distribuio. Quanto mais alto for o valor da curtose, mais alongada a distribuio. Consulte Assimetria.

Barra de status Caixa de dilogo

Campo

Clula

Clula ajustvel

Clula-alvo

Cenrio Crossover

Curtose

208

Desvio padro

Medida da amplitude de disperso dos valores em uma distribuio. Equivale raiz quadrada da varincia. Consulte Varincia. Significa que no h incerteza associada ao valor ou varivel especfica. Uma distribuio de probabilidade em que qualquer valor entre o mnimo e o mximo possvel (probabilidade finita). Consulte Distribuio discreta. Uma distribuio cumulativa ou a funo de distribuio cumulativa um conjunto de pontos, cada um deles igual ao total de uma distribuio de probabilidade, comeando no valor mnimo e terminando no valor associado da varivel aleatria. Consulte Distribuio de frequncia cumulativa; Distribuio de probabilidade. Distribuio de frequncia o termo usado para as distribuies de probabilidade de output e histogramas de distribuio de inputs (HISTOGRM) do Evolver. Uma distribuio de frequncia construda pela organizao de valores em classes e pela representao da frequncia de ocorrncia em determinada classe pela altura da barra A frequncia de ocorrncia corresponde probabilidade. Distribuio de frequncia cumulativa o termo usado para as distribuies cumulativas de input e output do Evolver. Uma distribuio cumulativa construda pela acumulao da frequncia (progressivamente adicionado as alturas das barras) ao longo do intervalo de uma distribuio de frequncia. Uma distribuio cumulativa pode ser uma curva de declive positivo, onde a distribuio descreve a probabilidade de um valor igual a ou menor que qualquer valor da varivel. Alternativamente, a curva cumulativa pode ser uma curva de declive negativo, em que a distribuio descreve a probabilidade de valor igual a ou maior que qualquer valor da varivel. Consulte Distribuio cumulativa. Distribuio de probabilidade ou funo de densidade de probabilidade o termo estatstico correto para indicar uma distribuio de frequncia construda a partir de um conjunto infinitamente grande de valores em que o tamanho de classe infinitesimamente pequeno. Consulte Distribuio de frequncia. Uma distribuio de probabilidade em que s possvel haver um nmero finito de valores discretos entre o mnimo e o mximo. Consulte Distribuio contnua.
209

Determinstico Distribuio contnua

Distribuio cumulativa

Distribuio de frequncia

Distribuio de frequncia cumulativa

Distribuio de probabilidade

Distribuio discreta

Glossrio

Estocstico Fentipos

Sinnimo de incerto, arriscado. Consulte Risco; Determinstico. Em biologia, fentipo uma caracterstica observvel de um indivduo, produzida pela interao entre genes e entre os genes e o meio ambiente. No estudo de algoritmos genticos, o fentipo usado para descrever variveis individuais ou genes que compem uma soluo completa ou cromossomo. Consulte Gentipo. Uma equao em planilha que o Evolver pode usar para penalizar cenrios que no atendem determinados critrios. Funes de penalidade so usadas para ajudar a minimizar efeitos colaterais ou para alcanar mltiplas metas. Diferentemente de uma restrio rgida, uma funo de penalidade permite que solues invlidas sejam exploradas, mas faz com que estas solues paream piores, para que a populao as evite, se possvel. As penalidades booleanas so ativadas ou desativadas, penalizando todas as solues invlidas na mesma medida. Penalidades de escala so mais fluidas, associando uma penalidade proporcional ao grau de infrao da restrio. Esta a frmula que calcula em que medida determinada soluo proposta para um dado problema adequada ou inadequada. Este o termo geralmente utilizado no campo de algoritmos genticos como analogia funo de aptido (ou adaptao) na seleo biolgica. Construir uma funo objetivo exata essencial ao usar algoritmos genticos para solucionar um problema. Um resultado da simulao para a funo objetivo se torna a meta ou valor-alvo a ser otimizado. No Excel, uma funo uma frmula pr-definida que assume um valor, executa uma operao e retorna um valor. O Excel contm centenas de frmulas prontas (como SOMA) que economizam tempo e espao e so mais rpidas. Por exemplo, em vez de digitar A1+ A2+ A3+ A4+ A5+ A6, voc pode digitar SOMA(A1:A6) e obter o mesmo resultado. Em biologia, este termo se refere constituio gentica de um indivduo. O termo geralmente se refere totalidade dos genes do indivduo. No estudo de algoritmos genticos, gentipo usado para descrever o cromossomo artificial que avaliado como uma soluo possvel do problema.

Funo de Penalidade

Funo objetivo

Funes

Gentipo

210

Gerao

No campo de algoritmos genticos, cada populao totalmente nova de solues (indivduos ou filhos) uma nova gerao. Algumas rotinas de algoritmos genticos acasalam todos os membros da populao de uma vez s, criando uma nova gerao de organismos filhos que substitui a populao antecedente. O Evolver avalia e substitui um organismo de cada vez (ordenado por posto) e desta forma no usa o termo gerao na sua documentao. Esta tcnica de estado de equilbrio constante tambm funciona to bem como com a reposio de geraes. Um gerador de nmeros aleatrios um algoritmo para a escolha de nmeros aleatrios, tipicamente no intervalo de 0 a 1. Esses nmeros aleatrios so equivalentes a amostras retiradas de uma distribuio uniforme, com o mnimo de 0 e o mximo de 1. Esses nmeros aleatrios servem como base para outras rotinas que os convertem em amostras retiradas de tipos especficos de distribuio. Consulte Amostra aleatrio; Semente Cada conjunto de variveis, assim como a forma pela qual sero tratados, um grupo de clulas ajustveis. O Evolver lista todos os grupos de clulas ajustveis na seo de variveis da caixa de dilogo Modelo do Evolver. Esta arquitetura permite que problemas complexos sejam construdos e descritos como vrios grupos de clulas ajustveis. A amostragem Hipercubo Latino uma tcnica relativamente nova de amostragem estratificada usada na modelagem de simulao. Tcnicas de amostragem estratificada, ao contrrio das tcnicas tipo Monte Carlo, tendem a forar a convergncia de uma distribuio amostrada em menos amostras. Consulte Monte Carlo. No Evolver: O usurio define o intervalo, ou o valor mais alto e mais baixo que permitido ao Evolver experimentar ao ajustar uma certa varivel. Embora no seja necessrio para resolver um problema, definir os intervalos limita as possibilidades e restringe a busca do Evolver. No Excel: Um bloco de clulas contguas dentro de uma planilha, que definido pela clula superior esquerda e pela inferior direita (ex.: A5:C9 descreve um intervalo de 15 clulas).

Gerador de nmeros aleatrios

Grupo de clulas ajustveis

Hipercubo Latino

Intervalos

Glossrio

211

Iterao

Uma iterao um reclculo do modelo do usurio durante uma simulao. Uma simulao consiste de muitos reclculos ou iteraes. Durante cada iterao, todas as variveis incertas so amostradas uma vez, de acordo com suas distribuies de probabilidade, e o modelo recalculado usando esses valores amostrados. Tambm referido como tentativa da simulao. O maior valor possvel para uma dada funo. Funes ou modelos complexos podem ter muitos mximos locais, mas s um mximo global. O maior valor possvel para uma dada funo dentro de um intervalo especificado de valores. Um mximo local existe em um conjunto de valores para variveis de uma funo, se uma ligeira mudana em um ou em todos os valores das variveis produzir um resultado menor a partir da funo. (Comparar com mximo global). A mdia de um conjunto de valores a soma de todos os valores do conjunto dividida pelo nmero total de valores que forma o conjunto. Sinnimo: valor esperado O Evolver apresenta seis mtodos de soluo, cada qual usando um algoritmo customizado para resolver um tipo especfico de problema. Para cada conjunto de variveis selecionado em um problema, o usurio deve designar o mtodo de soluo associado a essas variveis. Os seis mtodos de soluo so: agrupamento, ordem, receita, oramento, projeto e agendamento. Para fins deste manual, um modelo uma representao numrica de uma situao real no Excel. Os momentos mais altos so estatsticas de uma distribuio de probabilidade. De modo geral, o termo se refere assimetria e curtose, o terceiro e quarto momentos respectivamente. O primeiro e segundo momentos so respectivamente a mdia e o desvio padro. Consulte Assimetria; Curtose; Mdia; Desvio padro. Monte Carlo se refere ao mtodo tradicional de amostrar variveis aleatoriamente em modelagem de simulao. As amostras so escolhidas de forma inteiramente aleatria em todo o intervalo da distribuio, o que requer um grande nmero de amostras para efetuar a convergncia de distribuies altamente distorcidas ou de cauda longa. Consulte Hipercubo Latino. Em biologia, mutao gentica a fonte de variao necessria para a seleo natural eficaz. De forma semelhante, um algoritmo gentico usa tcnicas de mutao para manter a diversidade em uma populao de possveis cenrios.

Mximo global

Mximo local

Mdia

Mtodo de soluo

Modelo Momentos mais altos

Monte Carlo

Mutao

212

Organismo Otimizao

Um bloco de memria em uma populao, que armazena um conjunto de valores de variveis (cenrio). O processo de encontrar valores para variveis de forma que o output de uma funo possa ser maximizado (tornado o maior possvel) ou minimizado (tornado o menor possvel). A otimizao por soluo de equaes fcil para funes de mudana suave com poucas variveis, mas extremamente difcil para problemas reais. Problemas difceis geralmente necessitam de um mecanismo de busca. O Evolver usa um mecanismo de otimizao de busca baseado em algoritmos genticos. Um percentil um incremento de valores em um conjunto de dados. Os percentils dividem os dados em 100 partes iguais, cada uma contendo 1% dos valores totais. O 60 percentil, por exemplo, o valor no conjunto de dados em relao ao qual 60% dos valores so inferiores (esto abaixo dele) e 40% so superiores. O conjunto completo de cenrios que o Evolver mantm na memria, a partir do qual novos cenrios so gerados. O Evolver mantm uma populao de solues possveis para cada grupo de clulas ajustveis de um sistema. Medida da probabilidade de ocorrncia de um valor ou evento. A probabilidade pode ser medida a partir de dados de simulao, como frequncia, calculando o nmero de ocorrncias do valor ou evento dividido pelo nmero total de ocorrncias. Este clculo retorna um valor entre 0 e 1 que pode ser convertido em porcentagem multiplicando por 100. Consulte Distribuio de frequncia; Distribuio de probabilidade. Restries so condies que devem (no caso de restries flexveis ou soft) ou precisam (no caso de restries rgidas ou hard) ser obedecidas para que determinado cenrio seja considerado vlido. Quando as restries no precisam necessariamente ser atendidas, elas podem ser definidas como restries flexveis ou soft, em vez de rgidas ou hard. Isso pode ser feito pela especificao de uma funo de penalidade no Evolver ou pela soma de uma funo de penalidade funo objetivo da clula-alvo. Geralmente melhor usar restries flexveis, se possvel. Isto porque: 1. o Evolver geralmente pode resolver problemas com restries flexveis de forma mais rpida; 2. um modelo com restries flexveis poder encontrar uma soluo tima que quase atende as restries flexveis, que muitas vezes pode ser mais valiosa do que uma soluo no to boa mas que atende as restries rgidas (hard).

Percentil

Populao

Probabilidade

Restries

Restries flexveis ou soft

Glossrio

213

Restries rgidas ou hard

Uma restrio que obrigatoriamente precisa ser atendida. Por exemplo, os intervalos de variveis em um problema tipo receita podem ser restries rgidas (hard); como no caso de uma varivel definida entre 10 e 20 que nunca pode assumir um valor menor que 10 ou maior que 20. Consulte Restries flexveis ou soft. Simulao uma tcnica pela qual um modelo tal como uma planilha calculado muitas vezes com diferentes valores de entrada, a fim de obter uma representao completa de todos os cenrios possveis em uma situao incerta. O conceito de que organismos melhor adaptados a um ambiente tm maior probabilidade de sobreviver o tempo suficiente para se reproduzir e passar seus genes para a prxima gerao da populao. Todo sistema contm muitas variveis de entrada que produzem um output. No Evolver, uma soluo em geral se refere a uma das possveis combinaes de variveis, e no s melhor combinao. O processo pelo qual o Evolver gera um valor para cada varivel do problema e recalcula o cenrio para avaliao. O valor mais provvel ou moda o valor que ocorre com mais frequncia em um conjunto de valores. Em um histograma e uma distribuio de resultados, o valor central da classe ou a barra com a probabilidade mais alta. Varivel dependente uma varivel que, de alguma forma, depende dos valores de outras variveis do modelo em questo. Em outras palavras, o valor de uma varivel dependente incerta pode ser calculado por meio de uma equao, como funo de outras variveis incertas do modelo. Alternativamente, a varivel dependente pode ser tirada de uma distribuio baseada no nmero aleatrio, que correlacionado ao nmero aleatrio usado para tirar uma amostra de uma varivel independente. Consulte Varivel independente. Varivel independente aquela que no depende de nenhuma forma dos valores de outras variveis no modelo sob considerao. O valor de uma varivel independente incerta determinado tirando-se uma amostra de uma distribuio de probabilidades adequada. Esta amostra independente de qualquer outra amostra randmica extrada para qualquer outra varivel no modelo. Consulte Varivel dependente.

Simulao

Sobrevivncia do mais apto

Soluo

Tentativas Valor mais provvel

Varivel dependente

Varivel independente

214

ndice remissivo
A Adicionar como inserir restries algoritmo, definio algoritmos genticos por que usar? arquivo LeiaMe B backtracking bancos de dados barra de status barra de status C caixa de dilogo Modelo clula-alvo clulas ajustveis Comando Configuraes da aplicao Comando Solver de restries Como aprender a usar o Evolver condies de parada Condies de parada introduo E especificaes tcnicas Evolver o que ? Tutorial Evolver por que usar? Evolver comparao com o Microsoft Solver
ndice remissivo

118 149 17 10

193 162 208 135

26, 99 27, 100, 208 28, 101 131 132 10 125 35

191 13 10 17 156
215

Evolver quando usar Evolver capacidade Excel Solver exemplo das estaes de energia exemplos balanceamento de portflio compras distribuio de tarefas distribuio oramentria equilbrio qumico localizao de torres de rdio mix de portflio navegador espacial negociante ordenao alfabtica padaria problema de vendedor programao de horrios de aulas rotas segmentador de cdigo seleo de publicidade tarefas de oficina transformador transporte vendedor ambulante F funo objetivo funes de penalidade como usar exemplos explicao G geraes por que no so usadas Glossrio grficos H hill climbing
216

158 14849 155 83 77 85 53 57 59 75 81 89 91 51 55 87 61 69 65 49 73 93 95 87

100 186 185 182

191 207 39, 136

151

descrio exemplo Solver I inteiros J janela Progresso M mtodo de soluo agendamento descrio exemplo mtodo de soluo agrupamento descrio exemplo mtodo de soluo como restries mtodo de soluo oramento descrio exemplo mtodo de soluo ordem descrio exemplo mtodo de soluo projeto descrio exemplo mtodo de soluo receita descrio exemplo mtodo de substituio Mtodo Simplex minutos modelos contnuos O Objetivo da otimizao Observador Observador do Evolver opes de tempo de execuo operador gentico otimizao
ndice remissivo

159 160 155

102

129

111 61 108 65, 77 180 109 49, 57, 81, 83 107 107 53, 73, 87 110 69 106 51, 55, 59, 75, 85, 89, 91, 93, 95 193 159 125 155

27, 100 39, 135 39, 135 125 116


217

exemplo mtodos o que ? P paisagem de solues Palisade Corporation Percentil pool gentico pperadores problemas baseados em tabelas combinatrios lineares no lineares problemas baseados em tabelas problemas com mltiplas metas problemas combinatrios problemas lineares problemas no lineares R Remoo do Evolver do computador restries como funcionam restries hard (rgidas) restries soft (flexveis) rotina de seleo rotinas GRG S soluo global comparada soluo local soluo local comparada soluo global Solver comparao com o Evolver T taxa de crossover como funciona funo
218

153 149 15

150 5 213 175 116 162 162 159 159 162 188 14849 159 159

7 17779 193 31, 119 31, 119, 120, 182 191 155

155 155 155 156

138, 174 192 114

taxa de mutao como funciona funo tutorial V Valores velocidade, como aumentar

138 193 114 10

102 189

ndice remissivo

219

S-ar putea să vă placă și