You are on page 1of 10

INTRODUO AOS ALGORITMOS BIOINSPIRADOS NOS CURSOS DE GRADUAO E SUA APLICABILIDADE EM PROBLEMAS DE ALTA COMPLEXIDADE COMPUTACIONAL

Matheus S. Iglesias matheusiglesias@hotmail.com Universidade Federal do Esprito Santo, Centro Tecnolgico, Departamento de Engenharia Eltrica, Programa de Educao Tutorial Av. Fernando Ferrari, 514, Goiabeiras CEP: 29075-910 Vitria ES Vinicius P. Machado viniciuspich@gmail.com Pedro H. O. de Paula pedrohpaula@gmail.com Moises R. N. Ribeiro moises@ele.ufes.br Resumo: Este artigo apresenta uma introduo aplicao dos algoritmos bioinspirados como alternativa aos mtodos computacionais clssicos para soluo de problemas de alta complexidade computacional. Ademais de introduzir o tema, buscase discutir mais a fundo a aplicabilidade, a eficincia e os principais aspectos deste tipo de metaheurstica que o torna vantajoso ou no frente a outras metaheursticas ou at mesmo frente aos mtodos exatos. Este artigo ilustra as limitaes dos mtodos convencionais exatos justificando a necessidade de incluso do estudo de heursticas nos cursos de graduao em engenharia e apresentando a abordagem bioinspirada como uma boa ferramenta alternativa. Palavras-chave: Algoritmos bioinspirados, Heurstica, Abordagem de problemas.

INTRODUO

A relao entre desenvolvimento tecnolgico e a natureza historicamente conflituosa dando idia de que ambas encontram-se em vieses opostos. Em uma tica mais superficial um indivduo pode compartilhar essa percepo, embora em realidade muitos dos avanos tecnolgicos ao longo do tempo tenham sido alcanados ou pelo menos a priori inspirados em sistemas naturais. Atualmente notam-se tendncias contrrias as pregadas at ento, percebe-se a construo de uma ideologia cada vez mais forte de que a natureza, por sua adaptabilidade, vista como pice da evoluo. Tendo um grande apelo miditico e at mesmo cientfico. Em meio a esse contexto, apresentaremos neste artigo uma introduo aos algoritmos bioinspirados, aqueles que seguem um mtodo aproximativo que simula o comportamento de sistemas naturais, a aplicao destes algoritmos na engenharia muito vasta, principalmente como um mtodo de soluo alternativo para problemas de alta complexidade computacional. Ainda que o desenvolvimento da tecnologia da informao ocorra em um ritmo bastante acelerado, como previa Moore ao estimar um aumento de 100% no rendimento

dos computadores em um prazo de 18 meses, existem incontveis problemas cotidianos nos quais computadores modernos tardariam demasiado tempo para encontrar uma soluo tima por mtodos exatos. Em inmeros problemas de engenharia solues aproximadas (no necessariamente timas), encontradas rapidamente so aceitveis enquanto solues timas com um custo de tempo elevado so preteridas. As heursticas e metaheursticas so mtodos aproximativos bastante empregados para solucionar problemas de engenharia com a caracterstica supracitada. Os algoritmos bioinspirados so apresentados aqui como alternativas simples e, por vezes, bastante eficientes para soluo de tais problemas. A metaheurstica bioinspirada uma ferramenta que pode ser bastante til por seu apelo natural ser de fcil ilustrao didtica, ainda que no seja apresentada aos alunos do curso de engenharia de modo geral. Assim sendo, objetivamos nos prximos tpicos apresentar os algoritmos bioinspirados e discutir sua aplicabilidade, vantagem e desvantagem em relao aos mtodos convencionais e s demais metaheursticas. 2 CONCEITOS BSICOS

