• Nenhum resultado encontrado

Project Hoshimi é o nome da plataforma escolhida para testar as hipóteses

levantadas nesta dissertação, na seção 1.1. A plataforma é constituída por um simulador de um ambiente multiagente e uma SDK(Software Developer Kit) com classes e métodos para controle dos agentes. Essa plataforma foi criada pela Microsoft e utilizada em uma competição mundial conhecida por Imagine Cup. Esta, por sua vez, possui várias categorias, dentre elas, a Programming Battle que utilizou a Project Hoshimi (HOSHIMI, 2006). A plataforma foi usada nas edições de 2005, 2006 e 2007 da competição, sendo que, a cada ano, novas funcionalidades foram acrescentadas. A partir da edição de 2007, a categoria Programming Battle passou a usar o nome Project Hoshimi.

Nessa categoria, um programador tem à sua disposição uma coleção de classes para gerenciar um time de nanorobôs. Esses nanorobôs são injetados, virtualmente, dentro do corpo de seres humanos (ou de outros seres vivos) com a intenção de, a priori, curar doenças. Existem diversos tipos de nanorobôs, cada um com uma função distinta, cada um com um conjunto de ações possíveis diferentes.

O principal nanorobô é o NanoAI e cada time pode conter apenas um. O NanoAI é como uma unidade central de comando, se ele for destruído, todo o time perde seu poder de realizar ações. Ele é o responsável por criar outros nanorobôs. NanoCollectors e

NanoContainers são especializados em coleta, transporte e transferência de enzimas.

Diferenciam-se um do outro pela capacidade de armazenamento e pelas ações de ataque/proteção. Têm-se, ainda, os NanoProtectors que são tipos especiais de

NanoCollectors que possuem apenas ações de ataque. Um NanoNeedle é responsável pela

injeção de enzimas. Para que enzimas possam ser transferidas, NanoNeedles devem ser criados em cima de pontos especiais denominados Hoshimi Points. Assim, quando um

NanoCollector ou um NanoContainer carregado de enzimas se acopla a um NanoNeedle, a

injeção de enzimas é iniciada. Por fim, tem-se o NanoBlocker, que tem a função de aumentar a densidade das células adjacentes a ele.

O ambiente em que esses nanorobôs existem constitui uma mapa. Como eles são injetados no interior de seres vivos, cada mapa corresponde a uma parte de um ser. Desta

41

forma, pode-se ter um mapa que representa um coração, um pulmão ou, ainda, uma porção de um tronco de uma árvore.

O programador deve, em um determinado mapa, fazer com que uma coleção de nanorobôs realize um conjunto de objetivos. Existem diversos tipos de objetivos, tais como: exploração, sobrevivência e coleta e transferência de enzimas. Para cada objetivo atingido, o time ganha uma pontuação.

Os mapas possuem pontos com características especiais. Os mais importantes são: AZN e HP. Um ponto do tipo AZN é um local onde um nanorobô pode coletar enzimas. Um ponto do tipo HP é um local onde um nanorobô pode depositar enzimas.

Na Figura 4-1, tem-se um mapa que representa um coração humano. Os pontos brancos circulares são do tipo AZN e os brancos retangulares são do tipo HP.

Quando enzimas são depositadas em pontos do tipo HP, o time de nanorobôs recebe uma determinada pontuação. Logo, independente dos objetivos, coletar e depositar enzimas é sempre importante.

Existem ainda os chamados Navigation Points ou “Pontos de Navegação” que correspondem a locais pelos quais nanorobôs devem passar. São usados em objetivos do tipo exploração. Geralmente, existe um tempo associado a um objetivo deste tipo, isto é, um nanorobô deve atingir um determinado Ponto de Navegação em um determinado tempo. A representação de um Ponto de Navegação é um ponto circular preto, ligeiramente menor que um AZN, como mostrado na Figura 4-1.

42

