Интеллектуальные Агенты, использующие Jade Framework
Я хочу разработать многоагентную систему и хочу запускать разные агенты из разных контейнеров. Я использую Eclipse с Jade Framework для этого, и я не знаю, как настроить "запустить конфигурацию" для проекта, чтобы достичь этого. Пока у меня есть это: -gui -container main:Sender;a1:Receiver;a2:Pong, и я хочу поместить агентов a1 и a2 в отдельный контейнер. Пожалуйста помоги.
2 ответа
При запуске нового нефритового проекта я обычно создаю агент-координатор с методами запуска и уничтожения других агентов. Я думаю, что это хорошая практика, так как вы можете при необходимости распространить эти методы на других агентов.
Я надеюсь, что это поможет.
Сначала запустите графический пользовательский интерфейс Agent jade (Ejade) (установив библиотеку Ejade) или вы можете запустить его на консоли:
C:\java jade.Boot -gui
(Вы должны исправить путь к системной переменной"C:\..\jade.far"
и создайте имя переменнойclasspath = "C:\..\jdk7\"
)Запустите код, который позволит вам создать новый контейнер для развертывания на нем ваших агентов.
import jade.core.ProfileImpl; import jade.core.Runtime; import jade.domain.ams; import jade.wrapper.AgentContainer; import jade.wrapper.AgentController; public class ContainerDeploy { public static void main(String[] args) { try{ Runtime runtime=Runtime.instance(); ProfileImpl profileImpl = new ProfileImpl(false); profileImpl.setParameter(ProfileImpl.MAIN_HOST, "localhost"); AgentContainer agentContainer=runtime.createAgentContainer(profileImpl); AgentController agentcontroller1 = agentContainer.createNewAgent("Name of Agent", "com.package.AgentClass", new Object[]{}); agentController1.start(); }catch(Exception e) { System.out.println("Runtime Error\t"); e.printStackTrace(); } } }