2.1 Problema e Complexidade Computacional Os problemas computacionais so divididos em dois grandes grupos no que diz respeito ao custo (tempo ou espao de memria) de execuo em relao ao numero de possveis solues: Tempo Polinomial determinstico: Conjunto de problemas que so solucionados em tempo relacionado polinomialmente com o nmero de solues possveis. Tempo Polinomial no determinstico: Conjunto de problemas que no so solucionados em um tempo relacionado polinomialmente com o numero de solues possveis. Para muitos problemas deste tipo, busca-se uma abordagem mais simples que o encaixe em uma relao de tempo polinomial, entretanto os problemas de NP completo parecem resistir a qualquer abordagem simplificada at ento, sendo considerados os problemas de NP mais difceis. 2.2 Otimizao Otimizao refere-se ao estudo de problemas em que se busca minimizar ou maximizar uma funo atravs da escolha sistemtica dos valores de variveis. Vizinhana: Conjunto de solues parecidas com a soluo em questo por constarem de muitos elementos semelhantes ou por apresentarem o valor da funo objetivo no muito diferente. Mnimo local: Uma soluo chamada de mnimo local se ela a melhor soluo dentro de sua vizinhana determinada. Mnimo global: Uma soluo chamada de mnimo global se ela a melhor soluo de todo o espao de solues admissveis.

2.3 Heursticas Otimizao Combinatria: Estuda problemas de otimizao em conjuntos finitos. Tcnicas exatas ou timas: Obtm e garantem a soluo tima. Atingir esta soluo pode ser difcil (muito demorado). Tcnicas aproximadas ou heursticas: No garantem a obteno da soluo tima. No entanto procuram obter uma boa soluo muito rapidamente. Tipos de Heursticas: o Heursticas de melhoramento: A partir de uma soluo admissvel qualquer se aplica melhoramentos pro meio de pequenas alteraes sucessivas. o Heursticas construtivas: Constri uma soluo passo a passo, segundo um conjunto de regras preestabelecido. o Heurstica composta: Tm uma fase construtiva e uma fase de melhoramentos. Metaheurstica: So estratgias inteligentes para projetar ou melhorar procedimentos heursticos mais gerais com alto rendimento. 2.4 Qualidade da soluo Soluo tima: A melhor soluo para um problema. Em um problema em que se deseja minimizar uma funo objetivo a soluo tima ser aquela que fizer a funo obter o valor de mnimo global. De mesma forma, em um problema de maximizao, a soluo tima ser aquela que fizer a funo apresentar o valor de mximo global. Soluo boa: Conceito subjetivo no qual o usurio pode definir uma soluo se a qualidade da mesma, ou seja, a proximidade para com a soluo tima, e o seu custo em espao (memria) ou tempo (execuo) formem uma relao que atenda satisfatoriamente necessidade do usurio. 3 ABORDAGENS DE PROBLEMAS DE PROGRAMAO LINEAR (PL)

A PL engloba sistemas onde as funes objetivo e as restries para as variveis so todas relaes lineares. Boa parte dos problemas operacionais (talvez a maior parte deles) pode ser expressa em programao linear. A pesquisa operacional (PO) um ramo interdisciplinar que faz o uso de modelos matemticos para solucionar problemas de otimizao em PL. Este campo de pesquisa to vasto e de tal simplicidade matemtica que muitas disciplinas so simplificadas para modelos lineares o que facilita sua abordagem didtica. A PO surgiu durante a Segunda Guerra Mundial para solucionar problemas complexos de natureza logstica, ttica e de estratgia militar. O mtodo prev a criao de modelos matemticos baseados em dados e fatos que permitem evidenciar os problemas em estudo e at mesmo ensaiar decises estratgicas ou alternativas.

