430 likes | 774 Vues
Christopher J. Hazard North Carolina State University cjhazard@ncsu.edu. Resource Allocation and Routing in Multi-vehicle Warehousing: Alphabet Soup. Outline. Motivation & Kiva Systems Alphabet Soup Problem Demo Testbed & code details Viable Solutions
E N D
Christopher J. Hazard North Carolina State University cjhazard@ncsu.edu Resource Allocation and Routing in Multi-vehicle Warehousing:Alphabet Soup Christopher J. Hazard
Outline • Motivation & Kiva Systems • Alphabet Soup • Problem • Demo • Testbed & code details • Viable Solutions • Abstraction with MILP & Stochastic programming • Market oriented programming Christopher J. Hazard
The Problem Reserve Forward Shipping MFG Shipping Boxes, Cartons Cases, Eaches Pallets MFG Retailer, Customer Christopher J. Hazard
Kiva Systems • Philosophy • People Hands >> Robot Hands (for now) • All products mobile • Move products to hands • Solution • Robots move “pods” to humans on perimeter • System completely manages fulfillment Christopher J. Hazard
Kiva Systems Pods & Robots Christopher J. Hazard
Kiva Systems Picking Workflow Christopher J. Hazard
Kiva Systems Installation Christopher J. Hazard
Kiva Systems Installation (2) Christopher J. Hazard
Kiva 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 Christopher J. Hazard
What is Alphabet Soup? Abstraction of Physical Routing in Warehouses, Manufacturing, Assembly Letter Station Word Station Word Station Letter Station Christopher J. Hazard
Alphabet Soup Testbed Mechanics • Maximum speed & acceleration clamped • Time penalty for collisions • “Perfect sensing” • Robot coordination important • High level for controlling robots Christopher J. Hazard
Alphabet Soup Demos • Small example • Large example • Greedy vs. market • Java + LWJGL, GPL 2+ • http://research.csc.ncsu.edu/alphabetsoup Christopher J. Hazard
Alphabet 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 Christopher J. Hazard
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 Alphabet Soup Code Overview Christopher J. Hazard
simulators.graphexample BucketbotManagerExample LetterManagerExample SimulationWorldGraphExample WordOrderManagerExample simulators.greedytaskallocation BucketbotAgent BucketbotGlobalResources LetterManager SimulationWorldGreedyTaskAllocation WordOrderManager Alphabet Soup Code Overview (2) • waypointgraph • BucketbotDriver • BucketbotManager • GenerateWaypointGraph • Waypoint • WaypointGraphRender Christopher J. Hazard
Code Walkthrough • alphabetsoup.config • graphexample • SimulationWorldGraphExample • WordOrderManagerExample • LetterManagerExample • BucketbotManagerExample • greedytaskallocation • BucketbotAgent • waypointgraph • BucketbotManager • BucketbotDriver • GenerateWaypointGraph Christopher J. Hazard
Misc. 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. • Don’t be afraid to change code • Add own classes, initialize in SimulationWorld • Consider DOE (Design Of Experiment) Christopher J. Hazard
Waypoints & Bucket Storage • Waypoint graph • Waypoint layout? • Word & Letter station layout? • Storage layout? • Path weights? • Bucket brigade? (exchange is costly) Christopher J. Hazard
Path 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 Christopher J. Hazard
Goals • Prevent deadlock • Maximize throughput • Minimize congestion • Minimize # of robots, buckets, stations • Minimize idle time • Minimize energy (distance, #pickups & setdowns) • Minimize variance of task times Christopher J. Hazard
Questions 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? Christopher J. Hazard
Possible “Solutions” • Stochastic Programming • Further abstraction with MILP • Market oriented programming Christopher J. Hazard
Stochastic Programming • Many recourse problems • How to model probability distributions? • What level of abstraction? • Joint distributions highly dependent on coordination schemes • Use MDP’s? Christopher J. Hazard
Further 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: ||items||2 x ||stations|| • 1000 items, 10 stations 10M constraints for timing Christopher J. Hazard
Market-Oriented Programming [Wellman ‘96] • Resource allocation • Agents • Markets/Auctions • Resources • Valuations • Transform optimization problems • Interface: price & resource • Sometimes altruistic or honest agents Christopher J. Hazard
Dual of MILP as Market • Constraints to prevent discriminatory pricing • Adds O(||items of a type||2 x ||stations||) more constraints • Preliminary results suggest may not affect optimality for steady-state • Simpler to solve? • Simplify problem further? Christopher J. Hazard
Representing 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 Christopher J. Hazard
Representing an Economy (2) arrow anonymous price? linear price? no yes no no yes yes yes no Christopher J. Hazard
Economy 1 Letter Builder Storage Letter Station Letter Bundle Storage Right Letter Bundle Bucketbot Bucket Transportation Letter Word Station Word Word Queue Christopher J. Hazard
Economy 2 Letter Builder Storage Letter Station Letter Bundle Storage Right Letter Bundle Bucketbot Transportation Bucket Letter Word Station Word Word Queue Christopher J. Hazard
Economy 3 Letter Builder Letter Station Letter Bundle Storage Bundle Slot Storage Right Bucketbot Transportation Bucket Letter Word Queue Word Station Word Christopher J. Hazard
Segmenting the Market A A X X C B X' B X' C Christopher J. Hazard
Communicating Price Information Between Market Segments • Information channel • Auctioneers • “Middleman” agents • Information timing • Tâtonnement-like • Reactive Christopher J. Hazard
Auctioneer 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) Christopher J. Hazard
“Middleman” 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 Christopher J. Hazard
Available Resources • In Alphabet Soup release • Working anonymous linear-price market model: simulators.markettaskallocation • Start of implementation of non-linear price market model: simulators.combinatorialmarkettaskallocation • 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 Christopher J. Hazard
Other 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 Christopher J. Hazard
Acknowledgements • Peter Wurman • Kiva Systems • Raff D’Andrea • Kiva Systems, Cornell Christopher J. Hazard