Imagine you are the owner of a private harbour.
You come to work, first thing you do is to open the service terminals, so that coming barges can load and unload their goods.
You have decided to use our system due to its many advantages - it offers multi-agent based approach and Java RMI communication capabilities.
In a minute the platform starts and the platform management interface appears.
Seconds later agents start to populate your platform.
Each Terminal is an autonomous agent that manages its own timetable of free and reserved timeslots for load and unload activities of the barges visiting your harbour.
All Terminals are open now and incoming barges can connect them to get the timetables and plan their route.
The system has been running for a couple of hours. All that you care about is that you see the SYSTEM(OK) status.
Meanwhile, an incoming ship has almost reached your harbour.
The crew wants to know, how they should plan their trip in the port, based on the availability of the terminal services.
Their main goal is to finish their job as fast as possible, but they also try to have the shortest trip, because
they care for the environment and also try to use little fuel to lower costs.
They start the Harbour Tour Optimizer Application that you provide.
First of all, they need to establish a connection with your port management system.
Since you are the owner of multiple harbours, they have to enter the name of the platform they are interested in,
as well as identify themselves with their ship name.
Then the connection can be established.
They receive a warm welcome when joining the platform.
...and since this is a multi-agent based system, the barge application is an autonomous agent itself, that has been deployed
in Container-11 on the harbour management platform.
Finalized connection set up. The GUI windows are what is from interest for the mates, the console is for the captain.
To get your optimal route, you first need to inform the harbour, which terminals you want to visit.
...so you enter those in the field in the GUI and based on your load some other parameters are calculated for you.
Then all you have to do is hit the Run button and the system starts processing your task (which is an optimization problem).
The Terminal Agents check their time tables and offer you free slots. On your side an optimization is carried out and the terminals
are acknowledged, which slot you would like to use. All further agreements are handled and communicated for as many times as needed.
After the terminal agents and you have settled for an acceptable solution for all sides, you get the visits sequence and the time
schedule of your trip. The optimal distance is also given.
Meanwhile, another barge is reaching the harbour.
They carry out the same procedure.
Establishing a connection...
Another barge, another agent.
The new Barge (EsperantoXP) has been deployed in Container-12.
It seems that this crew has a heavier load and so more terminals need to be visited.
More terminals to visit, mean a tougher optimization task, which can take longer to solve.
But the thing is, the system cannot wait for you forever and guarantee you the free time slots, so
your agent needs to optimize fast in limited time. Thus, it decides to use a heuristical optimizer,
which is known to return nearly optimal solution in a feasible time.
It seems that all sides have settled and the barge tour at the harbour was planned.
The barge got the time schedule and is ready to go.
...or you can also decide to run a couple of even heavier tours for fun. In the background you can see the heuristics
optimization framework opt4j, which was hired by your barge agent to calculate the optimal harbour tour.
If not all terminals can be visited today, the crew gets the time slots for as many as possible. The others you will have
to visit the next day.
The SYSTEM(OK) status is a sign of stormless weather.
It seems EsperantoXP has left the platform. Maybe they have finished for today.
...and the same has been done by the BlackPearl.
It is getting late. The work day is over. It's time to close the terminals.