Em meio a isso, surge o mtodo que se tornaria o mais usual para problemas do gnero, o mtodo Simplex, desenvolvido por George Dantzig em 1947. De maneira sucinta, seu funcionamento segue os seguintes passos: Introduzir variveis de folga para eliminar as desigualdades, substituindo-as por novas equaes. Realizar escalonamento parcial do sistema linear obtido a partir das restries e da funo objetivo. Criticar o sistema resultante do escalonamento, obtendo os valores os quais maximizam ou minimizam a funo objetivo. Embora seja um algoritmo verstil, de extrema simplicidade e, portanto, de alta aplicabilidade em disciplinas ministradas nos cursos de engenharia, o mtodo supracitado esbarra no problema custo versus qualidade da soluo. possvel construir um problema de programao linear prtico para o qual o mtodo simplex realiza uma quantidade exponencial de passos em relao ao tamanho do problema. Uma maneira didtica de demonstrar a limitao deste algoritmo pode ser elaborada ao sugerir a resoluo de um pequeno problema de logstica, onde as variveis ponderadas na funo fossem o preo do combustvel, o salrio do motorista, despesas com manuteno e a restrio fosse o preo do combustvel maior que um dado. Como todo problema de programao linear resolvido por este mtodo pode ser resumido a uma matriz com os coeficientes das variveis e restries, sugerimos a seguir a incluso de novas variveis, como por exemplo, os honorrios e depreciao do equipamento para apreciar que pequenos aumentos na dimenso da matriz tornam o problema imensamente mais elaborado. Para ilustrar esse fato, elaboramos um algoritmo em MATLAB para soluo de problemas de programao linear por meio do mtodo simplex. Alterando o options set da funo linprog, a mesma resolve uma matriz nXn que representa a matriz de variveis do problema sugerido acima. Aumentando a dimenso do sistema de equaes, o comportamento do custo em tempo para encontrar a soluo tima cresce exponencialmente.
9 8

TEMPO MDIO DE EXECUO (s)

7 6 5 4 3 2 1 0 50

100

150

200 250 300 NMERO DE VARIVEIS

350

400

Figura 1 - Grfico do custo em tempo (s) pelo nmero de variveis n.

Uma vez apreciada a limitao intransponvel no qual este algoritmo esbarra, mtodos alternativos tornam-se cada vez mais necessrios nos cursos de engenharia. Problemas tpicos estudados durante a graduao nos remetem a situaes nas quais os algoritmos convencionais podem no ser capazes de apresentar em tempo hbil o resultado timo de um problema. 4 CLASSIFICAO GENRICA DE ABORDAGENS BIOINSPIRADAS

Existem muitos algoritmos inspirados na natureza, ainda que no seja o objetivo do artigo descrever a todos eles, importante que se faa aqui uma apresentao para o leitor interessado guiar-se ao se aprofundar em pesquisas correlatas. Inteligncia de Enxames: o Colnia de Formigas: baseia-se no comportamento de colnias de formigas ao se depararem com mais de um caminho possvel. Nesta situao as formigas se dividem varrendo todos os caminhos possveis depositando uma pequena quantidade de feromnio em cada um deles. Ao retornar a maior quantidade de formigas tender a passar pelo caminho mais curto, e, portanto a partir de ento haver maior probabilidade das prximas formigas seguirem pelo caminho com maior depsito de feromnio. Com o passar do tempo a evaporao natural deste hormnio far com que os caminhos com menor quantidade de feromnio serem praticamente inutilizados. Este algoritmo muito utilizado em problemas de rede com eficincia conhecidamente boa. o Enxame de partculas: algoritmo de otimizao que imita o comportamento social animal, em particular o humano. Baseia-se na capacidade do individuo de interagir com outros membros da sociedade e com o meio ambiente de modo que os resultados globais sejam resultado dessas interaes individuais. A probabilidade de um individuo tomar certa deciso depende tanto de sua experincia individual como a experincia coletiva. O algoritmo deve ajustar os parmetros de uma funo em determinado ponto analisando os dados de todo o domnio da funo e da vizinhana deste ponto. Algoritmos Imunolgicos: Algoritmo baseado no sistema imunolgico humano utilizado com mtodo de otimizao. Nos prximos tpicos iremos abordar com maior nfase esse tipo de algoritmo. Algoritmos Genticos: Os algoritmos genticos visam abstrair de maneira rigorosa os processos adaptativos e seletivos naturais. O algoritmo trabalha com a famlia de solues candidatas (famlias de cromossomos). Solues so selecionadas por um algoritmo pseudo-aleatrio (as mais adaptadas tero mais possibilidades de serem selecionadas) formaro um novo grupo eleito para cruzamentos mtodo para formao de novas solues no qual se utiliza parte de uma soluo e parte de outra e posteriormente sero expostos mutao. A mutao consiste em uma pequena modificao aleatria das novas solues

