w.0.0.0
x  -create version file
x  -import TextUi
x  -kick start the visualization
0.0.1
x  -IMap
x  -make SimpleFreeGround a proper map implementation, have the simulation run again
x  -Location 
x  -MapConstants: ACCESSIBLE etc.
x  -Path
x  -Path visualization
x  -Path planning framework
x  -offline path planning
x     -depth first
0.0.2
x  -Moving strategy for UGVs
x  	 -path follower
x  	 -include "speed"
x  -path: as a line
x  -iMap: getPropertyAtAsBoolean, getPropertyAtAs
x  	 -leader following (some kind of team model needed)
0.0.3
x  -refactor a lot of x,y objects into Locations
x  -also do SpeedVector, AccelerationVector. 
x  -Change IPositionControl etc to use these ones. 
x -different leader following strategies
x -implementing the complete framework for control by position, speed and acceleration
x -IPainter model for better graphs. 
0.0.4
x  -to do: experiment with two convoys, and a team moving from one to the other. 
x  -Friction model, parametrization of the strategies.
x  -refactor a lot of x,y objects into Locations
0.0.5
x   -created the model to be used 
x  -record the path of a vehicle
x     -visualize it
x  -visualize points
x     -implement the generic search algorithms from the book
x     -non-recursive depth-first (with stack)
x     -breadth-first
x  -general affine transform for the visualization
0.0.6   
x  -Check in the AbstractTreePathPlanner!!!
x  -graph search - generic class for remembering expanded nodes
x  -World model (replaces communication)
x  -agents 
x  -UGVConvoy - implements ITeam
x  -decision to join a convoy: interactive agent.
0.1.0
x   -implemented world model and agent model
x   -measure the cost of the path
0.9.0
x -moving to Yaes
0.9.1
x -generic simulation framework
x  -generic way of storing the results of the simulations.
x  -extracting plots from the results of the simulations.
0.9.2
x -generate stuff
x  -webpage    
0.9.3
x  -improving the plot generation stuff, allow for different avgs.
x  -get rid of AbstractSimulation.java
x  -check in PlotLineDescription. Move it to plots.
x  -some more improvements in the plot generation. 
0.9.4
x  -fix the A*
x    -the problem seems to be that the SortedSet will not be updated when we are updating 
x    the lenght in the ClosedSet. ---> Soo... back to on demand sorting.
x  -there is a problem with the PathCost - the measures do not seem to be correct. 
0.9.5
x  -merged in Paul's UAV simulation 
x  -created a basic framework for agent communication and tests.
0.9.7
x  -merged the VisualMap and VisualNetwork
x  -integrated the Joona neural network modelling software
x  -created a new application for the "send now or wait" application (with Taskin)
0.9.8
x-converted the old wca to the new simulation model in applications/clustering
x  -figure out how to generate the multiple lines eg for the multiple N's. Probably some kind
  of filtering in the PlotLineSpecification? 
0.9.9
-new framework for painting things - everything has to be always in a painter.
0.9.10
x  -team model - done mostly by Majid
x  	 -team joining decisions 
x  	 -can it physically join
x  	 -convoy formation
x  	 -convoy movement
x  	 -contexts:
x  	    -convoy movement context
x  	 	-convoy join context
x  -integrated the various scenarios in the single main file.
0.9.11
x  -convert the model to the new simulation stuff
x     -should have some way to explicitly pass a context.
x  -AStar pathplanner cache-ing
0.9.12
x  -refactoring the several sensor network based applications into a single one
x  -NodeInfo --> SensorNode
0.9.13
x   -new model of energy
x   -a system to integrate the simulation output results
0.9.14
  -xxx?
0.9.16
x  -moving to Java 5.0
x  -created the marketgrid model
0.9.17
x  -changes to the agent model, agents tied to the world
x  -subprotocol model
0.9.18
x  -task passed as a parameter for execution
x  -removed simple client - it was too simple...   
x  -defined a model for task execution - all it remains is to write it up.
0.9.19
  x-separate conversations for price negotiation and execution in the provider
  x-separate conversations for all the things in the client
  x-separate conversations for all things in the marketmaker (Sivi)
0.9.20  
  x-make the client-matchmaker-provider stuff use correctly the reservation protocol.
  x-make the broker correctly use the allocation protocol. 
  x-make the marketmaker correctly use the allocation protocol
  x-the message passing is now complete.
  x-clean up the reservation and execution discrepancy. How to take a task into execution? As opposed to
     reservation. 
0.9.21
  x  -matchmaker and marketmaker should know about the providers
  x  -the customer should be able to take no for an answer and retry.
  x-set up the measurements for the paper:
      x-tasks executed per customer
      x -messages passed per customer / provider
      x-free/reserved/allocated/executed percentages of the providers
      x-generate the graphs under the right names. 
  x -the matchmaker should give random result, depending on the match. 
  x  -measurements. Add ways to measure message traffic etc. 
  x  -introduce randomness, distributions etc. (Xin)
  x -add the charges to the Bank for the various operations
0.9.22
  x-multiple offers from the matchmaker, pick the best one.
  x-after the first unsuccess from the broker, the client goes to the matchmaker. 
  x-matchmaker should check if the provider can provide for the stuff
