• Nenhum resultado encontrado

Apresentação. Busca Distribuída Utilizando Comunicação em Grupo para a Resolução do Problema 8-Puzzle. Acadêmico Anderson Rodrigo Janke

N/A
N/A
Protected

Academic year: 2021

Share "Apresentação. Busca Distribuída Utilizando Comunicação em Grupo para a Resolução do Problema 8-Puzzle. Acadêmico Anderson Rodrigo Janke"

Copied!
18
0
0

Texto

(1)

Busca Distribuída Utilizando Comunicação em Grupo para a Resolução do Problema 8-Puzzle

Acadêmico

Anderson Rodrigo Janke

Orientador

Prof. Paulo Fernando da Silva

Apresentação

• Introdução – Contextualização – Objetivos • Fundamentação • Desenvolvimento – Requisitos – Especificação – Implementação – Operacionalidade – Resultados e Discussão • Conclusão – Extensões • Referências Bibliográficas

(2)

Introdução

Contextualização • Computadores ociosos • Poder computacional • Sistemas distribuídos • Comunicação em grupo • Busca distribuída

Introdução

Objetivos

• Solucionar diferentes estados do problema

8-Puzzle através de busca distribuída

• Utilizar o mecanismo de comunicação em grupo

Spread na plataforma Windows

• Gerenciar 20 computadores interligados através de uma rede LAN

(3)

Fundamentação

Sistemas Distribuídos

• Conjunto de componentes interligados através de uma estrutura de comunicação, que cooperam e se coordenam entre si.

Rede

Rede

Fundamentação

Comunicação em Grupo

• Comunicação de um para muitos • Agrupamento de processos

(4)

Fundamentação

O problema 8-Puzzle

Fundamentação

Algoritmos de busca • Busca em largura • Busca em profundidade • Busca heurística • Mecanismo de poda

(5)

Fundamentação

Biblioteca wxWidgets

• Permitir portabilidade

• Constitui uma biblioteca de classes

• Possui uma API padrão para todas as plataformas

Fundamentação

Trabalhos correlatos

• Aplicativo de troca de mensagens (GOULART, 2002, p. 86)

• Aplicativo de coleta de dados e gerência de computadores em uma rede (GOULART, 2002, p. 134)

• Aplicativo de unificação de logs para um cluster de servidores Apache (MODLOG, 2000)

• AOL Communicator (AOL, 2003) • Audacity (AUDACITY)

(6)

Desenvolvimento

Requisitos Funcionais

• Possuir um aplicativo cliente

– Controlar as configurações do problema – Gerenciar a busca entre os servidores

• Possuir um aplicativo servidor

– Efetuar a busca pela solução do problema – Enviar estatísticas para o aplicativo cliente

– Informar a solução para o aplicativo cliente caso encontre-a

Desenvolvimento

Requisitos Não Funcionais

• Arquitetura cliente/servidor • Utilizar o mecanismo Spread • Funcionar em uma rede LAN

• Compatível com Windows 2000 Professional ou superior

(7)

Desenvolvimento

Especificação

• Técnicas e ferramentas utilizadas

– Diagramas de casos de uso, classe e seqüência, da linguagem UML

– Aplicativo Rational Rose versão 2003.06

Executar Busca Cancelar Busca Visualizar Estatistica Visualizar Solução Usuário Criar Busca

Desenvolvimento

(8)

Desenvolvimento

Diagrama de Classes do Aplicativo Cliente

ThreadC ontrole

form P rinc ipal : F ram eP rinc ipal has hB usc a[ ] : F ram eB usc a lis taS ervidores [] : S ervidor ThreadControle() adicionaB us ca() entraG rupo() enviaM s gG rupo() enviaM s gS ervidor() ex c luiB us c a() s aiGrupo() run() c onect aS pread() des c onec t aSpread() rec ebeS pread()

FramePrincipal

threadControle : ThreadControle Fram eP rinc ipal() es c reveLog() ex c luiB us c a() inic ializ aThreadControle() novaB us c a()

Solucao

es tadoA tual : S t ring pas s oA tual : Integer s ervidor : S ervidor s oluc ao : S tring t ot alP as s os : Integer S oluc ao() getE s t adoA tual() getP as s oA tual() getS ervidor() getTot alP as s os() pas s oA nt erior() prox im oP as s o() Se rvidor nom e : S tring rede : S tring S ervidor() getNom e() getRede() ThreadEstatistica fram eB us c a : F ram eB us ca ThreadE s tatis tica() run()

FrameBusca

algoritm o : Integer bus c aID : Integer fram eP rinc ipal : Fram eP rinc ipal has hS ervidores [ ] : S ervidor threadE s tatis tic a : ThreadE s t at is tic a Fram eB us c a()