para evitar que a otimizao seja estagnada em um ponto de mnimo ou mximo local. Ao final de cada iterao a famlia de cromossomos atualizada. Redes Neurais Artificiais: As redes neurais artificiais consistem em um mtodo de solucionar problemas de inteligncia artificial, construindo um sistema que simule o crebro humano, aprendendo, errando e fazendo descobertas. Devido complexidade das redes neurais no podemos nos prender em uma nica definio, existem inmeras definies ou interpretaes do que seja realmente uma rede neural. importante termos em mente que embora todo o apelo contemporneo de que o natural est sempre relacionado com uma aproximao do modelo perfeito, buscado pela natureza em sua evoluo, esses algoritmos nem sempre apresentam a melhor abordagem para esses problemas. Outra anlise crtica conveniente a de no restringir todas as tcnicas vistas nestes algoritmos s analogias naturais uma vez que muitas delas so conhecidas sem o apelo bioinspirado, como por exemplo, o fato de muitos algoritmos genticos utilizarem uma seleo pseudo-aleatria de indivduos de uma famlia de solues para imitar a probabilidade maior de um indivduo mais adaptado de reproduzir, no excluindo a capacidade de um menos adaptado tambm o fazer. Esta tcnica de ponderao em uma escolha pseudo-aleatria j um mtodo bastante empregado, conhecido por roulette-wheel selection ou busca estocstica com substituio. 5 O PROBLEMA DO CAIXEIRO VIAJANTE

O problema do caixeiro viajante (travelling salesman problem) um problema de otimizao aparentemente simples, porm de alta complexidade (NP completo), de modo que o esforo computacional cresce exponencialmente medida que o problema aumenta. Suponha que um caixeiro viajante tenha de visitar n cidades diferentes, iniciando e encerrando sua viagem na primeira cidade. Suponha, tambm, que no importa a ordem com que as cidades so visitadas e que de cada uma delas pode-se ir diretamente a qualquer outra. O problema do caixeiro viajante consiste em descobrir a rota que torna mnima a viagem total. Para solucionar este problema de maneira genrica teramos o numero de rotas R = (n-1)! . Tendo essa premissa em vista, pode-se concluir facilmente que no necessitamos de um numero muito elevado de ns (cidades) para fazer o numero de possibilidades e, portanto, o tempo de processamento atingir um valor suficientemente grande ao ponto de inviabilizar a anlise de todas as possibilidades. Um problema com poucos ns (25), teria 6.2 x 1023 possibilidades a serem analisadas por exemplo. Apresentaremos uma comparao entre as solues e o custo para obteno das mesmas por meio do mtodo exaustivo e por uma alternativa bioinspirada.

