psop: using search to find better resource-leveled schedules matt ginsberg

Post on 16-Dec-2015

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

PSOP: Using Search to Find Better Resource-Leveled

SchedulesMatt Ginsberg

© 2005 On Time Systems, Inc.

© 2005 On Time Systems, Inc.

Scheduling to an Academic

• Use small examples to: Understand why scheduling is hard Develop possible solutions

• Eventually, evaluate candidate approaches based on performance on real problems

PSOP: Using Search to Find Better Resource-Leveled

SchedulesMatt Ginsberg

PSOP: Using Search to Find Better Resource-Leveled

SchedulesMatt Ginsberg

Why Scheduling is Like Tetris

© 2005 On Time Systems, Inc.

Scheduling and Tetris

• The idea is to squish a lot of stuff into a small space

• It helps to know what’s coming

• I am terrible at both

© 2005 On Time Systems, Inc.

• Fact: Computer scientists tend to work on problems at which they are personally lousy.

• Consequence: Beware of people who say that they are working on “general intelligence.”

© 2005 On Time Systems, Inc.

Summary

• The idea is to squish a lot of stuff into a small space

• It helps to know what’s coming

• I am terrible at both• … but Tetris is much more

forgiving than scheduling is

© 2005 On Time Systems, Inc.

A Scheduling Problem

• The capacity of the red resource is one.

• The capacity of the blue resource is infinite.

• The capacity of the purple resource is two.

© 2005 On Time Systems, Inc.

How Scheduling Algorithms Work

1. Select the highest-priority unscheduled task whose predecessors have all been scheduled.

2. Schedule it at its current early start.

3. Repeat.

© 2005 On Time Systems, Inc.

How Scheduling Algorithms Work

1. Select the highest-priority unscheduled task whose predecessors have all been scheduled.

2. Schedule it at its current early start.

3. Repeat.

© 2005 On Time Systems, Inc.

Order Matters

1. Select the highest-priority unscheduled task whose predecessors have all been scheduled.

2. Schedule it at its current early start.

3. Repeat.

© 2005 On Time Systems, Inc.

Order Matters

• The purple resource has capacity two.

• The bottom task should not be scheduled last.

© 2005 On Time Systems, Inc.

Order Matters

• The purple resource has capacity two.

• The bottom task should not be scheduled last.

© 2005 On Time Systems, Inc.

Schedule the Longest Task First?

1

2

3

© 2005 On Time Systems, Inc.

Schedule the Longest Task First?

1

2

3

© 2005 On Time Systems, Inc.

Schedule the Least Float Task First

2

3

1

© 2005 On Time Systems, Inc.

No Obvious Order Works

longest, least float

© 2005 On Time Systems, Inc.

No Obvious Order Works

longest, least float

© 2005 On Time Systems, Inc.

The Example in Primavera

• Use a silly order• Prioritize by hand

longest, least float

© 2005 On Time Systems, Inc.

No Order Works

© 2005 On Time Systems, Inc.

Least Float First

least float

© 2005 On Time Systems, Inc.

Most Float First?

least float

© 2005 On Time Systems, Inc.

The Order That Works

• Prioritize by hand?least float

© 2005 On Time Systems, Inc.

Prioritization by Hand

© 2005 On Time Systems, Inc.

