1 / 66

Computação distribuída do Algoritmo Genético Compacto usando Web Services

Computação distribuída do Algoritmo Genético Compacto usando Web Services. Samuel Viana, nº 18778 Licenciatura em Informática – Ramo Tecnológico Orientador: prof. Fernando Lobo. “Road-Map”. Web Services Algoritmo Genético Compacto (cGA) cGA usando Web Services Resultados

langer
Download Presentation

Computação distribuída do Algoritmo Genético Compacto usando Web Services

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computação distribuída do Algoritmo Genético Compacto usando Web Services Samuel Viana, nº 18778 Licenciatura em Informática – Ramo Tecnológico Orientador: prof. Fernando Lobo

  2. “Road-Map” • Web Services • Algoritmo Genético Compacto (cGA) • cGA usando Web Services • Resultados • Conclusão e Trabalho Futuro

  3. Web Services - Motivação • Arquitecturas diversas • Necessidade em integrar serviços • Necessária linguagem comum que permita a interoperabilidade

  4. Web Services - Definição • Forma de integrar e trocar e informação entre sistemas concebidas sob plataformas diferentes, usando um formato de texto conhecido por XML.

  5. Vantagens • Acessíveis a partir de qualquer parte da Internet • Atravessam firewall’s e proxy’s • Independentes da plataforma • Baseados em XML • Interacção entre aplicações sem intervenção humana • Diminuem complexidade e custos ligados à integração

  6. Web Services (Arquitectura)

  7. Suporte para Web Services • Necessidade de um formato de transmissão de informação que permita: • Propagá-la facilmente • Criar uma estrutura que facilite o acesso ao item desejado • Vantagens da estrutura: • Validação • Reutilização • Normalização

  8. HEAD HTML BODY XML • XML -> “eXtended MarkUp Language” • Linguagem composta por anotações (Mark-Up) • Orientada para o conteúdo • Ideal para acesso rápido • Legível para humanos • Define estrutura em árvore

  9. XML • Características principais: • Extensível • Estruturada • Validação • Meta-Linguagem • Gramática definida por DTD ou XML Schemas

  10. Web Services <receita> <ingredientes> <ingrediente> farinha em pó </ingrediente> <ingrediente> 0,5 litros leite </ingrediente> <ingrediente> 2 ovos </ingrediente> </ingredientes> </receita> Exemplo de um documento XML

  11. XML Schemas <schema xmlns="http://www.w3.org/2001/XMLSchema> <element name="receita"> <complexType> <sequence> <element ref="ingredientes" maxOccurs="1" /> </sequence> </complexType> </element> <element name="ingredientes"> <complexType> <sequence> <element ref="ingrediente" maxOccurs="unbounded" /> </sequence> </complexType> </element> <element name="ingrediente" type="string" /> </schema>

  12. WSDL • WSDL -> “Web Services Definition Language” • Baseado em XML • Define interface de acesso • Cada linguagem de programação deve transpô-lo para código nativo

  13. WSDL

  14. SOAP SOAP -> Simple Object Access Protocol • Protocolo baseado em XML • Define o formato das mensagens • Qualquer protocolo da camada de aplicação, mas geralmente usa HTTP • Elemento Raíz é <ENVELOPE> • Envelope divide-se em cabeçalho e corpo

  15. SOAP Exemplo de uma mensagem SOAP

  16. SOAP Mensagem SOAP (sentido request)

  17. SOAP Mensagem SOAP (sentido response)

  18. Algoritmos Genéticos • Orientado para problemas de pesquisa e optimização • Resolvem numa escala de tempo muito inferior • Um cromossoma: composto por genes • Genes assumem valor 0 ou 1 • População representa todas as soluções actualmente disponíveis um cromossoma de 10 bit’s representa uma potencial solução 1011100010

  19. Algoritmos Genéticos • Função de Fitness mede a qualidade da solução • Indivíduos comparáveis graças ao fitness • Selecção para cruzar os melhores indivíduos • Nova geração terá um fitness médio mais elevado • Deste modo, ao fim de n gerações a convergência será atingida

  20. Algoritmos Genéticos • Operadores de Selecção: • Roleta • Torneio

  21. 10 5 6 1 0 Algoritmo Genético Compacto A população é substituída por um vector de probabilidades, também conhecido por vector população.

  22. Algoritmo Genético Compacto (cGA) • É inicializado um vector com todas as posições a 0,5 • São gerados s indivíduos a partir do vector, sendo s a pressão de selecção • É calculado o fitness de cada indivíduo • É efecutado um torneio entre os s indivíduos, sendo vencedor o indivíduo de melhor fitness • O vector é actualizado através da comparação bit a bit entre vencedor e vencido. • Verifica-se se o vector convergiu, caso contrário, volta-se ao passo 2

  23. 1 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 Exemplo do cGA Problema One-Max (contar o número de uns) Selecção por torneio 3 4

  24. 1 1 0 1 0 0 Exemplo do cGA Actualização do vector população 0 1 0 1 1 1 0.5 1.0 0.0 0.7 0.2 0.5

  25. 1 1 0 1 0 0 Exemplo do cGA Actualização do vector população 0 1 0 1 1 1 0.4 1.0 0.0 0.7 0.3 0.6

  26. Computação Distribuída • Aproveita-se os ciclos de CPUs desocupados • Conectividade global da Internet permite a difusão • O seu somatório permite ter o mesmo efeito de um supercomputador • O SETI@home ajudou a popularizar o modelo

  27. cGA distribuído • O vector é uma representação compacta de uma população • Única desvantagem: o comprimento do vector • Facilmente distribuído pela Internet

  28. Arquitecutra Worker/Manager • Foi proposta (Lobo,2005) uma arquitectura que explora esta possibilidade • Existem dois tipos de entidades: workere manager • Um Manager – gera o vector população • Múltiplos Worker s– processam o vector

  29. manager worker Worker/Manager

  30. manager worker Worker/Manager

  31. manager worker Worker/Manager

  32. manager worker worker worker worker worker Worker/Manager ...

  33. worker worker worker worker worker Worker/Manager manager X X ...

  34. Worker/Manager • Vantagens: • Custos de sincronização baixos • Tolerância a falhas • Escalabilidade

  35. Aplicação • Função de teste utilizada (10 trap’s concatenadas totalizando um total de 30 bits) • Problema complicado de resolver para o cGA (Harik, Goldberg, Lobo, 1999), sendo necessário um efectivo populacional enorme o representa o número de uns

  36. Simulação em série • Não é usada uma rede real • Manager e workers correm na mesma máquina • Série tem mesmos efeitos que em paralelo • Um manager • P workers, que trabalham à mesma velocidade e arrancam ao mesmo tempo

  37. Simulação em série • Condições da experiência • Efectivo populacional N=100 000 • Indivíduos representados por cromossomas de 30 bits • Pressão de selecção 8 • Selecção por torneio • Função de 10 trap’s sobre 3 bits com deceive-to-optimal ratio 0,7 • Combinações de P em {1,2,4,8,16,32,64,128,256,512,1024} com m em {8,80,800,8000,80000}. • Cada combinação diferente foi executada 30 vezes

  38. Simulação em série Número de cálculos de cada worker

  39. Simulação em série Total de contactos por processador worker

  40. Simulação em série Análise dos resultados • Valores elevados de m diminuem o número de comunicações, enquanto valores baixos o aumentam • Redução quase linear entre P e o total de cálculos necessários para atingir a convergência (não se verifica para m= 8000 e m=80000). • Contactos reduzem-se com m • Contactos inversamente proporcionais a P

  41. cGA distribuído por Web Services • Meios utilizados: • Java 5 • Servidor de Java Server Pages Apache Tomcat • Apache Axis

  42. A escolha da Java • Orientada a objectos • Simplicidade, experiência e à vontade • Interoperabilidade dos WS pode ser melhor explorada por uma linguagem multi-plataforma • Por ser imediatamente portável, as potencialidades de uma nova plataforma são exploradas de imediato • Suporta threads nativamente

  43. Modificações à proposta original • Não foi possível concretizar as ideias originais do projecto: • Falta de tempo • Objectivos ambiciosos • Falta de recursos humanos e logísticos

  44. Modificações à proposta original • Como alternativa: • Substituir um processador worker individual por uma thread

  45. O que são threads ? • Tradicionalmente, o CPU está ocupado apenas por uma tarefa

  46. O que são threads ? • Com threads, repartimos a actividade do CPU em várias tarefas simultaneamente • Deste modo, é como se tivéssemos vários CPUs num

More Related