5.1 Abordagem convencional Seguindo uma abordagem clssica para se encontrar o melhor caminho do problema, devemos analisar todos os possveis caminhos e ento o de menor custo ser o timo. Assim sendo o nmero de rotas a serem analisadas ser R = (n-1)!. 5.2 Uma alternativa bioinspirada: o algoritmo imunolgico Para solucionar este problema para um numero elevado de cidades (ns), propomos um algoritmo inspirado no sistema imunolgico humano. Os sistemas imunolgicos artificiais (SIA) so relativamente recentes (dcada de 80) e baseiam-se no funcionamento do sistema imunolgico adaptativo dos seres vertebrados. Este algoritmo imita a capacidade de aprendizagem e de memria do sistema natural. A rea de pesquisa dos SIA extensa. A escolha dos melhores modelos (Seleo Negativa, Teoria de Rede Imunolgica, Seleo Clonal) depende do objetivo e das caractersticas do problema a ser estudado. Nesse problema, utilizaremos duas tcnicas do escopo dos SIA, a seleo clonal e a teoria da rede. Explicaremos brevemente em que consistem as tcnicas utilizadas e em que evento natural se baseia. Seleo clonal A resposta imunolgica adaptativa consiste em, por meio de clulas especializadas conhecidas por clulas B, reconhecerem e produzirem anticorpos especficos para o patgeno. Um patgeno apresenta em sua superfcie molculas conhecidas como antgeno, cada qual com um formato especfico. Aps o reconhecimento do antgeno por uma clula B, ela se especializa na produo de anticorpos para combat-lo. Uma vez iniciada a produo de anticorpos, guardada uma clula B de memria a qual produzir anticorpos contra o determinado antgeno se por ventura algum outro agente infeccioso apresent-lo. Este evento natural inspira outra tcnica conhecida como algoritmo de aprendizado. No se sabia exatamente o comportamento da resposta imunitria adaptativa quando no havia casamento perfeito entre o antgeno e a clula B, outra duvida era o comportamento do sistema ao haverem mais antgenos que clulas B. Em 1965, Burnet props que as clulas B com maior semelhana com o antgeno em questo se proliferariam e sofreriam pequenas mutaes. Este princpio conhecido como seleo clonal. Analogamente, no problema proposto, o antgeno seria a soluo tima. As clulas B seriam possveis solues as quais o algoritmo utilizaria como base, neste caso, a cada iterao o algoritmo aplicaria conceitos de seleo clonal para assemelhar estas solues tima. O conceito de semelhana ser descrito com maior rigor posteriormente neste artigo. Teoria da rede Em 1974, Jerne props a teoria da rede, a qual diz que o sistema imunolgico no permanece em repouso na ausncia de patgenos. O sistema seria composto por

uma rede de clulas e molculas as quais se reconhecem e esto ativas ainda que no haja estmulos externos. Esta atividade consistiria analogamente na eliminao de solues iguais na base de solues candidatas. A seguir um diagrama do algoritmo que utilizamos. O cdigo criado em ambiente MATLAB foi disponibilizado em nosso stio de internet encontrado nas referencias deste artigo. Cada soluo candidata representada por um vetor que indica a ordem de ns pela qual o caixeiro ter que passar. As mutaes aplicadas so permutaes na ordem de dois ns no vetor soluo. A soluo clonal funciona escolhendo a cada iterao uma soluo candidata que apresente uma distancia total percorrida menor e ento fazemos cpias da mesma com pequenas mutaes e as inclumos na base. Esta etapa de vital importncia para a manuteno da diversidade da base de solues com a qual evitamos uma situao que nos prenda a um mnimo local. A teoria da rede aplicada na retirada da base de solues idnticas no final de cada iterao.

Figura 2 - Diagrama do SIA implementado para a soluo do problema do caixeiro viajante.

5.3 Anlise comparativa entre mtodo convencional e alternativa bioinspirada Com base na tabela comparativa exposta abaixo, fcil concluir que, ainda que no apresente a soluo tima e que para um nmero muito maior de ns no tenhamos sequer outro mtodo exato como referncia para a qualidade da soluo, no nos resta outra opo alm de implementar heursticas para soluo de problemas deste tipo. Lembramos ainda que este problema adaptado ao problema de redes ou qualquer grafo seria um problema extremamente simples, uma vez que problemas desta natureza aparecem cotidianamente com um numero muito maior de ns.

N 5 6 7 8 9 10 11 12 13 14 15