621448343096404116926135860762885873697881229555061590802593938705814398694973225768244969697549872466459211331307723222934059499375500591312311462263062638972198857427386275800177965460260837436333754748678114661327719837932994422089469537674875220051641220856036876567438952782651835281685046183446935121600884433220214022163050816904249773507649979259766512100178996611248560259547972522330921645841827091610996335339735904266580447135285596633216949587500251175851697844231941111552305342500087515174049892522731559680658044322980688337153362431075419045678033632266250323568148456063428038831079294520109236330698159421798902904274908609454224627297197822264492097122905790374744194969687752392582386688192593183422678000756026821830838987626418394041102809716294930699026084725733752847318517029394418786606553992716821718489982384192157537001932896131250631943633681189467961479262598187689423146398521528651148257886348255982470395382715173132935917531211523989263728429916678551354185652968566963645864064720556604790002966007301382142426967310238765855036962704559279771655828589828357410592561172112650144700823377277774844917598174793954191251363289313724549007183526098638082852166927602604403627227045631762603172038451934696146701875464727206540986344984273051025117100752992599815746823570857621533858507616933699581629261634833759150493282850381039706789459363641681965308835226476485669646614781066319520442956086989137341721247681805767152240136238943155825270070281358991370120989472112635242073148305334324743307565615947808119120667142981519609820839783441980967784858413017299010788743299335581166022612386817083059136350621281238273627570084234243361061701952131660132261439415834101325863726222928469945403036513648539096979925581960811221401304702882672547151855543911209604128169029976479084376757308969900362705933098628403761692026471018152946843097329759255029586568005475170968393360781924162630056703809177575714787616041316549055383352489236693453545876189455827691386118038717362972636679872518376368519668922131536605997268964078202539646617311748214195604136928181980869504372267254876390056777765211498180439161095964482394114085356187847227627642627343249645797394810148118697714351026659183496673396444246231541097122494092437846428835231108879960019706001548143125093728735987633057648091947442506338821364705074683543696486536107432973960606858778795554150007855499503470679858666679300017141261132537448860301160665538178348831089592428108530932048163481576677059413993130640131229306118976006754349880285256883992916805074599515341986006873636332693186944383648622703379705641488322599558709975778092260321996590147351458689855970701339840404287983200406733567912904918818159781327318240460293701507464828733406364188213282820725493911768387730463355967985440398989439291792235923275566239759208040473181182287164228374391476552942916971675639509970336666401830465248548093792526454845981804324483846938943838456425543679316625672949871108393583185494219766136437642858173572593940790958629369322340617121530688167641417295014180078668380546705799697586576953946836398864290713159088878652137731351998456039759514931922218152243562812345211545144024605656924046665066413737242802292979020683756474406444285058247998107344175777538502028497642681301080157996352436924757548884855717433963112917467603684606940903854173843229995685553894280655940022286993682310860470613144518505422149239110488079385052982329672431715467830393410721605953605249597168414373607901765918360003777680269195598383268631815433786538190222440148269143332059738135330250045419849854507327203694698743879860636650494483958559267248656219814376537450924362801727504939957738753685858820076420206582903128033727324960956893612345921688480584019062334994973753315978588150363570311300053510676893584925535316364239603546650869644644140444794858276955470082083207439999978643897544271888275689567525644690090942901239840347554032057171322224962317707287947059299938940143814573256255298500115550698610040764889755503322661546417288482862565635104375231950217080173374819888870291434764137734299528646947757132921622563752323400002197812187358137835356205707411472684521750056611006212041640392752169793138478190556265071869105971762252575337630580670462191723627827651281198965379615401263981540935120590441953580688486999068303536675563305160091763874848411204525393659688397380810367163178220071647336136969522695826344215351372681000132568208676743629549331428943005189314015036594224480075575809157206356137803076611828422125287478325755772539497157955777333648806734710749303097153285887442631594935681434108072726996737372915607810861443220961303370099325639544097803843341298067729614175975798675478158856166806320810914127981578721466132581575224772852967644724936568110098087988105803706490510073232516016844006645179461172608342171125877226266206914019349203915647354652149382674121420888077819978691602063392272949314268994109096732286342307448495124225709332974968650114894849297418403717991358550769700158004566630309091493020831746774282662029925663571226652322280828496507632915188074611493173612722669289503449716063461518908194587651655519434462171814965660889973526587424312347683384336021470986277266659941850962124302873741336126782790761856031604594153704414738037884512294875093083933256957042549567821705865140698993437152264175707029292545455744523287786089532412703349933914353552660195798014338597039321982884536154350101082197231639300898508271359231964200498656654377787383358671609146336276944831860928546128575939513725709329306331655318276599268566330949055676055594849072688030896802510973688626622876587191685186899097015628430310211145338977800395530305791697805490417154778323334554828543353276440161865221827685570877678598882691399434163663354038671058187168417869879568183488686554729108175422364172047127409629252659829249951435571579252294340475224380432341955536760758319118675440437558252229692774202307551734627407788147875346693750842552731450930255523011722941880905802527783354286954797104554408530375351381908781775168862859852629553022777005642149802294155932299655379321080666355608899834689155442691528777142150843252249227268687323258096884450181036384458086157468184940401289662741740072154217876573994464527266613512829661747820030087899472582805630205040150187443652036761970427526371851481130602945211633066767014025624519236067090945197907201366208453111853600915885774494827260614982588968066791719824473087451103055634643901035253908546354964091796925277504827856869174755505679403433358107447434462896760442182228491844498055306959335906417670470935375873958423075749473529896102227473365147577040361919683851029526754216443401706595553340692890254661398332892780466490120856222399035609817874612276930338909217278973209386701850134698351918654038521606951220595043467655427716126348922681448847092628728208145359439342909632613360828326635673832401203163117600493314712935598342023725743836728664044269849076071644703595482870176980513282599824637431660614367439722899014444293530893906776720294553051093939575936246271628805918372911611861643447490108722714453590059371075528006963533309158320154785301696488680095365005037953285939921104700277129332020138782391434150127205694326913499397143477714116337083426121228170847198605361294657400954799562998750325210732283722969433983337641699789197266925891993479457015947423385788159476413437802692592918747986540468633600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