0.9.23
  x-reservation database at the marketmaker
  x  -the simulations are starting to work, but somehow the marketmakers reservation database does not track correctly
  x  what is happening at the client - as a result there is an "ERROR" case where the execution was refused.
0.9.24
  x -significant effort put into fixing the types in the framework component, about 100 occurences fixed, 166 to go.
  x -implement and test for the TaskRunner
  x -Majid's work on communication models with limited range, lossy etc. Fixed it, as it was breaking all agents, 
  except his. 
  x -Significant work on the provider model etc. 
0.9.25    
  x-made a refactoring to enums in the RandomVariable
  x-I have lost too many results of the simulations because after all the work the output was not
  writeable - missing directory. Made a function which tries very hard to write the output.
  x-created the function which is supposed to generate the graphs for the comparison. See above. Now running again.
  x-SimulationOutputParameters: sorted output
  x-INCycleNode interface
  x-test the maintenance functions
0.9.26
  x-refactored some of the plotting functions - they are way tooo long names. 
  x  -rename some of the classes n-Cycle
  x  -full run: generate all the needed graphs
  x  -full run: generate graphs with errorbars
  x  -refactored the simulation input and output.
0.9.27  
  x -SimulationInput with copy constructor. 
  x -Majid: SimulationOutput serializable.
  x-PlotDescription, with all the information etc. 
0.9.28
  -TextUi.debug mode
  -refactorings on the negotiation based convoy formations.
0.9.30
  -massive refactoring and cleanup of the clustering work.
0.9.31
  -added the saving and loading of SimulationOutput to Simulation.
0.9.33
  -clean up on the Matlab functions
  -created a function for creating CummulativeDistributionFunction graphs.
0.9.34 
x  -move the errorbar generation classes out of their simulation helper.
x  -make sure that the framework does not have type errors      
TODOs

GENERAL
  -there should be a way to run a simulation, by specifying a range of a certain parameter.
      -add the parameter name and the range... 
      -this should get rid of the VTR and VNA implementations in the transmission scheduling stuff.
  -simulation framework: it should always save the input and the output, and it should 
  be done from the Simulation. 
  -factor out the distributed running into a YaesApps - only that one should need JXTA.
  -figure out the latest libraries, limit to the necessary ones and call it 1.0.

FRAMEWORK:
  -ant build file, also to generate the documentation
  -generic implementation of maps   
  -maps representing social potential fields

TRANSMISSION SCHEDULING:
   -make a DecisionLoaderAgent - able to load the transmission decisions
      associated with a history file (verify that the history file is the same)
   -find some realistic values for the sensor buffer (eg. mote) and for the sensing node.
   -average delay diagram is not working
   -K Nearest - the problem is that most of the time OracleOptimal does not send, so what it learns
   is how not to send.
   -make the transmission energy calculator better, by considering how many packets will be sent!

INSPECTOR:
   -keep it with a weak reference instead of being indexed with the name. 

ORGANIZATION:
  -all files which have main functions need to be called Main or MainXXX
  -do not use System.println... only TextUi... for reasons to be explained later.
  -if a main function takes parameters, and there are no parameters - it needs to go into interactive
  mode and ask for those parameters from the function.


EMBODIED:
   -image cache general stuff
   -pathcache needs to be also image based (it is also hardwired to the image)
x  -waypointcache is hardwired to the image.
  -it needs to be made automatic: if it can not find the cache, generates it. But it should depend on the
  image. 
ARMS:
  -
MARKETGRID
  x-make the request "starting at time" 
  x-ResourceSet / ResourceAllocationChunk - no collection plays there, factor it out.
  x-ResourceAllocationChunk - ResourceAllocation     
  x-factored out ResourceManager
  x-check in the tests for the mmmarketallocation
  x-refactor the tests from test.application
  x-IPricingModel - prices a resource allocation
    -multiple offers inside the MarketMaker agent.
    -implement the running of the tasks in the marketmaker.
    -investment strategy: trying to invest such that there is a desired amount of resources at 
       any given moment of time. 
    -factor out MarketMakerAllocation: it is just a TestProvider. (???)
    -tests:
	   -refactor out resourcemgmt/Main it is a test in fact.
    
GENERAL
  -move the errorbar generation classes out of their simulation helper.
  -remove simulation helper
  -remove yaes.application.wcasimulation - is replaced with application.clustering
  -make white accessible and gray accessible constant classes.	  
FRAMEWORK:
  -ant build file, also to generate the documentation
  -generic implementation of maps   
  -maps representing social potential fields
  -separate versions for applications, separate version for the framework. 
  -make sure that the framework does not have type errors, and does not depend on other stuff and call it 1.0.

  -NetworkGenerator.changeNodeCoordinate to be developed into a full featured model of 
  network movement (for the Taskin stuff as well). 
  -WCA: nodeWeight, accumulatedWeight (sum of the distances? to the clusterhead). 
  -Energy model.
ALGORITHMS:
  -iterative deepening.
  -A* path planning is now working if it is not integer - some generic solution for this - maybe 
  in controllable?
UI:
  -change listener in the visualization. 
  -painters should have some way to turn on and off.
AGENTS:
  -communication model.
TEAMWORK
   -context should keep the UGV's not the agents
  x-add a simple one, record it
  x-find the moment when the slowest ends
  x-add random delays to the convoys
   -generate graph
  
