Open artur-freitas opened 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:
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.
Done, nova imagem atualizada:
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)
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.
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.
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.
Oi, complementando com novos diagramas, o arquivo atual foi commitado na pasta do projeto. A parte do contract net não está 100% ainda...
Novas inclusões para complementar a modelagem do contract net. Ainda falta um goal overview para os scenários do contract net.
Ó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.
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.
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)...
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?
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...
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!
Oi,
sobre os modelos do Prometheus: