# PSOP: Using Search to Find Better Resource-Leveled Schedules Matt Ginsberg.

## Presentation on theme: "PSOP: Using Search to Find Better Resource-Leveled Schedules Matt Ginsberg."— Presentation transcript:

PSOP: Using Search to Find Better Resource-Leveled Schedules Matt Ginsberg

© 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 Schedules Matt Ginsberg

PSOP: Using Search to Find Better Resource-Leveled Schedules Matt 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. 621448343096404116926135860762885873697881229555061590802593938705814398694973225768244969697549872466459211331307723222934059499375500591312311462263062638 972198857427386275800177965460260837436333754748678114661327719837932994422089469537674875220051641220856036876567438952782651835281685046183446935121600884 433220214022163050816904249773507649979259766512100178996611248560259547972522330921645841827091610996335339735904266580447135285596633216949587500251175851 697844231941111552305342500087515174049892522731559680658044322980688337153362431075419045678033632266250323568148456063428038831079294520109236330698159421 798902904274908609454224627297197822264492097122905790374744194969687752392582386688192593183422678000756026821830838987626418394041102809716294930699026084 725733752847318517029394418786606553992716821718489982384192157537001932896131250631943633681189467961479262598187689423146398521528651148257886348255982470 395382715173132935917531211523989263728429916678551354185652968566963645864064720556604790002966007301382142426967310238765855036962704559279771655828589828 357410592561172112650144700823377277774844917598174793954191251363289313724549007183526098638082852166927602604403627227045631762603172038451934696146701875 464727206540986344984273051025117100752992599815746823570857621533858507616933699581629261634833759150493282850381039706789459363641681965308835226476485669 646614781066319520442956086989137341721247681805767152240136238943155825270070281358991370120989472112635242073148305334324743307565615947808119120667142981 519609820839783441980967784858413017299010788743299335581166022612386817083059136350621281238273627570084234243361061701952131660132261439415834101325863726 222928469945403036513648539096979925581960811221401304702882672547151855543911209604128169029976479084376757308969900362705933098628403761692026471018152946 843097329759255029586568005475170968393360781924162630056703809177575714787616041316549055383352489236693453545876189455827691386118038717362972636679872518 376368519668922131536605997268964078202539646617311748214195604136928181980869504372267254876390056777765211498180439161095964482394114085356187847227627642 627343249645797394810148118697714351026659183496673396444246231541097122494092437846428835231108879960019706001548143125093728735987633057648091947442506338 821364705074683543696486536107432973960606858778795554150007855499503470679858666679300017141261132537448860301160665538178348831089592428108530932048163481 576677059413993130640131229306118976006754349880285256883992916805074599515341986006873636332693186944383648622703379705641488322599558709975778092260321996 590147351458689855970701339840404287983200406733567912904918818159781327318240460293701507464828733406364188213282820725493911768387730463355967985440398989 439291792235923275566239759208040473181182287164228374391476552942916971675639509970336666401830465248548093792526454845981804324483846938943838456425543679 316625672949871108393583185494219766136437642858173572593940790958629369322340617121530688167641417295014180078668380546705799697586576953946836398864290713 159088878652137731351998456039759514931922218152243562812345211545144024605656924046665066413737242802292979020683756474406444285058247998107344175777538502 028497642681301080157996352436924757548884855717433963112917467603684606940903854173843229995685553894280655940022286993682310860470613144518505422149239110 488079385052982329672431715467830393410721605953605249597168414373607901765918360003777680269195598383268631815433786538190222440148269143332059738135330250 045419849854507327203694698743879860636650494483958559267248656219814376537450924362801727504939957738753685858820076420206582903128033727324960956893612345 921688480584019062334994973753315978588150363570311300053510676893584925535316364239603546650869644644140444794858276955470082083207439999978643897544271888 275689567525644690090942901239840347554032057171322224962317707287947059299938940143814573256255298500115550698610040764889755503322661546417288482862565635 104375231950217080173374819888870291434764137734299528646947757132921622563752323400002197812187358137835356205707411472684521750056611006212041640392752169 793138478190556265071869105971762252575337630580670462191723627827651281198965379615401263981540935120590441953580688486999068303536675563305160091763874848 411204525393659688397380810367163178220071647336136969522695826344215351372681000132568208676743629549331428943005189314015036594224480075575809157206356137 803076611828422125287478325755772539497157955777333648806734710749303097153285887442631594935681434108072726996737372915607810861443220961303370099325639544 097803843341298067729614175975798675478158856166806320810914127981578721466132581575224772852967644724936568110098087988105803706490510073232516016844006645 179461172608342171125877226266206914019349203915647354652149382674121420888077819978691602063392272949314268994109096732286342307448495124225709332974968650 114894849297418403717991358550769700158004566630309091493020831746774282662029925663571226652322280828496507632915188074611493173612722669289503449716063461 518908194587651655519434462171814965660889973526587424312347683384336021470986277266659941850962124302873741336126782790761856031604594153704414738037884512 294875093083933256957042549567821705865140698993437152264175707029292545455744523287786089532412703349933914353552660195798014338597039321982884536154350101 082197231639300898508271359231964200498656654377787383358671609146336276944831860928546128575939513725709329306331655318276599268566330949055676055594849072 688030896802510973688626622876587191685186899097015628430310211145338977800395530305791697805490417154778323334554828543353276440161865221827685570877678598 882691399434163663354038671058187168417869879568183488686554729108175422364172047127409629252659829249951435571579252294340475224380432341955536760758319118 675440437558252229692774202307551734627407788147875346693750842552731450930255523011722941880905802527783354286954797104554408530375351381908781775168862859 852629553022777005642149802294155932299655379321080666355608899834689155442691528777142150843252249227268687323258096884450181036384458086157468184940401289 662741740072154217876573994464527266613512829661747820030087899472582805630205040150187443652036761970427526371851481130602945211633066767014025624519236067 090945197907201366208453111853600915885774494827260614982588968066791719824473087451103055634643901035253908546354964091796925277504827856869174755505679403 433358107447434462896760442182228491844498055306959335906417670470935375873958423075749473529896102227473365147577040361919683851029526754216443401706595553 340692890254661398332892780466490120856222399035609817874612276930338909217278973209386701850134698351918654038521606951220595043467655427716126348922681448 847092628728208145359439342909632613360828326635673832401203163117600493314712935598342023725743836728664044269849076071644703595482870176980513282599824637 431660614367439722899014444293530893906776720294553051093939575936246271628805918372911611861643447490108722714453590059371075528006963533309158320154785301 696488680095365005037953285939921104700277129332020138782391434150127205694326913499397143477714116337083426121228170847198605361294657400954799562998750325 210732283722969433983337641699789197266925891993479457015947423385788159476413437802692592918747986540468633600000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000