bus c aE nc errada() c onfirm aInic io() proc es s aE s tatis tic a() regis traE ntrada() regis traS aida() s olicitaE s t atis tic a() s oluc aoE ncontrada() inic iaB us c a() paraB us c a() s elec ionaS oluc ao()

1 1 1 1 1 1 0.. * 0.. * 0..* 0..* 1 1 0.. * 1 0.. * 1 0.. * 0.. * 1 1 0.. * 1 0.. * 0.. * 0.. * 1 1 1 Criar Busca Executar Busca Cliente

Desenvolvimento

(9)

Desenvolvimento

Diagrama de Classes do Aplicativo Servidor FramePrincipal threadControle : ThreadControle FramePrincipal() escreveLog() inicializaThreadControle() ThreadC ontrole framePrincipal : FramePrincipal hashBusca[] : ThreadBusca nomeRede : String nomeServidor : String conexaoSpread : mailbox ThreadControle() entraGrupo() enviaMsgCliente() enviaMsgGrupo() excluiBusca() run() saiGrupo() conectaSpread() desconectaSpread() recebeSpread() Busca configuraEstados() proximoPasso() Busca() ThreadBus ca busca : Busca grupo : String servidorID : Integer thread : ThreadControle totalServidores : Integer ThreadBusca() encerraBusca() geraEstatistica() preparaBusca() run() transmiteSolucao() constroiResposta() geraEstadoInicial() Busc aLargura listaAbertos : ListaNodos listaFechados : ListaNodos nodoAtual : Nodo nodoFinal : Nodo BuscaLargura() HeapBinaria hashNodos[] : Nodo heapNodos[] : Nodo tamanho : Integer usarIndiceHash : Boolean HeapBinaria() adicionaElemento() getPosicaoElemento() getNodo() getTamanho() removeElemento() removeMenorElemento() Nodo custoG : Integer custoH : Integer espaco : Integer estado[] : Integer parente : Nodo posicaoLista : Integer Nodo() comparaNodo() geraSucessores() getCustoF() getElemento() getFichaCentral() getEstado() getEspaco() getParente() getPosicao() getPosicaoLista() setCustoG() setCustoH() setParente() setPosicaoLista() ListaNodos base : Integer hashNodos[] : Nodo topo : Integer listaNodos : Nodo usarIndiceHash : Boolean ListaNodos() adicionaElemento() getNodo() getPosicaoElemento() getTamanho() removePrimeiroElemento() Bus caAEstrela estadoFinal[] : Integer listaAbertos : HeapBinaria listaFechados : ListaNodos nodoAtual : Nodo nodoFinal : Nodo BuscaAEstrela() calculaCustoH() 1 1 1 1 1 1 0..* 0..* 1 1 1 1 1 1 1 1 0..* 0..* 1 2 2 1 0..* 2 2 2 1 1 0..* 1 1 1 1 1 11 2 1 1 1

Desenvolvimento

Implementação

• Técnicas e ferramentas utilizadas

– Mecanismo de comunicação em grupo Spread – Biblioteca wxWidgets

– Aplicativo Microsoft Visual C++ .Net versão 7.1 – Compilador gcc versão 3.3.3

(10)

Desenvolvimento

Implementação - Continuação • Divisão de nodos 3 5 7 8 4 6 1 2 3 5 7 8 1 4 6 2 3 5 7 8 4 6 1 2 3 7 8 5 4 6 1 2 3 5 7 8 4 6 1 2 3 5 7 8 1 4 6 2 3 5 7 8 1 4 6 2 3 5 7 8 4 6 1 2

Desenvolvimento

Implementação - Continuação • Solução 5 6 7 2 8 4 3 1 5 6 7 2 8 4 3 1 5 6 7 4 2 8 3 1 5 6 7 4 8 3 2 1 5 6 7 4 2 8 3 1 134802765 134820765 130824765 103824765 123804765 4 5 2 1 4

(11)

Desenvolvimento

Operacionalidade • Servidor Spread

Desenvolvimento

Operacionalidade - Continuação • Aplicativo Servidor

(12)

Desenvolvimento

Operacionalidade - Continuação • Aplicativo Cliente

Desenvolvimento

Operacionalidade - Continuação

• Visão Geral

(13)

Desenvolvimento

Operacionalidade - Continuação

• Solucionar o problema 8-Puzzle com os estados:

– Inicial: 2, 1, 6, 4, 0, 8, 7, 5, 3 – Final: 1, 2, 3, 8, 0, 4, 7, 6, 5

• Utilizando 1 e 3 servidores

• Utilizando variações das configurações de algoritmo e índice de nodos hash

Desenvolvimento

Operacionalidade - Continuação

