<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Adding new Learning Strategies</title><link>https://sourceforge.net/p/jacaddm/wiki/Adding%2520new%2520Learning%2520Strategies/</link><description>Recent changes to Adding new Learning Strategies</description><atom:link href="https://sourceforge.net/p/jacaddm/wiki/Adding%20new%20Learning%20Strategies/feed" rel="self"/><language>en</language><lastBuildDate>Fri, 16 Dec 2016 16:11:28 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/jacaddm/wiki/Adding%20new%20Learning%20Strategies/feed" rel="self" type="application/rss+xml"/><item><title>Adding new Learning Strategies modified by Xavier</title><link>https://sourceforge.net/p/jacaddm/wiki/Adding%2520new%2520Learning%2520Strategies/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -1,3 +1,4 @@
+
 &lt;h1&gt;Adding new Learning Strategies&lt;/h1&gt;

 To add new Learning Strategies to JaCaDDM it is necessary to have a good understanding of the Jason/AgentSpeak Agent Oriented programming language, and CArtAgO, the artifact-based environment developing framework.
@@ -14,49 +15,46 @@

 The default believes are the following:
 &lt;ul&gt;
-&amp;lt;il&amp;gt;
-site(Client) : so agent know the logical name of their assigned client according to the JaCaDDm configuration
-&amp;lt;/il&amp;gt;
-&amp;lt;il&amp;gt;
-ipServer(IP) : so agent know how to reach the services in node0
-&amp;lt;/il&amp;gt;
-&amp;lt;il&amp;gt;
-param(ParamName, ParamValue): (one for each parameter) so agents know which are the values of the parameters of the strategy
-&amp;lt;/il&amp;gt;
-&amp;lt;il&amp;gt;
-data(FilePath): so each know where the data related to their client is located
-&amp;lt;/il&amp;gt;
+&lt;li&gt;site(Client) : so agent know the logical name of their assigned client according to the JaCaDDm configuration
+&lt;/li&gt;
+&lt;li&gt;ipServer(IP) : so agent know how to reach the services in node0
+&lt;/li&gt;
+&lt;li&gt;param(ParamName, ParamValue): (one for each parameter) so agents know which are the values of the parameters of the strategy
+&lt;/li&gt;
+&lt;li&gt;data(FilePath): so each know where the data related to their client is located
+&lt;/li&gt;
 &lt;/ul&gt;

 The default plans are the following:
 &lt;ul&gt;
-&amp;lt;il&amp;gt;
+
+&lt;li&gt;
 register_artifact(ArtName): registers an artifact in a special directory artifact, this allows to make references to that artifact remotely.
-&amp;lt;/il&amp;gt;
+&lt;/li&gt;

-&amp;lt;il&amp;gt;
+&lt;li&gt;
 send_model(From, To): it allows to send a model to one artifact (From) to another one (To). both parameters are artifact names. The To artifact should be registered beforehand.
-&amp;lt;/il&amp;gt;
+&lt;/li&gt;

-&amp;lt;il&amp;gt;
+&lt;li&gt;
 send_modelGPU(From, To): simal to the previous one but takes into account GPU-based models.
-&amp;lt;/il&amp;gt;
+&lt;/li&gt;

-&amp;lt;il&amp;gt;
+&lt;li&gt;
 consut_type_count(Type, Count): for a type of agent program, it returns how many copies are spawned through the system
-&amp;lt;/il&amp;gt;
+&lt;/li&gt;

-&amp;lt;il&amp;gt;
+&lt;li&gt;
 consut_type_file(Type, File): it returns the file path of the agent program referenced by a type
-&amp;lt;/il&amp;gt;
+&lt;/li&gt;

 &lt;/ul&gt;

 The JaCaDDM services are the following:

 &lt;ul&gt;
-&amp;lt;il&amp;gt;
-spawnNewAgent(Type, Client, OutName): for the platform to acknowledge the creation of a new agent, this service should be used through the experimenter agent. Type is the agent program name as it was stated in the XML configuration file, Cliente is the logical name of the node where the agent is intended to be placed, and OutName is the name given by the platform to the new agent. 
-&amp;lt;/il&amp;gt;
+&lt;li&gt;spawnNewAgent(Type, Client, OutName): for the platform to acknowledge the creation of a new agent, this service should be used through the experimenter agent. Type is the agent program name as it was stated in the XML configuration file, Cliente is the logical name of the node where the agent is intended to be placed, and OutName is the name given by the platform to the new agent. 
+&lt;/li&gt;
+
 &lt;/ul&gt;
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Xavier</dc:creator><pubDate>Fri, 16 Dec 2016 16:11:28 -0000</pubDate><guid>https://sourceforge.net5b2386e4029a4aec40847b827b95ba82276d30ef</guid></item><item><title>Adding new Learning Strategies modified by Xavier</title><link>https://sourceforge.net/p/jacaddm/wiki/Adding%2520new%2520Learning%2520Strategies/</link><description>&lt;div class="markdown_content"&gt;&lt;h1&gt;Adding new Learning Strategies&lt;/h1&gt;