© 2005 On Time Systems, Inc.

Prioritization by Hand

• Unlikely to work in practice• What can you do?• Being good at Tetris will not save you

© 2005 On Time Systems, Inc.

Outline

• If you want a good schedule, prioritization matters• Not obvious how to prioritize automatically• Prioritization by hand is impractical• Schedule packing• Squeaky wheel optimization

How it works Strengths, weaknesses Access

© 2005 On Time Systems, Inc.

Schedule Packing

WARNING: Contents may have settled

during shipping

© 2005 On Time Systems, Inc.

Schedule Packing

1. Slide tasks as far to right as possible

2. Reschedule using start time as priority

1 2

3

4

© 2005 On Time Systems, Inc.

Outline

• If you want a good schedule, prioritization matters• Not obvious how to prioritize automatically• Prioritization by hand is impractical• Schedule packing• Squeaky wheel optimization

How it works Strengths, weaknesses Access

© 2005 On Time Systems, Inc.

Squeaky Wheel Optimization

• Too many priority orders to figure out the best one

• Use search

© 2005 On Time Systems, Inc.

think search

• Primavera• schedule packing

• squeaky wheel

P=NP?

© 2005 On Time Systems, Inc.

Solving Problems Using Search

• The key is to control the search

© 2005 On Time Systems, Inc.

