Hi,

program
- written in python2 (no special gimmicks used)
- shortest-path finding with Potential Maps
  (pmap((x,y)) -> (int distance, NSWE nextstep)
- Potential maps are filled in on demand
  (first request takes rather long)
- Board Map and "Potential" Maps are stored as dicts
  (saves RAM on sparsely populated maps) (hopefully)
- overweight packets are ignored
- bidding is rather simplistic
- produces some trace output.
  (cut down for final version)


- ToDo List
  Strategy
  - multi-stage route planning (note: travelling salesman is still NP..)
  - combined with "optimal" choice of packets (knapsack problem, anyone?)
  Technical
  - try numeric arrays for the maps
  - maybe change "Pos" type (used as dict index)
    from (x,y) tuple to int(y*width+x)

Changes for Final Final Submission (Mon Sep 2 18:04:43 UTC 2002)
- melee code prefers evasive/agressive based on our packet load
- code cleanup (last fixes?!) (<-famous last words ..)
- more comments
- disabled (most of) the logging (see AI.trc())

Changes for final submission
- more comments
- keep track of other robots by Distance
- vary bid based on that (too simplistic)


Changes since 4th submission
[some sleep for the programmer]
- AI keeps track of destinations for all packets it sees
  (i.e. even for those it does't pick up immediately)
  thus if another roboot drops a known packet, the AI knows
  wheter the packet was delivered (and thus left the board)
  or is still on the board.
- some general cleanup

Changes since third submission
- some smaller Errors/Typos fixed ..
- push-drop on (another) target was mistaken as delivery
- select Target by max(bulk/dist) instead of min(dist)
  (seems to have little effect (for the packet we choose))

Changes since second submission
- removed dumb error in Potential-on-Demand code
  (could lose seed points due to early return)
- cleaned strategy code
- try to stick with current goal
- better goal selection when needed
- add random Evasive action

Changes since initial submission
- tons of bugs removed ;-)
- (probably) new ones introduced ;-/
- caching of Source/Target maps
- prefer smaller packets, because
  - better chance to fill capcity
  - smaller loss if pushed
- track other robot positions
- track all picks&drops so we can find lost packets



- Development system:
  Celeron 850 (originally 566;-) 128MB
  DSL (using a linux-based router)
  SuSE 7.2 (heavily updated)
  Editors: vi, kwrite, kate

- the Team
  Steffen Kremser
  born Nov 10,1966
  aka. steffen@swb.de
  aka. kremser@nukunuku.swb.de
  aka. kremser@danet.de
  aka. steffen.kremser@t-online.de

CU,
  Steffen Kremser  steffen@swb.de