(14)

Desenvolvimento

Operacionalidade - Continuação

• Verificando solução

Desenvolvimento

Resultados e Discussão 1:59 Sim 60843 162483 Não Largura 3 5 0:17 Sim 18409 49995 Sim A* 1 4 2:15 Sim 18409 49995 Não A* 1 3 0:19 Sim 23642 64712 Sim Largura 1 2 3:22 Sim 23642 64712 Não Largura 1 1 Processados Gerados Tempo (m:ss) Concluído Nodos Índice hash Algoritmo Servidores Busca

(15)

Desenvolvimento

Resultados e Discussão – Continuação

• Distribuição é um método eficiente

• Busca A* é mais rápida que Busca em Largura • Mecanismo Spread é prático e estável

• Protótipo com a biblioteca wxWidgets é estável no

Windows e instável no Linux

• Busca com utilização de índice de nodos por hash é mais rápida

Desenvolvimento

Resultados e Discussão – Continuação

• Índice de nodos hash

0 2000 4000 6000 8000 10000 12000 14000 5 15 25 35 45 55 65 75 85 95 105 115 125 135

Te mpo (se gundos)

N o d o s p ro c e s s a d o s

(16)

Desenvolvimento

Resultados e Discussão – Continuação

• Índice de nodos hash

0 500 1000 1500 2000 2500 5 15 25 35 45 55 65 75 85 95 105 115 125 135 Tempo (segundos) N o d o s p ro c e s s a d o s

Sem índice hash Com índice hash

Desenvolvimento

Resultados e Discussão – Continuação

• Trabalhos correlatos

– Forma de utilização do mecanismo Spread é a mesma – Aplicativos com wxWidgets tem desempenho similar no

(17)

Conclusão

• Todos os objetivos foram alcançados • Biblioteca wxWidgets é vantajosa para

multiplataforma

• Demais ferramentas foram adequadas para o desenvolvimento

• Protótipo limitado ao problema 8-Puzzle, intolerante a falhas

Conclusão

Extensões

• Portar para a linguagem Java em forma de applet • Aperfeiçoar para redes WAN

• Tolerância e recuperação de falhas • Filtro de respostas

• Outros algoritmos • Outras áreas

(18)

Referências Bibliográficas

AOL. Aol communicator, Dulles, 2003. Disponível em:

<http://www.aolepk.com/communicator/index.html>. Acesso em 12 nov. 2004.

AUDACITY. Audacity, [s.l.], [s.d]. Disponível em: <http://audacity.sourceforge.net/>. Acesso em 12 nov. 2004.

GOULART, Ademir. Avaliação de mecanismos de comunicação em grupo para

ambientes wan. 2002. 169 f. Dissertação (Mestrado em Ciências da Computação)

-Universidade Federal de Santa Catarina, Florianópolis.

GRISOFT. Avg anti-virus, Lidicka, 2004. Disponível em: <http://www.grisoft.com>. Acesso em 12 nov. 2004.

MODLOG. Mod_log_spread: a tool for distributed auditing and monitoring, [s.l.], 2000. Disponível em: <http://www.lethargy.org/mod_log_spread/>. Acesso em: 11 ago. 2004.

Referências

Documentos relacionados

No Diretório de Comunicação da Igreja no Brasil encontramos a abrangência do serviço da Pascom, no número 248: “Compreendendo a Pascom em sua abrangência, algumas características

Arquitetura de Sistemas Distribuídos; Paradigmas de Arquitetura de Sistemas Distribuídos; Paradigmas de Computação Distribuída; Suporte Computacional para Computação

Arquitetura de Sistemas Distribuídos; Paradigmas de Arquitetura de Sistemas Distribuídos; Paradigmas de Computação Distribuída; Suporte Computacional para Computação

&gt; Personalizar configurações de câmera Antes de tirar uma foto, selecione seguintes opções: Opção Visibilidade exterior Macro Disparo Temporizador Resolução Controle do

O Estudo de Anatomia Simples e Dinâmico Capítulo 8 49 EPIISOPILOTURINA REDUZ O NÚMERO DE MASTÓCITOS NA MUCOSITE INTESTINAL INDUZIDA POR 5-FLUOROURACIL EM CAMUNDONGOS.

Assim, o objetivo deste estudo é o de destacar as principais transformações percebidas pelos servidores da Universidade Federal de Santa Maria UFSM após o processo de

Uma gastronomia de alta qualidade e variedade e uma enorme oferta de atividades de lazer asseguram que os Açores – também depois das horas de trabalho – oferecem

A aplicação utilizada como exemplo neste trabalho consiste de um SDRV (Sistema Distribuído de Realidade Virtual), onde um ambiente virtual é compartilhado por vários