lsa-pucrs / mas-pc-pucrs-2016

Repository for the 2016 MAS programming contest: https://multiagentcontest.org/
2 stars 1 forks source link

Prometheus Models (in progress) #35

Open artur-freitas opened 9 years ago

artur-freitas commented 9 years ago

Oi,

sobre os modelos do Prometheus:

prometheus model

rafaelcaue commented 9 years ago

Link download eclipse plugin: [https://sites.google.com/site/rmitagents/software/prometheusPDT/downloads]

Link paper: [http://www.cs.rmit.edu.au/agents/www/agentsbib/auto-generated/papers/ijaose09-dppst.pdf]

Os nomes que terminam com _ é porque não pode ter dois elementos com o mesmo nome (e.g. dump e _dump__), certo? Também encontrei esse problema quando usei o Prometheus. Sugestões: quando tem o mesmo nome dar um append com a definição (dump -> _dumpaction e _dumpperception), ou dar append em uma e deixar a outra normal (dump -> _dumpaction e dump).

Dei uma lida no paper, as próximas sugestões são as ideias que tive. Expandindo sobre a sugestão que dei durante a reunião de ontem, os atores poderiam ser: Server, TeamA, e TeamB. O cenário seria _simulationround scenario (deixar generalizado). Os steps poderiam ser: _simulationstart, step (generalizando novamente para qualquer passo que não é o primeiro e nem o último), e _simulationend. Com isso deve dar para terminar um analysis overview diagram abstrato semelhante ao apresentado no paper.

Para o goal overview diagram é bem possível que a gente consiga utilizar o asl2dot (vide [http://jason.sourceforge.net/api/jason/util/asl2dot.html]) para gerar um grafo de goals. No mímino vai auxiliar em fazer o diagram, e no máximo vai ser o diagram pronto. :grin:

Para o systems role podemos ter papéis como: motorcylcle, car, truck, drone, vehicle (quando pode ser qualquer um), initiator (papel que inicia a contract net), e bidder (participantes da contract net).

Com esses diagramas concluiria o System specification e acho que talvez isso já seja o suficiente para apresentarmos para os professores (ou para nós mesmos) para discutirmos estratégias mais elaboradas.

Asl2dot do nosso código atual: vehicle-goals

Da até para ver as ações que ainda faltam implementar :squirrel:

Eu vou postar o .dot mais tarde no google drive, como é texto deve ser mais facil de copiar para o xml do prometheus.

rafaelcaue commented 9 years ago

Done, nova imagem atualizada:

goals

Não deve mudar muita coisa a partir de agora até a nossa release dos dummies então essa imagem deve durar por um tempo. Link para o .dot no google drive: (https://docs.google.com/document/d/1DdnsGPuX_3k-X_o1bYjsN9w1NQJUJi13-SXC5BeUmTU)

rafaelcaue commented 9 years ago

Coloquei o pd no git, tem apenas o goal overview por enquanto.

Artur quando puderes atualiza esse .pd com a tua parte. Se tiveres problema com o git me avisa que eu te ajudo.

artur-freitas commented 9 years ago

Valeu pela ajuda na modelagem Rafael! Atualizei no git e vou continuar elaborando os demais diagramas agora. Imagens do analysis overview diagram e do goal overview diagram estão anexadas aqui.

analysis_overview_diagram goal_overview_diagram

rafaelcaue commented 9 years ago

Jóia!

Um bug no analysis overview, no canto direito superior, tem 2 final phase scenario, imagino que o primeiro deveria ser o initial phase scenario.

artur-freitas commented 9 years ago

Oi, complementando com novos diagramas, o arquivo atual foi commitado na pasta do projeto. A parte do contract net não está 100% ainda...

image

image

image

image

image

artur-freitas commented 9 years ago

Novas inclusões para complementar a modelagem do contract net. Ainda falta um goal overview para os scenários do contract net.

image

rafaelcaue commented 9 years ago

Ótimo Artur!

Acho que initiator e bidder devem ser apenas roles e não agentes.

O que tu quer dizer por receive_action (no systems role overview)?

No momento o initiator é o truck, então pode ligar o role initiator ao truck. Não tem como ligar um papel a outro né (i.e. hierarquia de papéis)? Seria interessante se o vehicle fosse o agente e drone, truck, moto, car fossem papéis, mas isso pode dificultar a modelagem por causa das limitações do pdt. Quanto ao bidder, realmente todos agentes fazem o papel de bidder, então não vejo problema em ligar ele com todos.

No systems overview, tudo está ligado a tudo? Se sim aqui seria bem mais limpo ter apenas o agente vehicle do que os 4.

Acho que AUML diagrams vão ser muito úteis para modelar o funcionamento dos planos. Seria interessante fazer um para como o nosso time resolve um job no momento. Acho que isso poderia ajudar muito na otimização da nossa solução.

rafaelcaue commented 9 years ago

Muito legal a modelagem do contract net, acho que está perfeita!

Imagino que nos diagramas mais aprofundados vamos entrar nas questões dos deadlines das tasks, e como os agentes raciocinam sobre o valor da bid.

artur-freitas commented 9 years ago

Obrigado pelo feedback!

Lista de alterações/comentários:

Lista de limitações do PDT/Prometheus: 1 - O diagrama "System Overview" não permite colocar Roles, portanto, não é possível ligar Protocolos em Roles (os Protocolos podem ser ligados apenas em Agentes). 2 - O diagrama "Agent Role Grouping Overview" não permite ligações entre Roles (para especificar sub-roles). Também não é possivel fazer uma relação entre dois agentes. 3 - No AUML sequence diagram, gostaria de ligar TaskBoard com ContractNetBoard, pois o primeiro elemento cria uma instância do segundo. Porém acredito que o formalismo e/ou a ferramenta não permitem tal ligação (ou pelo menos eu desconheço até o momento)...

rafaelcaue commented 9 years ago

Jóia.

Eu vi que no Systems Role Overview teve que ficar o truck no lugar do vehicle, e os outros 3 papeis separados (drone, car, moto).

O ideal mesmo seria ter hierarquia de papéis, aí teriamos moto, drone, car, e truck como extensões de um papel vehicle, que é adotado por agentes vehicles. Como não da acho que vamos ter que pensar em alguma outra maneira de representar isso.

Ligações e papéis nesse diagrama são propagadas para outros?

artur-freitas commented 9 years ago

Oi, publicando as imagens dos modelos aqui para facilitar quem não tiver ou não quiser abrir no Prometheus Design Tools do Eclipse.

O Detailed Design apresenta um diagrama para cada Agente e um para cada Capability de cada Agente. Os Planos (retângulos azuis) ficam dentro das Capabilities (retângulos laranjas). Eles mostram os planos que são disparados por percepções e objetivos (linhas tracejadas nas imagens), assim como os objetivos que cada plano dispara.

Alguns pontos ainda estão em aberto, e com certeza tem correções para serem feitas e ainda as alterações do código vão modificar os modelos. Gostaria de saber a maneira mais apropriada para representar alterações nas crenças nos agentes, pois estou em dúvida o elemento Data seria o mais apropriado...

agent - bidder agent - car and truck they are currently equal agent - drone agent - initiator agent - motorcycle agent - vehicle capability - announcement and award procedure capability - bid procedure capability - calculate materials prices capability - execution procedure capability - finalise vehicle in a round capability - find tools capability - get tools capability - initialization capability - intialise vehicle for a round capability - job analysis pre-announcement procedure capability - post jobs capability - preparing for task announcement capability - register vehicle in server capability - request action capability - select goal capability - submit action capability - unregister vehicle from server

rafaelcaue commented 9 years ago

As crenças seriam o Data no Prometheus mesmo, pelo menos foi a mesma conclusão que a aluna do Jomi teve. O Prometheus não aborda o modelo BDI de agentes, apesar de ter code generation para Jack que é BDI.

Eu acho que alguns nomes podemos simplificar com a ideia em vez do nome literal (decomp por exemplo ser find_items ou algo do tipo). Mas a gente marca uma reunião para revisar isso.

Estão bem legais!