Title: Resource Allocation and Routing in Multivehicle Warehousing: Alphabet Soup
1Resource Allocation and Routing in Multi-vehicle
WarehousingAlphabet Soup
- Christopher J. Hazard
- North Carolina State University
- cjhazard_at_ncsu.edu
2Outline
- Motivation Kiva Systems
- Alphabet Soup
- Problem
- Demo
- Testbed code details
- Viable Solutions
- Abstraction with MILP Stochastic programming
- Market oriented programming
3The Problem
Reserve
Forward
Shipping
MFG
Shipping Boxes, Cartons
Cases, Eaches
Pallets
MFG
Retailer, Customer
4Kiva Systems
- Philosophy
- People Hands gtgt Robot Hands (for now)
- All products mobile
- Move products to hands
- Solution
- Robots move pods to humans on perimeter
- System completely manages fulfillment
5Kiva Systems Pods Robots
6Kiva Systems Picking Workflow
7Kiva Systems Installation
8Kiva Systems Installation (2)
9Kiva Systems Features
- All workers have access to all products
- Order completed by single worker
- Adaptive storage replenishment
- Spatial flexibility
- Route around problems
- Item shape flexibility
- Slots, hanging, shelves
- Optimizes for weight shape
10What is Alphabet Soup?
Abstraction of Physical Routing in Warehouses,
Manufacturing, Assembly
Letter Station
Word Station
Word Station
Letter Station
11Alphabet Soup Testbed Mechanics
- Maximum speed acceleration clamped
- Time penalty for collisions
- Perfect sensing
- Robot coordination important
- High level for controlling robots
12Alphabet Soup Demos
- Small example
- Large example
- Greedy vs. market
- Java LWJGL, GPL 2
- http//research.csc.ncsu.edu/alphabetsoup
13Alphabet Soup High Level View
- Extend base classes
- implement behavior
- Statistics
Simulation World
Managers
Map
Quadtree
Word List
Letter Stations
Buckets
Render Window
Word Stations
Bucketbots
Waypoint Graph
14Alphabet Soup Code Overview
- base
- Bucket
- Bucketbot
- BucketbotTask
- LetterStation
- SummaryReport
- WordList
- WordStation
- userinterface
- RenderWindow
- BucketbotRender, BucketRender, etc.
- Renderable
- Bold will probably use
- Italics interface
- framework
- Bucket
- Bucketbot
- Circle
- Letter
- LetterColor
- LetterStation
- LetterType
- Map
- MersenneTwisterFast
- Quadtree
- QuadtreeNode
- SimulationWorld
- Updateable
- Word
- WordList
- WordStation
15Alphabet Soup Code Overview (2)
- simulators.graphexample
- BucketbotManagerExample
- LetterManagerExample
- SimulationWorldGraphExample
- WordOrderManagerExample
- simulators.greedytaskallocation
- BucketbotAgent
- BucketbotGlobalResources
- LetterManager
- SimulationWorldGreedyTaskAllocation
- WordOrderManager
- waypointgraph
- BucketbotDriver
- BucketbotManager
- GenerateWaypointGraph
- Waypoint
- WaypointGraphRender
16Code Walkthrough
- alphabetsoup.config
- graphexample
- SimulationWorldGraphExample
- WordOrderManagerExample
- LetterManagerExample
- BucketbotManagerExample
- greedytaskallocation
- BucketbotAgent
- waypointgraph
- BucketbotManager
- BucketbotDriver
- GenerateWaypointGraph
17Misc. Tips
- Need Java 5, Java 6 faster
- For-each loops
- java.util.
- List / ArrayList
- HashMap
- Use provided random generator
- SimulationWorld.rand.nextFloat()
- nextInt(), etc.
- Is the task complete? Check for errors.
- Dont be afraid to change code
- Add own classes, initialize in SimulationWorld
- Consider DOE (Design Of Experiment)
18Waypoints Bucket Storage
- Waypoint graph
- Waypoint layout?
- Word Letter station layout?
- Storage layout?
- Path weights?
- Bucket brigade? (exchange is costly)
19Path Planning
- HUGE impact on throughput
- Robot coordination
- Waypoint/path reservation system?
- Multi-agent planning
- Currently uses A
- waypointgraph.BucketbotDriver
- Checks next couple waypoints
- Bounces around when waiting
20Goals
- Prevent deadlock
- Maximize throughput
- Minimize congestion
- Minimize of robots, buckets, stations
- Minimize idle time
- Minimize energy (distance, pickups setdowns)
- Minimize variance of task times
21Questions to Achieve Goals
- Which letters in which buckets?
- Bucket specializations?
- Which buckets to fulfill words?
- Which stations to assign words and letters?
- Which bucketbots for which buckets?
22Possible Solutions
- Stochastic Programming
- Further abstraction with MILP
- Market oriented programming
23Stochastic Programming
- Many recourse problems
- How to model probability distributions?
- What level of abstraction?
- Joint distributions highly dependent on
coordination schemes - Use MDPs?
24Further abstraction with MILP
- Many assignment problems
- Assign words to word stations
- Assign letters to words, letter stations,
buckets, and robots - Choose event times
- Events take time
- Non-integer times
- Conditionals to ensure proper ordering of events
- Even abstracting away buckets robots
- 15 constraint types
- Many stations x items
- Timing items2 x stations
- 1000 items, 10 stations ? 10M constraints for
timing
25Market-Oriented Programming
Wellman 96
- Resource allocation
- Agents
- Markets/Auctions
- Resources
- Valuations
- Transform optimization problems
- Interface price resource
- Sometimes altruistic or honest agents
26Dual of MILP as Market
- Constraints to prevent discriminatory pricing
- Adds O(items of a type2 x stations) more
constraints - Preliminary results suggest may not affect
optimality for steady-state - Simpler to solve?
- Simplify problem further?
27Representing an Economy
Agent Type
Agent Type A
Auction
Item Type
Auction with
Item Type I
Multiple Item
or Agent Types
Item Can
Be Sold By
28Representing an Economy (2)
arrow anonymous price? linear price?
no yes
no no
yes yes
yes no
29Economy 1
Letter Builder
Storage
Letter Station
Letter Bundle
Storage Right
Letter Bundle
Bucketbot
Bucket
Transportation
Letter
Word Station
Word
Word Queue
30Economy 2
Letter Builder
Storage
Letter Station
Letter Bundle
Storage Right
Letter Bundle
Bucketbot
Transportation
Bucket
Letter
Word Station
Word
Word Queue
31Economy 3
Letter Builder
Letter Station
Letter Bundle
Storage
Bundle Slot
Storage Right
Bucketbot
Transportation
Bucket
Letter
Word Queue
Word
Word Station
32Segmenting the Market
A
A
X
X
C
B
X'
B
X'
C
33Communicating Price Information Between Market
Segments
- Information channel
- Auctioneers
- Middleman agents
- Information timing
- Tâtonnement-like
- Reactive
34Auctioneer Communication
- Tâtonnement-like Cheng Wellman 98
- DCOP Modi et al. 03 and Petcu Faltings 05
- Artificially harder problem?
- Inefficient discovery of valuations
- Constraints between agents on both sides
- Reactive
- Exposure problem
- No free disposal
- Sub-problems unaccounted for (e.g. TSP)
35Middleman Agents as Information Channel
- Exposure problem
- No free disposal
- Learning market prices
- Speculators
- Specialization
- Propagate demand for goods not in market
- Leverage uncertainty models
- Tâtonnement issues
36Available Resources
- In Alphabet Soup release
- Working anonymous linear-price market model
simulators.markettaskallocation - Start of implementation of non-linear price
market model simulators.combinatorialmarkettaskal
location - Available upon request
- Collisionless evaluator framework
- In C, only random decisions
- Alphabet Soup provides data
- MILP model of collisionless abstraction
- Not validated
- Collaboration tools sourceforge.net,
wiki/forums, SVN
37Other Ideas
- Apply Alphabet Soup to Mfg/Assembly
- Affect of distributions
- Affect of online optimization stations
- Adaptive storage algorithms
- N-player competitive Alphabet Soup?!?
- Squares, hexagons, and beyond
- Pick/replen station layout
38Acknowledgements
- Peter Wurman
- Kiva Systems
- Raff DAndrea
- Kiva Systems, Cornell