Sistema Imunolgico Artificial Diferena em relao ao timo(%) Tempo de execuo (s) 0 0 0 0 4,76 0 5,26 9,76 3,57 14,81 7,69 0,0121 0,0094 0,0104 0,0111 0,0179 0,0305 0,0139 0,1187 0,1867 0,4518 0,3056

Mtodo Exaustivo Tempo de execuo (s) 0,0069 0,0135 0,0197 0,015 0,0361 0,1649 0,8366 9,366 118,8001 1692,0102 24190,0004

Tabela 1 Resultados para o problema do caixeiro viajante por dois mtodos distintos. Por fim, pedimos a ateno do leitor para o fato de que a heurstica construda pode no ser a melhor para a resoluo deste problema, tanto em custo como em qualidade da soluo obtida. Existem exemplos dentro do vasto campo das metaheursticas e inclusive no campo das bioinspiradas que podem ser mais adequadas para solucionar este problema. 6 CONSIDERAES FINAIS

As concluses que tomamos com base no trabalho exposto neste artigo so de que a Heurstica de modo geral uma temtica de extrema importncia nos cursos de engenharia, embora no seja devidamente apresentada e estudada na graduao, exceto talvez em alguns cursos de engenharia da computao. Os algoritmos bioinspirados aparecem neste contexto com uma opo vlida frente aos mtodos exatos por serem capazes de apresentarem solues boas considerando os custos e qualidade da soluo. Embora haja uma forte tendncia atualmente em considerar o modelo natural como sendo sempre um bom modelo, posto que a natureza consegue evoluir e se adaptar a uma diversidade de situaes extremas, certa viso critica faz-se necessria. Os modelos bioinspirados tm grande vantagem por serem didticos e simples, mas muitos problemas podem ser mais bem abordados por tcnicas heursticas no bioinspiradas. Por fim, conveniente salientar que, ainda que muitas tcnicas sejam expostas como novidades com um apelo bioinspirado, estas podem ser idnticas a outras j existentes sem esse apelo. importante que o interessado em aprofundar-se um pouco mais no estudo desse tema consiga filtrar o que realmente novidade dentre as coisas que assim so apresentadas. REFERNCIAS BIBLIOGRFICAS

BRABAZON, Anthony; O'NEIL, Michael. Biologically Inspired Algorithms for Financial Modeling. Dublin, Ireland: Springer, 2006. 254 p. CASTRO, Pablo A. Dalbem de; VON ZUBEN, Fernando J. Sistemas Imunolgicos Artificiais. Disponvel em: <http://www.dca.fee.unicamp.br/~pablo>. Acesso em: 29 jan. 2010. LISBOA, Erico Fagundes Anicet. Programao Linear. 2002. Rio de Janeiro, Rio de Janeiro, Brasil. SILVA, Roberto Claudino da. Algoritmos e Complexidade Computacional. Disponvel em: <http://www.claudino.unifei.edu.br/CCO610/CCO61020.pdf>. Acesso em: 14 mar. 2010. SOUZA, Rodrigo Clemente Thom de. Heursticas Bioinspiradas De Otimizao Combinatria. Gesto: Revista Cientfica de Administrao e Sistemas de Informao, Curitiba, v. 10, n. 10, p.19-24, 10 abr. 2008.

INTRODUCTION TO BIOLOGICALLY INSPIRED ALGORITHMS ON GRADUATE COURSES AND THEIR APPLICABILITY ON HIGH COMPLEXITY COMPUTATIONAL PROBLEMS.

Abstract: This paper presents an introduction to the application of biologically inspired algorithms as an alternative to classic computational methods to solve high complexity problems. Apart from introducing the topic, its intended to have a further discussion of the applicability, efficiency and the main aspects of this type of metaheuristic that makes it advantageous or not compared to other metaheuristics or even facing the exact methods. This paper illustrates the limitations of conventional accurate methods justifying the inclusion of the study of heuristics in graduate engineering courses and present the bioinspired approach as a good alternative tool.

Key-words: Bioinspired algorithms, Heuristics, Conflict resolution

You might also like