computação distribuída do algoritmo genético compacto usando web services

66
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

Upload: langer

Post on 06-Jan-2016

32 views

Category:

Documents


0 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 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º 18778Licenciatura em Informática – Ramo

TecnológicoOrientador: prof. Fernando Lobo

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

“Road-Map”

• Web Services • Algoritmo Genético Compacto (cGA) • cGA usando Web Services• Resultados• Conclusão e Trabalho Futuro

Page 3: Computação distribuída do Algoritmo Genético Compacto usando Web Services
Page 4: Computação distribuída do Algoritmo Genético Compacto usando Web Services
Page 5: Computação distribuída do Algoritmo Genético Compacto usando Web Services

Web Services - Motivação

• Arquitecturas diversas

• Necessidade em integrar serviços

• Necessária linguagem comum que permita a interoperabilidade

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

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.

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

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

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

Web Services (Arquitectura)

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

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

Page 10: Computação distribuída do Algoritmo Genético Compacto usando Web Services
Page 11: Computação distribuída do Algoritmo Genético Compacto usando Web Services
Page 12: Computação distribuída do Algoritmo Genético Compacto usando Web Services

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

HTML

HEAD

BODY

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

XML

• Características principais:– Extensível – Estruturada– Validação

• Meta-Linguagem

• Gramática definida por DTD ou XML Schemas

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

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

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

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>

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

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

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

WSDL

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

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

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

SOAPExemplo de uma mensagem SOAP

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

SOAPMensagem SOAP (sentido request)

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

SOAPMensagem SOAP (sentido response)

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

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

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

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

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

Algoritmos Genéticos

• Operadores de Selecção:

– Roleta

– Torneio

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

016510

Algoritmo Genético Compacto

1 0 1 0 0

1 1 0 0 0

1 0 1 0 0

1 0 1 0 0

1 1 1 0 0

1 1 0 0 0

1 0 0 0 0

1 1 0 0 0

1 1 1 0 0

1 0 1 1 0

1,0

0,5

0,6

0,1

0,0

A população é substituída por um vector de probabilidades, também conhecido por vector população.

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

1. É inicializado um vector com todas as posições a 0,5

2. São gerados s indivíduos a partir do vector, sendo s a pressão de selecção

3. É calculado o fitness de cada indivíduo4. É efecutado um torneio entre os s indivíduos,

sendo vencedor o indivíduo de melhor fitness5. O vector é actualizado através da comparação

bit a bit entre vencedor e vencido.6. Verifica-se se o vector convergiu, caso contrário,

volta-se ao passo 2

Algoritmo Genético Compacto (cGA)

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

Exemplo do cGAProblema One-Max (contar o

número de uns) 001011 1110100.5 1.0 0.0 0.7 0.2 0.5

3

4111010

Selecção por torneio

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

Exemplo do cGAActualização do vector população

001011

0.50.20.70.01.00.5

111010

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

Exemplo do cGAActualização do vector população

001011

0.60.30.70.01.00.4

111010

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

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

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

cGA distribuído

• O vector é uma representação compacta de uma população

• Única desvantagem: o comprimento do vector

• Facilmente distribuído pela Internet

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

Arquitecutra Worker/Manager

• Foi proposta (Lobo,2005) uma arquitectura que explora esta possibilidade

• Existem dois tipos de entidades: worker e manager

• Um Manager – gera o vector população

• Múltiplos Worker s– processam o vector

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

Worker/Managermanager

worker

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

Worker/Managermanager

worker

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

Worker/Managermanager

worker

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

Worker/Managermanager

worker worker worker workerworker

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

Worker/Managermanager

worker worker worker workerworker

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

Worker/Manager

Vantagens: Custos de sincronização baixos Tolerância a falhas Escalabilidade

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

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

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

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

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

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

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

Simulação em sérieNúmero de cálculos de cada worker

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

Simulação em sérieTotal de contactos por processador worker

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

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

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

cGA distribuído por Web Services

• Meios utilizados:– Java 5

– Servidor de Java Server Pages Apache Tomcat

– Apache Axis

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

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

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

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

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

Modificações à proposta original

• Como alternativa:

– Substituir um processador worker individual por uma thread

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

O que são threads ?

• Tradicionalmente, o CPU está ocupado apenas por uma tarefa

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

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

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

Processo de Geração do Código

WSDL

wsdl2java

java java java java java java java java

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

Funções Web Services

CreateNewPopulationVector

O cliente pede ao servidor para inicializar um novo vector

DownloadPopulationVector

Envia um novo vector a uma thread worker

SendPopulationVector O worker envia as diferenças para o servidor manager

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

Esquema Geral

Creat

eNew

Popul

atio

nVec

tor

m,p

opsi

ze,s

Cliente

Servidor

initD

ata

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

Esquema Geral

Dow

nloa

dPop

ulat

ionV

ecto

rD

ownl

oadP

opul

atio

nVec

tor D

ownloadP

opulationVector

Dow

nloadPopulationV

ectorm,popsize,s

m,popsize,sm,popsize,s

m,popsize,s

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

Esquema Geral

SendP

opul

atio

nVec

tor

Sen

dPop

ulat

ionV

ecto

r SendP

opulationVector

SendPopulationV

ector

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

Condições da experiência

• Parâmetros dos GA idênticos às da simulação• Dois computadores da sala de projectos

– Cliente : AMD Athlon XP 2000+, 768 MB de RAM– Servidor: Pentium III 666 MHz, 192 MB de RAM– Hub rede 100 MB

• 128 threads simultâneas no máximo• Máximo 5 execuções por combinação P/m por

limitações impostas pela rede da sala saturar com m=8

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

Resultados da execução com Web Services

Número de cálculos de fitness

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

Resultados da execução com Web Services

Número de contactos servidor/threads

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

Comparação de resultadosNúmero de cálculos de fitness

Web Services Simulação

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

Comparação de resultadosNúmero de contactos

Web Services Simulação

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

Análise dos resultados

• Quanto maior P são reduzidos globalmente:– o número de comunicações– cálculos de fitness

• O aumento de m:– diminui o número de contactos– não altera substancialmente o número de cálculos de

fitness– Para m = 80000, a relação linear perde-se a partir de

P=8

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

Interpretação

• Aumento de P permite:– Explorar um maior nº de indivíduos

• Aumento de m:– diminui o número de contactos, – Para m=80000, ocorre degradação

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

Interpretação (cont.)Tt = Te + Tc

Tt Tempo total dispendidoTe Tempo dispendido em cálculosTc « « « comunicações

Aumento de P :• diminui tanto Te como Tc

Aumento de m:• diminui Tc

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

Sugestão para a Internet

Em caso de utilização real:

• O valor de m deve ser determinado de acordo com a largura de banda

• Para valores de m muito grandes, terá que ser considerado o efeito da degradação eventual

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

Conclusão

• Os resultados dos Web Services concordam totalmente com os resultados da simulação para P <= 128

• Apesar de não ser uma implementação em série, o efeito acaba por ser semelhante uma vez que as threads do cliente arrancam aproximadamente ao mesmo tempo

• Os Web Services provam ser uma alternativa a sockets na conectividade global

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

Trabalho futuro

• Concretizar os objectivos originais do projecto, usando a Internet

• Verificar para P>128

• Criar clientes em diversas linguagens de programação,

• Determinar empiricamente Te e Tc

• Usar uma distribuição exponencial ao longo do tempo