psop: using search to find better resource-leveled schedules matt ginsberg
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?