510 likes | 694 Views
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. Why Scheduling is Like Tetris. Scheduling and Tetris.
E N D
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
Why Scheduling is Like Tetris
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
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.”
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
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.
How Scheduling Algorithms Work • Select the highest-priority unscheduled task whose predecessors have all been scheduled. • Schedule it at its current early start. • Repeat.
How Scheduling Algorithms Work • Select the highest-priority unscheduled task whose predecessors have all been scheduled. • Schedule it at its current early start. • Repeat.
Order Matters • Select the highest-priority unscheduled task whose predecessors have all been scheduled. • Schedule it at its current early start. • Repeat.
Order Matters • The purple resource has capacity two. • The bottom task should not be scheduled last.
Order Matters • The purple resource has capacity two. • The bottom task should not be scheduled last.
No Obvious Order Works longest, least float
No Obvious Order Works longest, least float
The Example in Primavera • Use a silly order • Prioritize by hand longest, least float
Least Float First least float
Most Float First? least float
The Order That Works • Prioritize by hand? least float
621448343096404116926135860762885873697881229555061590802593938705814398694973225768244969697549872466459211331307723222934059499375500591312311462263062638972198857427386275800177965460260837436333754748678114661327719837932994422089469537674875220051641220856036876567438952782651835281685046183446935121600884433220214022163050816904249773507649979259766512100178996611248560259547972522330921645841827091610996335339735904266580447135285596633216949587500251175851697844231941111552305342500087515174049892522731559680658044322980688337153362431075419045678033632266250323568148456063428038831079294520109236330698159421798902904274908609454224627297197822264492097122905790374744194969687752392582386688192593183422678000756026821830838987626418394041102809716294930699026084725733752847318517029394418786606553992716821718489982384192157537001932896131250631943633681189467961479262598187689423146398521528651148257886348255982470395382715173132935917531211523989263728429916678551354185652968566963645864064720556604790002966007301382142426967310238765855036962704559279771655828589828357410592561172112650144700823377277774844917598174793954191251363289313724549007183526098638082852166927602604403627227045631762603172038451934696146701875464727206540986344984273051025117100752992599815746823570857621533858507616933699581629261634833759150493282850381039706789459363641681965308835226476485669646614781066319520442956086989137341721247681805767152240136238943155825270070281358991370120989472112635242073148305334324743307565615947808119120667142981519609820839783441980967784858413017299010788743299335581166022612386817083059136350621281238273627570084234243361061701952131660132261439415834101325863726222928469945403036513648539096979925581960811221401304702882672547151855543911209604128169029976479084376757308969900362705933098628403761692026471018152946843097329759255029586568005475170968393360781924162630056703809177575714787616041316549055383352489236693453545876189455827691386118038717362972636679872518376368519668922131536605997268964078202539646617311748214195604136928181980869504372267254876390056777765211498180439161095964482394114085356187847227627642627343249645797394810148118697714351026659183496673396444246231541097122494092437846428835231108879960019706001548143125093728735987633057648091947442506338821364705074683543696486536107432973960606858778795554150007855499503470679858666679300017141261132537448860301160665538178348831089592428108530932048163481576677059413993130640131229306118976006754349880285256883992916805074599515341986006873636332693186944383648622703379705641488322599558709975778092260321996590147351458689855970701339840404287983200406733567912904918818159781327318240460293701507464828733406364188213282820725493911768387730463355967985440398989439291792235923275566239759208040473181182287164228374391476552942916971675639509970336666401830465248548093792526454845981804324483846938943838456425543679316625672949871108393583185494219766136437642858173572593940790958629369322340617121530688167641417295014180078668380546705799697586576953946836398864290713159088878652137731351998456039759514931922218152243562812345211545144024605656924046665066413737242802292979020683756474406444285058247998107344175777538502028497642681301080157996352436924757548884855717433963112917467603684606940903854173843229995685553894280655940022286993682310860470613144518505422149239110488079385052982329672431715467830393410721605953605249597168414373607901765918360003777680269195598383268631815433786538190222440148269143332059738135330250045419849854507327203694698743879860636650494483958559267248656219814376537450924362801727504939957738753685858820076420206582903128033727324960956893612345921688480584019062334994973753315978588150363570311300053510676893584925535316364239603546650869644644140444794858276955470082083207439999978643897544271888275689567525644690090942901239840347554032057171322224962317707287947059299938940143814573256255298500115550698610040764889755503322661546417288482862565635104375231950217080173374819888870291434764137734299528646947757132921622563752323400002197812187358137835356205707411472684521750056611006212041640392752169793138478190556265071869105971762252575337630580670462191723627827651281198965379615401263981540935120590441953580688486999068303536675563305160091763874848411204525393659688397380810367163178220071647336136969522695826344215351372681000132568208676743629549331428943005189314015036594224480075575809157206356137803076611828422125287478325755772539497157955777333648806734710749303097153285887442631594935681434108072726996737372915607810861443220961303370099325639544097803843341298067729614175975798675478158856166806320810914127981578721466132581575224772852967644724936568110098087988105803706490510073232516016844006645179461172608342171125877226266206914019349203915647354652149382674121420888077819978691602063392272949314268994109096732286342307448495124225709332974968650114894849297418403717991358550769700158004566630309091493020831746774282662029925663571226652322280828496507632915188074611493173612722669289503449716063461518908194587651655519434462171814965660889973526587424312347683384336021470986277266659941850962124302873741336126782790761856031604594153704414738037884512294875093083933256957042549567821705865140698993437152264175707029292545455744523287786089532412703349933914353552660195798014338597039321982884536154350101082197231639300898508271359231964200498656654377787383358671609146336276944831860928546128575939513725709329306331655318276599268566330949055676055594849072688030896802510973688626622876587191685186899097015628430310211145338977800395530305791697805490417154778323334554828543353276440161865221827685570877678598882691399434163663354038671058187168417869879568183488686554729108175422364172047127409629252659829249951435571579252294340475224380432341955536760758319118675440437558252229692774202307551734627407788147875346693750842552731450930255523011722941880905802527783354286954797104554408530375351381908781775168862859852629553022777005642149802294155932299655379321080666355608899834689155442691528777142150843252249227268687323258096884450181036384458086157468184940401289662741740072154217876573994464527266613512829661747820030087899472582805630205040150187443652036761970427526371851481130602945211633066767014025624519236067090945197907201366208453111853600915885774494827260614982588968066791719824473087451103055634643901035253908546354964091796925277504827856869174755505679403433358107447434462896760442182228491844498055306959335906417670470935375873958423075749473529896102227473365147577040361919683851029526754216443401706595553340692890254661398332892780466490120856222399035609817874612276930338909217278973209386701850134698351918654038521606951220595043467655427716126348922681448847092628728208145359439342909632613360828326635673832401203163117600493314712935598342023725743836728664044269849076071644703595482870176980513282599824637431660614367439722899014444293530893906776720294553051093939575936246271628805918372911611861643447490108722714453590059371075528006963533309158320154785301696488680095365005037953285939921104700277129332020138782391434150127205694326913499397143477714116337083426121228170847198605361294657400954799562998750325210732283722969433983337641699789197266925891993479457015947423385788159476413437802692592918747986540468633600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000621448343096404116926135860762885873697881229555061590802593938705814398694973225768244969697549872466459211331307723222934059499375500591312311462263062638972198857427386275800177965460260837436333754748678114661327719837932994422089469537674875220051641220856036876567438952782651835281685046183446935121600884433220214022163050816904249773507649979259766512100178996611248560259547972522330921645841827091610996335339735904266580447135285596633216949587500251175851697844231941111552305342500087515174049892522731559680658044322980688337153362431075419045678033632266250323568148456063428038831079294520109236330698159421798902904274908609454224627297197822264492097122905790374744194969687752392582386688192593183422678000756026821830838987626418394041102809716294930699026084725733752847318517029394418786606553992716821718489982384192157537001932896131250631943633681189467961479262598187689423146398521528651148257886348255982470395382715173132935917531211523989263728429916678551354185652968566963645864064720556604790002966007301382142426967310238765855036962704559279771655828589828357410592561172112650144700823377277774844917598174793954191251363289313724549007183526098638082852166927602604403627227045631762603172038451934696146701875464727206540986344984273051025117100752992599815746823570857621533858507616933699581629261634833759150493282850381039706789459363641681965308835226476485669646614781066319520442956086989137341721247681805767152240136238943155825270070281358991370120989472112635242073148305334324743307565615947808119120667142981519609820839783441980967784858413017299010788743299335581166022612386817083059136350621281238273627570084234243361061701952131660132261439415834101325863726222928469945403036513648539096979925581960811221401304702882672547151855543911209604128169029976479084376757308969900362705933098628403761692026471018152946843097329759255029586568005475170968393360781924162630056703809177575714787616041316549055383352489236693453545876189455827691386118038717362972636679872518376368519668922131536605997268964078202539646617311748214195604136928181980869504372267254876390056777765211498180439161095964482394114085356187847227627642627343249645797394810148118697714351026659183496673396444246231541097122494092437846428835231108879960019706001548143125093728735987633057648091947442506338821364705074683543696486536107432973960606858778795554150007855499503470679858666679300017141261132537448860301160665538178348831089592428108530932048163481576677059413993130640131229306118976006754349880285256883992916805074599515341986006873636332693186944383648622703379705641488322599558709975778092260321996590147351458689855970701339840404287983200406733567912904918818159781327318240460293701507464828733406364188213282820725493911768387730463355967985440398989439291792235923275566239759208040473181182287164228374391476552942916971675639509970336666401830465248548093792526454845981804324483846938943838456425543679316625672949871108393583185494219766136437642858173572593940790958629369322340617121530688167641417295014180078668380546705799697586576953946836398864290713159088878652137731351998456039759514931922218152243562812345211545144024605656924046665066413737242802292979020683756474406444285058247998107344175777538502028497642681301080157996352436924757548884855717433963112917467603684606940903854173843229995685553894280655940022286993682310860470613144518505422149239110488079385052982329672431715467830393410721605953605249597168414373607901765918360003777680269195598383268631815433786538190222440148269143332059738135330250045419849854507327203694698743879860636650494483958559267248656219814376537450924362801727504939957738753685858820076420206582903128033727324960956893612345921688480584019062334994973753315978588150363570311300053510676893584925535316364239603546650869644644140444794858276955470082083207439999978643897544271888275689567525644690090942901239840347554032057171322224962317707287947059299938940143814573256255298500115550698610040764889755503322661546417288482862565635104375231950217080173374819888870291434764137734299528646947757132921622563752323400002197812187358137835356205707411472684521750056611006212041640392752169793138478190556265071869105971762252575337630580670462191723627827651281198965379615401263981540935120590441953580688486999068303536675563305160091763874848411204525393659688397380810367163178220071647336136969522695826344215351372681000132568208676743629549331428943005189314015036594224480075575809157206356137803076611828422125287478325755772539497157955777333648806734710749303097153285887442631594935681434108072726996737372915607810861443220961303370099325639544097803843341298067729614175975798675478158856166806320810914127981578721466132581575224772852967644724936568110098087988105803706490510073232516016844006645179461172608342171125877226266206914019349203915647354652149382674121420888077819978691602063392272949314268994109096732286342307448495124225709332974968650114894849297418403717991358550769700158004566630309091493020831746774282662029925663571226652322280828496507632915188074611493173612722669289503449716063461518908194587651655519434462171814965660889973526587424312347683384336021470986277266659941850962124302873741336126782790761856031604594153704414738037884512294875093083933256957042549567821705865140698993437152264175707029292545455744523287786089532412703349933914353552660195798014338597039321982884536154350101082197231639300898508271359231964200498656654377787383358671609146336276944831860928546128575939513725709329306331655318276599268566330949055676055594849072688030896802510973688626622876587191685186899097015628430310211145338977800395530305791697805490417154778323334554828543353276440161865221827685570877678598882691399434163663354038671058187168417869879568183488686554729108175422364172047127409629252659829249951435571579252294340475224380432341955536760758319118675440437558252229692774202307551734627407788147875346693750842552731450930255523011722941880905802527783354286954797104554408530375351381908781775168862859852629553022777005642149802294155932299655379321080666355608899834689155442691528777142150843252249227268687323258096884450181036384458086157468184940401289662741740072154217876573994464527266613512829661747820030087899472582805630205040150187443652036761970427526371851481130602945211633066767014025624519236067090945197907201366208453111853600915885774494827260614982588968066791719824473087451103055634643901035253908546354964091796925277504827856869174755505679403433358107447434462896760442182228491844498055306959335906417670470935375873958423075749473529896102227473365147577040361919683851029526754216443401706595553340692890254661398332892780466490120856222399035609817874612276930338909217278973209386701850134698351918654038521606951220595043467655427716126348922681448847092628728208145359439342909632613360828326635673832401203163117600493314712935598342023725743836728664044269849076071644703595482870176980513282599824637431660614367439722899014444293530893906776720294553051093939575936246271628805918372911611861643447490108722714453590059371075528006963533309158320154785301696488680095365005037953285939921104700277129332020138782391434150127205694326913499397143477714116337083426121228170847198605361294657400954799562998750325210732283722969433983337641699789197266925891993479457015947423385788159476413437802692592918747986540468633600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Prioritization by Hand • Unlikely to work in practice • What can you do? • Being good at Tetris will • not save you
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
Schedule Packing WARNING: Contents may have settled during shipping
Schedule Packing • Slide tasks as far to right as possible • Reschedule using start time as priority 3 4 1 2
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
Squeaky Wheel Optimization • Too many priority orders to figure out the best one • Use search
Primavera • schedule packing • squeaky wheel P=NP? think search
Solving Problems Using Search • The key is to control the search
621448343096404116926135860762885873697881229555061590802593938705814398694973225768244969697549872466459211331307723222934059499375500591312311462263062638972198857427386275800177965460260837436333754748678114661327719837932994422089469537674875220051641220856036876567438952782651835281685046183446935121600884433220214022163050816904249773507649979259766512100178996611248560259547972522330921645841827091610996335339735904266580447135285596633216949587500251175851697844231941111552305342500087515174049892522731559680658044322980688337153362431075419045678033632266250323568148456063428038831079294520109236330698159421798902904274908609454224627297197822264492097122905790374744194969687752392582386688192593183422678000756026821830838987626418394041102809716294930699026084725733752847318517029394418786606553992716821718489982384192157537001932896131250631943633681189467961479262598187689423146398521528651148257886348255982470395382715173132935917531211523989263728429916678551354185652968566963645864064720556604790002966007301382142426967310238765855036962704559279771655828589828357410592561172112650144700823377277774844917598174793954191251363289313724549007183526098638082852166927602604403627227045631762603172038451934696146701875464727206540986344984273051025117100752992599815746823570857621533858507616933699581629261634833759150493282850381039706789459363641681965308835226476485669646614781066319520442956086989137341721247681805767152240136238943155825270070281358991370120989472112635242073148305334324743307565615947808119120667142981519609820839783441980967784858413017299010788743299335581166022612386817083059136350621281238273627570084234243361061701952131660132261439415834101325863726222928469945403036513648539096979925581960811221401304702882672547151855543911209604128169029976479084376757308969900362705933098628403761692026471018152946843097329759255029586568005475170968393360781924162630056703809177575714787616041316549055383352489236693453545876189455827691386118038717362972636679872518376368519668922131536605997268964078202539646617311748214195604136928181980869504372267254876390056777765211498180439161095964482394114085356187847227627642627343249645797394810148118697714351026659183496673396444246231541097122494092437846428835231108879960019706001548143125093728735987633057648091947442506338821364705074683543696486536107432973960606858778795554150007855499503470679858666679300017141261132537448860301160665538178348831089592428108530932048163481576677059413993130640131229306118976006754349880285256883992916805074599515341986006873636332693186944383648622703379705641488322599558709975778092260321996590147351458689855970701339840404287983200406733567912904918818159781327318240460293701507464828733406364188213282820725493911768387730463355967985440398989439291792235923275566239759208040473181182287164228374391476552942916971675639509970336666401830465248548093792526454845981804324483846938943838456425543679316625672949871108393583185494219766136437642858173572593940790958629369322340617121530688167641417295014180078668380546705799697586576953946836398864290713159088878652137731351998456039759514931922218152243562812345211545144024605656924046665066413737242802292979020683756474406444285058247998107344175777538502028497642681301080157996352436924757548884855717433963112917467603684606940903854173843229995685553894280655940022286993682310860470613144518505422149239110488079385052982329672431715467830393410721605953605249597168414373607901765918360003777680269195598383268631815433786538190222440148269143332059738135330250045419849854507327203694698743879860636650494483958559267248656219814376537450924362801727504939957738753685858820076420206582903128033727324960956893612345921688480584019062334994973753315978588150363570311300053510676893584925535316364239603546650869644644140444794858276955470082083207439999978643897544271888275689567525644690090942901239840347554032057171322224962317707287947059299938940143814573256255298500115550698610040764889755503322661546417288482862565635104375231950217080173374819888870291434764137734299528646947757132921622563752323400002197812187358137835356205707411472684521750056611006212041640392752169793138478190556265071869105971762252575337630580670462191723627827651281198965379615401263981540935120590441953580688486999068303536675563305160091763874848411204525393659688397380810367163178220071647336136969522695826344215351372681000132568208676743629549331428943005189314015036594224480075575809157206356137803076611828422125287478325755772539497157955777333648806734710749303097153285887442631594935681434108072726996737372915607810861443220961303370099325639544097803843341298067729614175975798675478158856166806320810914127981578721466132581575224772852967644724936568110098087988105803706490510073232516016844006645179461172608342171125877226266206914019349203915647354652149382674121420888077819978691602063392272949314268994109096732286342307448495124225709332974968650114894849297418403717991358550769700158004566630309091493020831746774282662029925663571226652322280828496507632915188074611493173612722669289503449716063461518908194587651655519434462171814965660889973526587424312347683384336021470986277266659941850962124302873741336126782790761856031604594153704414738037884512294875093083933256957042549567821705865140698993437152264175707029292545455744523287786089532412703349933914353552660195798014338597039321982884536154350101082197231639300898508271359231964200498656654377787383358671609146336276944831860928546128575939513725709329306331655318276599268566330949055676055594849072688030896802510973688626622876587191685186899097015628430310211145338977800395530305791697805490417154778323334554828543353276440161865221827685570877678598882691399434163663354038671058187168417869879568183488686554729108175422364172047127409629252659829249951435571579252294340475224380432341955536760758319118675440437558252229692774202307551734627407788147875346693750842552731450930255523011722941880905802527783354286954797104554408530375351381908781775168862859852629553022777005642149802294155932299655379321080666355608899834689155442691528777142150843252249227268687323258096884450181036384458086157468184940401289662741740072154217876573994464527266613512829661747820030087899472582805630205040150187443652036761970427526371851481130602945211633066767014025624519236067090945197907201366208453111853600915885774494827260614982588968066791719824473087451103055634643901035253908546354964091796925277504827856869174755505679403433358107447434462896760442182228491844498055306959335906417670470935375873958423075749473529896102227473365147577040361919683851029526754216443401706595553340692890254661398332892780466490120856222399035609817874612276930338909217278973209386701850134698351918654038521606951220595043467655427716126348922681448847092628728208145359439342909632613360828326635673832401203163117600493314712935598342023725743836728664044269849076071644703595482870176980513282599824637431660614367439722899014444293530893906776720294553051093939575936246271628805918372911611861643447490108722714453590059371075528006963533309158320154785301696488680095365005037953285939921104700277129332020138782391434150127205694326913499397143477714116337083426121228170847198605361294657400954799562998750325210732283722969433983337641699789197266925891993479457015947423385788159476413437802692592918747986540468633600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000621448343096404116926135860762885873697881229555061590802593938705814398694973225768244969697549872466459211331307723222934059499375500591312311462263062638972198857427386275800177965460260837436333754748678114661327719837932994422089469537674875220051641220856036876567438952782651835281685046183446935121600884433220214022163050816904249773507649979259766512100178996611248560259547972522330921645841827091610996335339735904266580447135285596633216949587500251175851697844231941111552305342500087515174049892522731559680658044322980688337153362431075419045678033632266250323568148456063428038831079294520109236330698159421798902904274908609454224627297197822264492097122905790374744194969687752392582386688192593183422678000756026821830838987626418394041102809716294930699026084725733752847318517029394418786606553992716821718489982384192157537001932896131250631943633681189467961479262598187689423146398521528651148257886348255982470395382715173132935917531211523989263728429916678551354185652968566963645864064720556604790002966007301382142426967310238765855036962704559279771655828589828357410592561172112650144700823377277774844917598174793954191251363289313724549007183526098638082852166927602604403627227045631762603172038451934696146701875464727206540986344984273051025117100752992599815746823570857621533858507616933699581629261634833759150493282850381039706789459363641681965308835226476485669646614781066319520442956086989137341721247681805767152240136238943155825270070281358991370120989472112635242073148305334324743307565615947808119120667142981519609820839783441980967784858413017299010788743299335581166022612386817083059136350621281238273627570084234243361061701952131660132261439415834101325863726222928469945403036513648539096979925581960811221401304702882672547151855543911209604128169029976479084376757308969900362705933098628403761692026471018152946843097329759255029586568005475170968393360781924162630056703809177575714787616041316549055383352489236693453545876189455827691386118038717362972636679872518376368519668922131536605997268964078202539646617311748214195604136928181980869504372267254876390056777765211498180439161095964482394114085356187847227627642627343249645797394810148118697714351026659183496673396444246231541097122494092437846428835231108879960019706001548143125093728735987633057648091947442506338821364705074683543696486536107432973960606858778795554150007855499503470679858666679300017141261132537448860301160665538178348831089592428108530932048163481576677059413993130640131229306118976006754349880285256883992916805074599515341986006873636332693186944383648622703379705641488322599558709975778092260321996590147351458689855970701339840404287983200406733567912904918818159781327318240460293701507464828733406364188213282820725493911768387730463355967985440398989439291792235923275566239759208040473181182287164228374391476552942916971675639509970336666401830465248548093792526454845981804324483846938943838456425543679316625672949871108393583185494219766136437642858173572593940790958629369322340617121530688167641417295014180078668380546705799697586576953946836398864290713159088878652137731351998456039759514931922218152243562812345211545144024605656924046665066413737242802292979020683756474406444285058247998107344175777538502028497642681301080157996352436924757548884855717433963112917467603684606940903854173843229995685553894280655940022286993682310860470613144518505422149239110488079385052982329672431715467830393410721605953605249597168414373607901765918360003777680269195598383268631815433786538190222440148269143332059738135330250045419849854507327203694698743879860636650494483958559267248656219814376537450924362801727504939957738753685858820076420206582903128033727324960956893612345921688480584019062334994973753315978588150363570311300053510676893584925535316364239603546650869644644140444794858276955470082083207439999978643897544271888275689567525644690090942901239840347554032057171322224962317707287947059299938940143814573256255298500115550698610040764889755503322661546417288482862565635104375231950217080173374819888870291434764137734299528646947757132921622563752323400002197812187358137835356205707411472684521750056611006212041640392752169793138478190556265071869105971762252575337630580670462191723627827651281198965379615401263981540935120590441953580688486999068303536675563305160091763874848411204525393659688397380810367163178220071647336136969522695826344215351372681000132568208676743629549331428943005189314015036594224480075575809157206356137803076611828422125287478325755772539497157955777333648806734710749303097153285887442631594935681434108072726996737372915607810861443220961303370099325639544097803843341298067729614175975798675478158856166806320810914127981578721466132581575224772852967644724936568110098087988105803706490510073232516016844006645179461172608342171125877226266206914019349203915647354652149382674121420888077819978691602063392272949314268994109096732286342307448495124225709332974968650114894849297418403717991358550769700158004566630309091493020831746774282662029925663571226652322280828496507632915188074611493173612722669289503449716063461518908194587651655519434462171814965660889973526587424312347683384336021470986277266659941850962124302873741336126782790761856031604594153704414738037884512294875093083933256957042549567821705865140698993437152264175707029292545455744523287786089532412703349933914353552660195798014338597039321982884536154350101082197231639300898508271359231964200498656654377787383358671609146336276944831860928546128575939513725709329306331655318276599268566330949055676055594849072688030896802510973688626622876587191685186899097015628430310211145338977800395530305791697805490417154778323334554828543353276440161865221827685570877678598882691399434163663354038671058187168417869879568183488686554729108175422364172047127409629252659829249951435571579252294340475224380432341955536760758319118675440437558252229692774202307551734627407788147875346693750842552731450930255523011722941880905802527783354286954797104554408530375351381908781775168862859852629553022777005642149802294155932299655379321080666355608899834689155442691528777142150843252249227268687323258096884450181036384458086157468184940401289662741740072154217876573994464527266613512829661747820030087899472582805630205040150187443652036761970427526371851481130602945211633066767014025624519236067090945197907201366208453111853600915885774494827260614982588968066791719824473087451103055634643901035253908546354964091796925277504827856869174755505679403433358107447434462896760442182228491844498055306959335906417670470935375873958423075749473529896102227473365147577040361919683851029526754216443401706595553340692890254661398332892780466490120856222399035609817874612276930338909217278973209386701850134698351918654038521606951220595043467655427716126348922681448847092628728208145359439342909632613360828326635673832401203163117600493314712935598342023725743836728664044269849076071644703595482870176980513282599824637431660614367439722899014444293530893906776720294553051093939575936246271628805918372911611861643447490108722714453590059371075528006963533309158320154785301696488680095365005037953285939921104700277129332020138782391434150127205694326913499397143477714116337083426121228170847198605361294657400954799562998750325210732283722969433983337641699789197266925891993479457015947423385788159476413437802692592918747986540468633600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
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
Squeaky Wheel Optimization • C-A-P loop • Construct • Analyze • Prioritize
Squeaky Wheel Optimization • C-A-P loop • Construct a schedule from current priorities • Analyze • Prioritize
Squeaky Wheel Optimization • C-A-P loop • Construct a schedule from current priorities • Analyze to evaluate performance by task • Prioritize
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!
Squeaky Wheel Where no Order Worked 3 1 2 1 3 2
Squeaky Wheel Where no Order Worked 3 • Search improves your ability to find good solutions, even if you guess wrong initially 1 2
Enough Already with the Toy Problems! • Turnaround data from existing Primavera customer • 12,248 tasks, analyzed in 4.5 minutes
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 Pros and Cons
One Last Example sand and prepare -1 mix and paint
One Last Example sand and prepare • No predecessor-based algorithms works! • Squeaky wheel need not follow “network” order • Schedule packing does -1 mix and paint
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 Pros and Cons Better coverage