2008-02-12christopher j. hazard 1 resource allocation and routing in multi-vehicle warehousing:...

38
Resource Allocation and Routing in Multi-vehicle Warehousing: Alphabet Soup Christopher J. Hazard North Carolina State University [email protected]

Upload: prudence-willis

Post on 31-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

Resource Allocation and Routing in Multi-vehicle Warehousing:

Alphabet Soup

Christopher J. HazardNorth Carolina State University

[email protected]

2008-02-12 Christopher J. Hazard 2

Outline

• Motivation & Kiva Systems• Alphabet Soup

– Problem– Demo– Testbed & code details

• Viable Solutions– Abstraction with MILP & Stochastic

programming– Market oriented programming

2008-02-12 Christopher J. Hazard 3

Retailer,Customer

The Problem

MFG

MFG

Pallets

Cases, Eaches

Shipping Boxes,

Cartons

Reserve Forward Shipping

2008-02-12 Christopher J. Hazard 4

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

2008-02-12 Christopher J. Hazard 5

Kiva Systems Pods & Robots

2008-02-12 Christopher J. Hazard 6

Kiva Systems Picking Workflow

2008-02-12 Christopher J. Hazard 7

Kiva Systems Installation

2008-02-12 Christopher J. Hazard 8

Kiva Systems Installation (2)

2008-02-12 Christopher J. Hazard 9

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

2008-02-12 Christopher J. Hazard 10

What is Alphabet Soup?

LetterStation Word

Station

Abstraction of Physical Routing in Warehouses, Manufacturing, Assembly

LetterStation

WordStation

2008-02-12 Christopher J. Hazard 11

Alphabet Soup Testbed Mechanics

• Maximum speed & acceleration clamped

• Time penalty for collisions

• “Perfect sensing”

• Robot coordination important– High level for controlling robots

2008-02-12 Christopher J. Hazard 12

Alphabet Soup Demos

• Small example

• Large example

• Greedy vs. market

• Java + LWJGL, GPL 2+

• http://research.csc.ncsu.edu/alphabetsoup

2008-02-12 Christopher J. Hazard 13

Alphabet Soup High Level View

Map

Simulation World

Word Stations

Letter Stations

Managers

Render Window

Word ListBuckets

Bucketbots

Quadtree

• Extend base classes– implement behavior

• Statistics

Waypoint Graph

2008-02-12 Christopher J. Hazard 14

Alphabet Soup Code Overview• base

– Bucket– Bucketbot– BucketbotTask– LetterStation– SummaryReport– WordList– WordStation

• userinterface– RenderWindow– BucketbotRender,

BucketRender, etc.– Renderable

Bold: will probably useItalics: interface

• framework– Bucket– Bucketbot– Circle– Letter– LetterColor– LetterStation– LetterType– Map– MersenneTwisterFast– Quadtree– QuadtreeNode– SimulationWorld– Updateable– Word– WordList– WordStation

2008-02-12 Christopher J. Hazard 15

Alphabet Soup Code Overview (2)• simulators.graphexample

– BucketbotManagerExample– LetterManagerExample– SimulationWorldGraphExample– WordOrderManagerExample

• simulators.greedytaskallocation– BucketbotAgent– BucketbotGlobalResources– LetterManager– SimulationWorldGreedyTaskAllo

cation– WordOrderManager

• waypointgraph– BucketbotDriver– BucketbotManager– GenerateWaypointGraph– Waypoint– WaypointGraphRender

2008-02-12 Christopher J. Hazard 16

Code Walkthrough

• alphabetsoup.config• graphexample

– SimulationWorldGraphExample– WordOrderManagerExample– LetterManagerExample– BucketbotManagerExample

• greedytaskallocation– BucketbotAgent

• waypointgraph– BucketbotManager– BucketbotDriver– GenerateWaypointGraph

2008-02-12 Christopher J. Hazard 17

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)

2008-02-12 Christopher J. Hazard 18

Waypoints & Bucket Storage• Waypoint graph

– Waypoint layout?– Word & Letter station layout?– Storage layout?– Path weights?– Bucket brigade? (exchange is costly)

2008-02-12 Christopher J. Hazard 19

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

2008-02-12 Christopher J. Hazard 20

Goals

1. Prevent deadlock

2. Maximize throughput• Minimize congestion

3. Minimize # of robots, buckets, stations

4. Minimize idle time

5. Minimize energy (distance, #pickups & setdowns)

6. Minimize variance of task times

2008-02-12 Christopher J. Hazard 21

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?

2008-02-12 Christopher J. Hazard 22

Possible “Solutions”

• Stochastic Programming

• Further abstraction with MILP

• Market oriented programming

2008-02-12 Christopher J. Hazard 23

Stochastic Programming

• Many recourse problems

• How to model probability distributions?– What level of abstraction?

• Joint distributions highly dependent on coordination schemes

• Use MDP’s?

2008-02-12 Christopher J. Hazard 24

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

2008-02-12 Christopher J. Hazard 25

Market-Oriented Programming

• Resource allocation– Agents– Markets/Auctions– Resources– Valuations

• Transform optimization problems

• Interface: price & resource

• Sometimes altruistic or honest agents

[Wellman ‘96]

2008-02-12 Christopher J. Hazard 26

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?

2008-02-12 Christopher J. Hazard 27

Representing an Economy

Item Type I

Agent Type A Agent Type

Item Type

Item Can Be Sold By

Auction

Auction with Multiple Item or Agent Types

2008-02-12 Christopher J. Hazard 28

Representing an Economy (2)

arrow anonymous price? linear price?no yesno no yes yesyes no

2008-02-12 Christopher J. Hazard 29

Economy 1

Word

Letter Bundle

Letter

Bucket

Letter Station

Transportation

Bucketbot

Storage Right

Storage

Letter Bundle

Letter Builder

Word Station

Word Queue

2008-02-12 Christopher J. Hazard 30

Economy 2

Letter Bundle

Storage RightLetter Bundle

Letter

Bucket

Letter Station

Letter Builder

Transportation

Storage

Bucketbot

Word Station

Word Word Queue

2008-02-12 Christopher J. Hazard 31

Economy 3

Letter BundleBundle Slot

Letter

Word

Bucket

Letter Builder

Transportation

Word Queue

Bucketbot

Storage Right

Storage

Letter Station

Word Station

2008-02-12 Christopher J. Hazard 32

Segmenting the Market

A X

B X'

C

X

A

B

X'

C

2008-02-12 Christopher J. Hazard 33

Communicating Price Information Between Market Segments

• Information channel– Auctioneers– “Middleman” agents

• Information timing– Tâtonnement-like– Reactive

2008-02-12 Christopher J. Hazard 34

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)

2008-02-12 Christopher J. Hazard 35

“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

2008-02-12 Christopher J. Hazard 36

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

2008-02-12 Christopher J. Hazard 37

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

2008-02-12 Christopher J. Hazard 38

Acknowledgements

• Peter Wurman– Kiva Systems

• Raff D’Andrea– Kiva Systems, Cornell