621448343096404116926135860762885873697881229555061590802593938705814398694973225768244969697549872466459211331307723222934059499375500591312311462263062638972198857427386275800177965460260837436333754748678114661327719837932994422089469537674875220051641220856036876567438952782651835281685046183446935121600884433220214022163050816904249773507649979259766512100178996611248560259547972522330921645841827091610996335339735904266580447135285596633216949587500251175851697844231941111552305342500087515174049892522731559680658044322980688337153362431075419045678033632266250323568148456063428038831079294520109236330698159421798902904274908609454224627297197822264492097122905790374744194969687752392582386688192593183422678000756026821830838987626418394041102809716294930699026084725733752847318517029394418786606553992716821718489982384192157537001932896131250631943633681189467961479262598187689423146398521528651148257886348255982470395382715173132935917531211523989263728429916678551354185652968566963645864064720556604790002966007301382142426967310238765855036962704559279771655828589828357410592561172112650144700823377277774844917598174793954191251363289313724549007183526098638082852166927602604403627227045631762603172038451934696146701875464727206540986344984273051025117100752992599815746823570857621533858507616933699581629261634833759150493282850381039706789459363641681965308835226476485669646614781066319520442956086989137341721247681805767152240136238943155825270070281358991370120989472112635242073148305334324743307565615947808119120667142981519609820839783441980967784858413017299010788743299335581166022612386817083059136350621281238273627570084234243361061701952131660132261439415834101325863726222928469945403036513648539096979925581960811221401304702882672547151855543911209604128169029976479084376757308969900362705933098628403761692026471018152946843097329759255029586568005475170968393360781924162630056703809177575714787616041316549055383352489236693453545876189455827691386118038717362972636679872518376368519668922131536605997268964078202539646617311748214195604136928181980869504372267254876390056777765211498180439161095964482394114085356187847227627642627343249645797394810148118697714351026659183496673396444246231541097122494092437846428835231108879960019706001548143125093728735987633057648091947442506338821364705074683543696486536107432973960606858778795554150007855499503470679858666679300017141261132537448860301160665538178348831089592428108530932048163481576677059413993130640131229306118976006754349880285256883992916805074599515341986006873636332693186944383648622703379705641488322599558709975778092260321996590147351458689855970701339840404287983200406733567912904918818159781327318240460293701507464828733406364188213282820725493911768387730463355967985440398989439291792235923275566239759208040473181182287164228374391476552942916971675639509970336666401830465248548093792526454845981804324483846938943838456425543679316625672949871108393583185494219766136437642858173572593940790958629369322340617121530688167641417295014180078668380546705799697586576953946836398864290713159088878652137731351998456039759514931922218152243562812345211545144024605656924046665066413737242802292979020683756474406444285058247998107344175777538502028497642681301080157996352436924757548884855717433963112917467603684606940903854173843229995685553894280655940022286993682310860470613144518505422149239110488079385052982329672431715467830393410721605953605249597168414373607901765918360003777680269195598383268631815433786538190222440148269143332059738135330250045419849854507327203694698743879860636650494483958559267248656219814376537450924362801727504939957738753685858820076420206582903128033727324960956893612345921688480584019062334994973753315978588150363570311300053510676893584925535316364239603546650869644644140444794858276955470082083207439999978643897544271888275689567525644690090942901239840347554032057171322224962317707287947059299938940143814573256255298500115550698610040764889755503322661546417288482862565635104375231950217080173374819888870291434764137734299528646947757132921622563752323400002197812187358137835356205707411472684521750056611006212041640392752169793138478190556265071869105971762252575337630580670462191723627827651281198965379615401263981540935120590441953580688486999068303536675563305160091763874848411204525393659688397380810367163178220071647336136969522695826344215351372681000132568208676743629549331428943005189314015036594224480075575809157206356137803076611828422125287478325755772539497157955777333648806734710749303097153285887442631594935681434108072726996737372915607810861443220961303370099325639544097803843341298067729614175975798675478158856166806320810914127981578721466132581575224772852967644724936568110098087988105803706490510073232516016844006645179461172608342171125877226266206914019349203915647354652149382674121420888077819978691602063392272949314268994109096732286342307448495124225709332974968650114894849297418403717991358550769700158004566630309091493020831746774282662029925663571226652322280828496507632915188074611493173612722669289503449716063461518908194587651655519434462171814965660889973526587424312347683384336021470986277266659941850962124302873741336126782790761856031604594153704414738037884512294875093083933256957042549567821705865140698993437152264175707029292545455744523287786089532412703349933914353552660195798014338597039321982884536154350101082197231639300898508271359231964200498656654377787383358671609146336276944831860928546128575939513725709329306331655318276599268566330949055676055594849072688030896802510973688626622876587191685186899097015628430310211145338977800395530305791697805490417154778323334554828543353276440161865221827685570877678598882691399434163663354038671058187168417869879568183488686554729108175422364172047127409629252659829249951435571579252294340475224380432341955536760758319118675440437558252229692774202307551734627407788147875346693750842552731450930255523011722941880905802527783354286954797104554408530375351381908781775168862859852629553022777005642149802294155932299655379321080666355608899834689155442691528777142150843252249227268687323258096884450181036384458086157468184940401289662741740072154217876573994464527266613512829661747820030087899472582805630205040150187443652036761970427526371851481130602945211633066767014025624519236067090945197907201366208453111853600915885774494827260614982588968066791719824473087451103055634643901035253908546354964091796925277504827856869174755505679403433358107447434462896760442182228491844498055306959335906417670470935375873958423075749473529896102227473365147577040361919683851029526754216443401706595553340692890254661398332892780466490120856222399035609817874612276930338909217278973209386701850134698351918654038521606951220595043467655427716126348922681448847092628728208145359439342909632613360828326635673832401203163117600493314712935598342023725743836728664044269849076071644703595482870176980513282599824637431660614367439722899014444293530893906776720294553051093939575936246271628805918372911611861643447490108722714453590059371075528006963533309158320154785301696488680095365005037953285939921104700277129332020138782391434150127205694326913499397143477714116337083426121228170847198605361294657400954799562998750325210732283722969433983337641699789197266925891993479457015947423385788159476413437802692592918747986540468633600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