Em um mapa, existem células com diferentes densidades. Porções na cor vermelha são células de densidade baixa, na cor azul de densidade média e verde de densidade alta. Quanto maior a densidade, mais lenta é a locomoção dos nanorobôs. Logo, no momento de calcular o caminho mais rápido entre dois pontos, deve-se dar preferência por áreas de densidade baixa. Contudo, robôs do tipo NanoExplorer são capazes de se locomoverem na velocidade máxima independente da densidade da célula. A Figura 4-2 exibe um mapa que possui células com os três níveis de densidade.

Além disso, é relevante ressaltar que NanoBlockers são capazes de aumentar a densidade das células, sendo esta outra informação que deve ser considerada em algoritmos do tipo pathfinding.

Em um mapa, além dos aglomerados comuns de células, têm-se os chamados fluxos sanguíneos ou bloodstreams. Na Figura 4-3, destacam-se exemplos deste tipo de elemento. O fluxo é direcional, logo, se o nanorobô se movimenta em sentido contrário a ele, terá uma penalidade de 50% na velocidade de locomoção. Caso se movimente no sentido do fluxo ou em uma direção perpendicular a ele, se deslocará com o dobro da velocidade.

43

Outra característica do Project Hoshimi é a existência de um time de nanorobôs denominado Time do Pierre. Sua única função é atrapalhar os demais times a realizarem os objetivos do mapa corrente. Os robôs do Time do Pierre, ao se depararem com robôs de outros times, tentarão destruí-los. Nesse sentido, em alguns momentos pode ser interessante tentar destruir esses “inimigos” ou evitar passar próximo deles.

O ambiente multiagente é totalmente controlado por software. Vários times de robôs podem coexistir ao mesmo tempo em um mapa, tentando, cada um deles atingir a maior quantidade de objetivos. Entretanto, não existe a possibilidade de um jogador externo, controlar o time e tomar decisões à medida que o tempo evolui. Essa situação, apesar de não existir, pode ser conseguida com pequenas alterações no software que controla o ambiente. Desta forma, ter-se-ia um clássico jogo eletrônico em que parte dos agentes seria controlada por software e um ou mais times seriam controlados por jogadores externos.

Analisando a natureza do ambiente, ele foi classificado como um jogo de estratégia, conforme descrito no final da seção 3.1. O que define um time vencedor é a estratégia utilizada para cumprir as metas e a escolha das melhores ações. Essa escolha sempre deve levar em consideração o tempo, visto que, o jogo acontece em um intervalo fixo de tempo, ou seja, os times têm uma quantidade de minutos predeterminada no início do jogo para atingir as metas.

44

Além disso, a todo momento, os agentes devem redefinir suas próximas ações, uma vez que o ambiente é totalmente dinâmico e influenciado por agentes de times diferentes. Por exemplo, um agente pode ter na sua lista de ações a injeção de enzimas em um determinado HP. Todavia, um outro nanorobô deste mesmo time pode passar próximo deste HP e descobrir que ele já foi ocupado por um agente de um outro time. Nesse caso, a ação de injeção de enzimas naquele ponto torna-se impossível, exigindo a definição de uma nova ação.

Do ponto de vista de um sistema multiagente, tem-se um ambiente de processamento e comunicação centralizado no NanoAI. Ou seja, toda comunicação entre dois nanorobôs diferentes deve ser feita através do NanoAI. Da mesma forma, ele funciona como uma entidade central de processamento. Os nanorobôs têm autonomia para gerarem seus próprios planos e realizarem suas ações, mas dependem de um controle central para isso. É como se a fonte de sua energia fosse proveniente do NanoAI. Desta forma, a eliminação deste nanorobô deixa todos os outros incapazes de realizarem ações. Não existe nenhum tipo de protocolo formal de troca de mensagens entre um nanorobô e NanoAI, como KIF (WOOLDRIDGE 2002) ou KQML(WOOLDRIDGE, 2002). Na verdade, a interação acontece apenas através de variáveis de escopo global presentes no NanoAI. Observa-se também que não existe nenhum mecanismo que defina um aspecto colaborativo ou cooperativo na realização das metas. Essa questão fica sob a responsabilidade do programador.

Documentos relacionados