Augmented Iterated Contract Net Experimental System
An experimentation platform for negotiation protocols in a Freight Transport Multi Agent System.
As per current development we are offering two negotiation protocols:
The Experimental System (ES) was developed in Python 3, through the help of PyCharm IDE and IPython. We recommed using the ES in an IPython/Jupyter interface, as it facilitates experimentation.
The ES is dependent on the following standard Python3 libraries:
The ES is dependent on the following external Python3 libraries:
Just copy/download/replicate the code in main.py your Python IDE, then run it. The results of the experiments largely depend on the environment variables, which we recommend playing with before running the experiment.
Keep in mind that e is an object of the type Environment, through which the experiments are governed.
e.icnet_experiment(1000)
e.aicnet_experiment(1000,"pagerank",False)
At this point two sets of bids experiments bids_icnet (set 1) and bids_aicnet (set 2). The first have been obtained by running 2000 rounds of ICNET, while the second was obtained from 1000 rounds of ICNET followed by 1000 rounds of AICNET. Hence, the following commands are oriented on extracting results on the above simulations.
e.stats.get_avg_no_iterations_per_negotiation(1)
e.stats.get_avg_no_iterations_per_negotiation(2)
e.stats.get_transporter_gain_stats(1)
e.stats.get_transporter_gain_stats(2)
e.stats.get_winning_transporter_personality_stats(1)
e.stats.get_winning_transporter_personality_stats(2)
e.stats.get_nr_of_failed_negotiations(1)
e.stats.get_nr_of_failed_negotiations(2)
e.stats.plot_sorted_winning_transporters()
e.stats.plot_metric_comparison("pagerank")
In order to compute the PageRank coefficient, ES has performed an operation of building social graphs automatically for each bid set, which can also be done through the commands:
e.stats.build_graph(1)
e.stats.build_graph(2)
e.stats.save_graph(1,"icnet_graph")
e.stats.save_graph(2,"aicnet_graph")