© 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. 621448343096404116926135860762885873697881229555061590802593938705814398694973225768244969697549872466459211331307723222934059499375500591312311462263062638 972198857427386275800177965460260837436333754748678114661327719837932994422089469537674875220051641220856036876567438952782651835281685046183446935121600884 433220214022163050816904249773507649979259766512100178996611248560259547972522330921645841827091610996335339735904266580447135285596633216949587500251175851 697844231941111552305342500087515174049892522731559680658044322980688337153362431075419045678033632266250323568148456063428038831079294520109236330698159421 798902904274908609454224627297197822264492097122905790374744194969687752392582386688192593183422678000756026821830838987626418394041102809716294930699026084 725733752847318517029394418786606553992716821718489982384192157537001932896131250631943633681189467961479262598187689423146398521528651148257886348255982470 395382715173132935917531211523989263728429916678551354185652968566963645864064720556604790002966007301382142426967310238765855036962704559279771655828589828 357410592561172112650144700823377277774844917598174793954191251363289313724549007183526098638082852166927602604403627227045631762603172038451934696146701875 464727206540986344984273051025117100752992599815746823570857621533858507616933699581629261634833759150493282850381039706789459363641681965308835226476485669 646614781066319520442956086989137341721247681805767152240136238943155825270070281358991370120989472112635242073148305334324743307565615947808119120667142981 519609820839783441980967784858413017299010788743299335581166022612386817083059136350621281238273627570084234243361061701952131660132261439415834101325863726 222928469945403036513648539096979925581960811221401304702882672547151855543911209604128169029976479084376757308969900362705933098628403761692026471018152946 843097329759255029586568005475170968393360781924162630056703809177575714787616041316549055383352489236693453545876189455827691386118038717362972636679872518 376368519668922131536605997268964078202539646617311748214195604136928181980869504372267254876390056777765211498180439161095964482394114085356187847227627642 627343249645797394810148118697714351026659183496673396444246231541097122494092437846428835231108879960019706001548143125093728735987633057648091947442506338 821364705074683543696486536107432973960606858778795554150007855499503470679858666679300017141261132537448860301160665538178348831089592428108530932048163481 576677059413993130640131229306118976006754349880285256883992916805074599515341986006873636332693186944383648622703379705641488322599558709975778092260321996 590147351458689855970701339840404287983200406733567912904918818159781327318240460293701507464828733406364188213282820725493911768387730463355967985440398989 439291792235923275566239759208040473181182287164228374391476552942916971675639509970336666401830465248548093792526454845981804324483846938943838456425543679 316625672949871108393583185494219766136437642858173572593940790958629369322340617121530688167641417295014180078668380546705799697586576953946836398864290713 159088878652137731351998456039759514931922218152243562812345211545144024605656924046665066413737242802292979020683756474406444285058247998107344175777538502 028497642681301080157996352436924757548884855717433963112917467603684606940903854173843229995685553894280655940022286993682310860470613144518505422149239110 488079385052982329672431715467830393410721605953605249597168414373607901765918360003777680269195598383268631815433786538190222440148269143332059738135330250 045419849854507327203694698743879860636650494483958559267248656219814376537450924362801727504939957738753685858820076420206582903128033727324960956893612345 921688480584019062334994973753315978588150363570311300053510676893584925535316364239603546650869644644140444794858276955470082083207439999978643897544271888 275689567525644690090942901239840347554032057171322224962317707287947059299938940143814573256255298500115550698610040764889755503322661546417288482862565635 104375231950217080173374819888870291434764137734299528646947757132921622563752323400002197812187358137835356205707411472684521750056611006212041640392752169 793138478190556265071869105971762252575337630580670462191723627827651281198965379615401263981540935120590441953580688486999068303536675563305160091763874848 411204525393659688397380810367163178220071647336136969522695826344215351372681000132568208676743629549331428943005189314015036594224480075575809157206356137 803076611828422125287478325755772539497157955777333648806734710749303097153285887442631594935681434108072726996737372915607810861443220961303370099325639544 097803843341298067729614175975798675478158856166806320810914127981578721466132581575224772852967644724936568110098087988105803706490510073232516016844006645 179461172608342171125877226266206914019349203915647354652149382674121420888077819978691602063392272949314268994109096732286342307448495124225709332974968650 114894849297418403717991358550769700158004566630309091493020831746774282662029925663571226652322280828496507632915188074611493173612722669289503449716063461 518908194587651655519434462171814965660889973526587424312347683384336021470986277266659941850962124302873741336126782790761856031604594153704414738037884512 294875093083933256957042549567821705865140698993437152264175707029292545455744523287786089532412703349933914353552660195798014338597039321982884536154350101 082197231639300898508271359231964200498656654377787383358671609146336276944831860928546128575939513725709329306331655318276599268566330949055676055594849072 688030896802510973688626622876587191685186899097015628430310211145338977800395530305791697805490417154778323334554828543353276440161865221827685570877678598 882691399434163663354038671058187168417869879568183488686554729108175422364172047127409629252659829249951435571579252294340475224380432341955536760758319118 675440437558252229692774202307551734627407788147875346693750842552731450930255523011722941880905802527783354286954797104554408530375351381908781775168862859 852629553022777005642149802294155932299655379321080666355608899834689155442691528777142150843252249227268687323258096884450181036384458086157468184940401289 662741740072154217876573994464527266613512829661747820030087899472582805630205040150187443652036761970427526371851481130602945211633066767014025624519236067 090945197907201366208453111853600915885774494827260614982588968066791719824473087451103055634643901035253908546354964091796925277504827856869174755505679403 433358107447434462896760442182228491844498055306959335906417670470935375873958423075749473529896102227473365147577040361919683851029526754216443401706595553 340692890254661398332892780466490120856222399035609817874612276930338909217278973209386701850134698351918654038521606951220595043467655427716126348922681448 847092628728208145359439342909632613360828326635673832401203163117600493314712935598342023725743836728664044269849076071644703595482870176980513282599824637 431660614367439722899014444293530893906776720294553051093939575936246271628805918372911611861643447490108722714453590059371075528006963533309158320154785301 696488680095365005037953285939921104700277129332020138782391434150127205694326913499397143477714116337083426121228170847198605361294657400954799562998750325 210732283722969433983337641699789197266925891993479457015947423385788159476413437802692592918747986540468633600000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000

© 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 days40 days43 hours11 hours Leveled within total float 30 days 10,561 hours2,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

© 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

© 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?

Download ppt "PSOP: Using Search to Find Better Resource-Leveled Schedules Matt Ginsberg."

Similar presentations