Developing an Agent

For the competition you will need to implement a TradingCompany for the MABLE simulator. Please have a look at our (Setup) Guide, which also includes instructions on the required resources, and the Creating a Trading Company guide in on the API page.

Additional Python Packages

You are allowed to use additional python packages. However, you can only use those packages and versions approved by us. Following is a list of packages and their versions which have been approved. If you would like to add a package to the list, please get in contact with us via msc.aamas2025@soton.ac.uk.

Approved Versions of Additional Package’s

Evaluating Agents

As described in Section 3.2 of the (Setup) Guide each simulator run generates an output file metrics_competition_<number>_<timestamp>.json (where number is a random number and the timestamp is generated at the end of the simulation when the metrics are being exported).

The output file are JSON encoded metrics of the simulation run containing the following information:

The outermost structure is a dict with four keys: company_names, company_metrics, vessel_metrics and global_metrics.

  • company_names
    • Matching between an ID identifying a company in the rest of the output and the company’s name
  • company_metrics
    • Overall metrics of the companies (indexed by their ID) summed over all vessels in their fleet.
      • fuel_consumption
        • Total amount of consumed fuel
      • fuel_cost
        • The cost of the consumed fuel
      • co2_emissions
        • The total CO2 emissions from the consumed fuel
      • vessel_status_ballast
        • Based on the time vessels are travelling without cargo
      • vessel_status_laden
        • Based on the time vessels are travelling with cargo
      • vessel_status_loading
        • Based on the time vessels are loading cargo in port
      • vessel_status_unloading
        • Based on the time vessels are unloading cargo in port
      • vessel_status_idle
        • Based on the time vessels are not performing any of the other operations (ballast, laden, loading and unloading), i.e. the remaining time.
  • vessel_metrics
    • Same types of metrics as for the overall company but per vessel (indexed by (company ID, vessel ID). Additionally, the entire route the vessel has taken during the simulations.
  • global_metrics
    • Contains information on auction outcomes and penalties
      • auction_outcomes
        • A list with one dict per run auction. Each individual auction dict contains lists of the won contracts per company (indexed by the company IDs). The individual contracts listed contain all information about the trade as well as the payment of the contract and an indicator if the trade was fulfilled by the company.
      • penalty
        • The total penalty each company had to pay for unfulfilled contracts (indexed by the company IDs).