© 2005 On Time Systems, Inc.

Solving Problems Using Search

• The key is to control the search• A machine can look at many candidate

schedules, but it still needs to focus on schedules that are likely to be good

• Squeaky wheel: Analyze the current schedule before generating the next one

© 2005 On Time Systems, Inc.

Squeaky Wheel Optimization

• C-A-P loop Construct Analyze Prioritize

© 2005 On Time Systems, Inc.

Squeaky Wheel Optimization

• C-A-P loop Construct a schedule from current priorities Analyze Prioritize

© 2005 On Time Systems, Inc.

Squeaky Wheel Optimization

• C-A-P loop Construct a schedule from current priorities Analyze to evaluate performance by task Prioritize

© 2005 On Time Systems, Inc.

Squeaky Wheel Optimization

• C-A-P loop Construct a schedule from current priorities Analyze to evaluate performance by task Prioritize so that poorly scheduled tasks

become more important• The squeaky wheel gets the grease!

© 2005 On Time Systems, Inc.

Squeaky Wheel Where no Order Worked

1

2

3

1

2

3

© 2005 On Time Systems, Inc.

3

Squeaky Wheel Where no Order Worked

• Search improves your ability to find good solutions, even if you guess wrong initially

1

2

© 2005 On Time Systems, Inc.

Schedule Packing on This Problem

© 2005 On Time Systems, Inc.

Squeaky Wheel

© 2005 On Time Systems, Inc.

Enough Already with the Toy Problems!• Turnaround data from existing Primavera customer• 12,248 tasks, analyzed in 4.5 minutes

Primavera length

PSOP length

Primavera overload

PSOP overload

Primavera leveled

47 days 40 days 43 hours 11 hours

Leveled within total float

30 days 30 days 10,561 hours 2,653 hours

© 2005 On Time Systems, Inc.

Pros and Cons

Schedule Packing• Simple• Fast (because no search)• Patented by Boeing

Squeaky Wheel• Not so simple• Potentially slower because of search• Better coverage• Patented by U Oregon• Available as an addon for Primavera 5.0

© 2005 On Time Systems, Inc.

PSOP Demo

© 2005 On Time Systems, Inc.

One Last Example

sand and prepare

mix and paint

-1

© 2005 On Time Systems, Inc.

One Last Example

• No predecessor-based algorithms works!• Squeaky wheel need not follow “network” order• Schedule packing does

sand and prepare

mix and paint

-1

© 2005 On Time Systems, Inc.

Pros and Cons

Schedule Packing• Simple• Fast (because no search)• Patented by Boeing• Add search?

Squeaky Wheel• Not so simple• Potentially slower because of search• Still• Patented by U Oregon• Available as an addon for Primavera 5.0

Better coverage

© 2005 On Time Systems, Inc.

Questions?

top related