&lt;p&gt;To add new Learning Strategies to JaCaDDM it is necessary to have a good understanding of the Jason/AgentSpeak Agent Oriented programming language, and CArtAgO, the artifact-based environment developing framework.&lt;/p&gt;
&lt;p&gt;A learning strategy is a set of agent programs that model a DDM process workflow. Aside from the agent programs, a XML file describing the strategy is also required. In this file it is possible to establish the path files of the different agent programs, and the deployment parameters of the strategy. You can find examples of such files on the sampleProtocols directory.&lt;/p&gt;
&lt;p&gt;Any learning strategy should comply a simple contract to adhere to JaCaDDM, this contract establishes the start and output of the processes. First of all an agent program named contactPerson should always exist, this agent program provides the means to start and finish the process, and is a bridge between the JaCaDDM and the strategy. contactPerson has to react to a +begin_process event, which announce the starting of the process. When the process ends, a single learning model should be produced, the model has to be a subclass of experimenter.classifiers.BaseClassifier, this model has to be communicated to JaCaDDM in order to be properly evaluated, this is done by issuing a tell speech act toward a special JaCaDDM agent named experimenter, in this message the name of the artifact where the final model is located is referenced. An example of this message is the following: &lt;br/&gt;&lt;/p&gt;
&lt;p&gt;.send(experimenter, tell, finish("coordinatorj48")) &lt;br/&gt;&lt;/p&gt;
&lt;p&gt;Aside from the contract, a contactPerson can do anything, and also any other agent programs can participate. &lt;br/&gt;&lt;/p&gt;
&lt;p&gt;JaCaDDM provides an API for agent programs that allow them to have a context about their distributed settingthis. The API consists on a set of default believes, a default set of plans that every agent know and  may use, and a set of JaCaDDM services. &lt;br/&gt;&lt;/p&gt;
&lt;p&gt;The default believes are the following:&lt;br/&gt;
&lt;/p&gt;&lt;ul&gt;&lt;br/&gt;
&amp;lt;il&amp;gt;&lt;br/&gt;
site(Client) : so agent know the logical name of their assigned client according to the JaCaDDm configuration&lt;br/&gt;
&amp;lt;/il&amp;gt;&lt;br/&gt;
&amp;lt;il&amp;gt;&lt;br/&gt;
ipServer(IP) : so agent know how to reach the services in node0&lt;br/&gt;
&amp;lt;/il&amp;gt;&lt;br/&gt;
&amp;lt;il&amp;gt;&lt;br/&gt;
param(ParamName, ParamValue): (one for each parameter) so agents know which are the values of the parameters of the strategy&lt;br/&gt;
&amp;lt;/il&amp;gt;&lt;br/&gt;
&amp;lt;il&amp;gt;&lt;br/&gt;
data(FilePath): so each know where the data related to their client is located&lt;br/&gt;
&amp;lt;/il&amp;gt;&lt;br/&gt;
&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The default plans are the following:&lt;br/&gt;
&lt;/p&gt;&lt;ul&gt;&lt;br/&gt;
&amp;lt;il&amp;gt;&lt;br/&gt;
register_artifact(ArtName): registers an artifact in a special directory artifact, this allows to make references to that artifact remotely.&lt;br/&gt;
&amp;lt;/il&amp;gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;il&amp;gt;&lt;br/&gt;
send_model(From, To): it allows to send a model to one artifact (From) to another one (To). both parameters are artifact names. The To artifact should be registered beforehand.&lt;br/&gt;
&amp;lt;/il&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;il&amp;gt;&lt;br/&gt;
send_modelGPU(From, To): simal to the previous one but takes into account GPU-based models.&lt;br/&gt;
&amp;lt;/il&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;il&amp;gt;&lt;br/&gt;
consut_type_count(Type, Count): for a type of agent program, it returns how many copies are spawned through the system&lt;br/&gt;
&amp;lt;/il&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;il&amp;gt;&lt;br/&gt;
consut_type_file(Type, File): it returns the file path of the agent program referenced by a type&lt;br/&gt;
&amp;lt;/il&amp;gt;&lt;/p&gt;
&lt;/ul&gt;

&lt;p&gt;The JaCaDDM services are the following:&lt;/p&gt;
&lt;ul&gt;
&amp;lt;il&amp;gt;
spawnNewAgent(Type, Client, OutName): for the platform to acknowledge the creation of a new agent, this service should be used through the experimenter agent. Type is the agent program name as it was stated in the XML configuration file, Cliente is the logical name of the node where the agent is intended to be placed, and OutName is the name given by the platform to the new agent. 
&amp;lt;/il&amp;gt;
&lt;/ul&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Xavier</dc:creator><pubDate>Fri, 16 Dec 2016 16:06:54 -0000</pubDate><guid>https://sourceforge.net60bc7932f78befee144863a742cb0c42a2a0af96</guid></item></channel></rss>