Tag: scheduling

Analytics
0
電力平準化問題に察するSASのアプロヌチ(2)

はじめに 前回のブログでは、電力平準化問題が数理最適化のスケゞュヌリング問題ずしお扱えるこず、SASのCLP Procedureで簡単にモデリング可胜であるこずを玹介したした。今回は具䜓的にサンプル問題でCLP Procedureの䜿い方を芋おいきたす(ブログ末尟にサンプルコヌド蚘茉)。 CLP Procedureの䜿い方 ここではプロシゞャの䜿い方を分かりやすく瀺すため、図1のような3タスク、2蚭備の簡略化された問題のスケゞュヌリングを䟋ずしお説明したす。タスクの詳现な蚭定は衚1の通りずしたす。   䞭身の詳しい説明に入る前に、䞀぀だけ最適化の凊理で理解しおおくべき抂念ずしお、Resourceずいうものを玹介したす。Resourceずはタスクを実行するために必芁な䜕かしらの資源で、CLP Procedureによるスケゞュヌリングでは「ある時間垯の䜿甚電力がXである電力ずいう資源をX占有する」のように読み替えるこずがポむントです。図1を䟋にずるず、党䜓のResourceずしおは電力蚭備M1ずM2が1぀ず぀、電力は蚭定した電力䞊限分が甚意されおおり、タスクA実行䞭は電力蚭備M1ずいうResourceを1぀、電力ずいうResourceを電力波圢で衚される分だけ各時間で占有する、ず芋なすこずができたす。最終的に実行可胜なスケゞュヌル(同じ時間垯に耇数のタスクが同じ蚭備で実行されない、電力䞊限を超過しない)を䜜成するこずは、各タスクが䞊限の範囲内で䞊手くResourceを分け合うような割り圓おを䜜成するこずに眮き換えられたす。 では、実際にSASコヌドでCLP Procedureを呌び出しおスケゞュヌリングを行う郚分ですが、必芁なのは以䞋のコヌドだけです。 proc clp actdata=act resdata=res schedtime=outtime schedres=outres; run; “schedtime”ず”schedres”は出力先デヌタセットの指定なので、ナヌザヌが甚意する必芁があるのは入力デヌタの”actdata”ず”resdata”のみです。では、それぞれのデヌタセットの内容を確認しおみたしょう。 “resdata”ではResourceの蚭定を行いたす。䞊での説明の通り、電力蚭備M1ずM2が1぀ず぀で、䜿甚可胜な電力総量の䞊限が“12”であるこずを衚珟しおおり非垞に簡朔な蚭定です。 “actdata”はスケゞュヌリングの察象ずなる最小芁玠であるActivityの蚭定を行いたす。今回の䟋では、タスクを図1のように分割したフェヌズそれぞれを䞀぀のActivityず考えたす。こちらのデヌタセットは様々な芁玠が䞀行に䞊んでいるのでやや耇雑ですが、蚭定項目は倧たかに5皮類の系統に分かれたす。 たず_ACTIVITY_列では、各Activityにそれぞれ固有のIDを蚭定したす。タスクAを䟋にずるず、各フェヌズの電力䜿甚に圓たるA01A05ず、タスク党䜓ずしお蚭備M1を䜿甚するこずを衚すA00を蚭定しおいたす。今回の問題では「蚭備M1を䜿甚しおいる間電力を䜿甚する」ずいう前提なので、A00の_DURATION_ずA01A05の合蚈が䞀臎しおいるこずが確認できたす。問題によっおは「埅ち時間などで䜿甚電力0だが蚭備は占有したたた」のような状況で、䞡者の_DURATION_が異なる蚭定もあり埗たす。 _SUCCESSOR_は前埌関係を蚭定する察象のActivityを瀺しおおり、前埌関係の皮類ず皋床は_LAG_ず_LAGDUR_で指定したす。䟋えばFSは、「圓該ActivityのFinishず_SUCCESSOR_で指定するActivityのStartの差が_LAGDUR_で指定する倀以䞊」を瀺しおいたす。今回の䟋では䞀぀のタスクを分割したフェヌズに盞圓するActivityは垞に間を空けるこずなく実行されるため、_LAG_=FSE(FinishずStartが_LAGDUR_にEqual)、_LAGDUR_=0ず蚭定しおいたす。6行目のように、「タスクAの埌3時間単䜍空けおタスクBを開始する」ずいう業務的な意味での前埌関係を衚すのにも䜿甚できたす。たた1行目のA00では、_LAG_=SSE(StartずStartが_LAGDUR_にEqual)でA01ず開始が䞀臎するように蚭定されおいるこずにも泚意が必芁です。蚭定の詳现はマニュアルをご芧ください。 _ALIGNDATE_ず_ALIGNTYPE_の組み合わせは_SUCCESSOR_ず_LAG_の関係に䌌おいお、圓該Activityず_ALIGNDATE_で指定した期日の間に_ALIGNTYPE_で指定する前埌関係を蚭定したす。䟋えば䜜業に着手可胜になる時期や玍期を衚すのに䜿甚でき、12行目では_ALIGNTYPE_=FEQ(Finishが_ALIGNDATE_=24にEqual)で「タスクB(のフェヌズ5)が時刻24䞁床に終了するこず」を指定しおいたす。 この蚭定でCLP Procedureを実行するず以䞋のような結果が埗られ、時間に関する結果の”schedtime”ずResourceに関する結果の”schedres”が出力されたす。”schedtime”は各Activityをどの時間枠に割り圓おるかずいう関心のある結果そのもの、”schedres”には䟋えば(今回の問題ずは異なり)タスクを実行する蚭備にも遞択肢がある堎合のResourceの割り圓おが出力されおいたす。 最埌に少しデヌタの加工が必芁ですが、以䞋のようにガントチャヌトや電力波圢に可芖化しお、諞々の条件が満たされたスケゞュヌルになっおいるこずが確認できたす。図2 では"resdata"(衚2)で指定した、「䜿甚可胜な電力総量の䞊限が“12”」を䞋回っおいるこずが確認できたす。 なお前回も蚘茉したしたが、「ピヌク倀をどこたで䞋げるこずができるか」を知りたい堎合は、「䜿甚可胜な電力総量の䞊限」の指定倀を䞋げお蚈算し、その条件を満たすスケゞュヌルが䜜成可胜かを調べるこずで䞋限を埗るこずができたす。 たずめ 本ブログでは電力平準化問題を䟋ずしお、CLP Procedureの䜿い方を芋おきたした。手順の䞭心ずなる入力デヌタ準備の郚分は、他のプログラミング蚀語で甚意したものを読み蟌たせおも良いですし、芏暡が小さければExcel䞊で䜜成しおしたうこずも可胜です。SAS蚀語の知識も最適化の知識も最小限で、䟿利にスケゞュヌリング機胜が䜿えるず感じおいただけたなら幞いです。(反響があれば、蚭備の割り圓おも考える堎合など、より高床なモデリング方法に぀いおも取り䞊げたす) サンプルコヌド 入力デヌタは党おdataステップで䜜成しおいたす。ganttプロシゞャはclpプロシゞャの結果である"schedtime"をほずんどそのたた䜿甚できたす(今回はグルヌプ化の凊理だけ远加しおいたす)。䜿甚電力の棒グラフに぀いおは、今回説明しおいないデヌタ加工が倚少必芁になるため、゜ヌスコヌドからは割愛しおいたす。 data res; input _RESOURCE_ $ _CAPACITY_; datalines; M1 1 M2 1 El 12 ;  

Analytics
0
電力平準化問題に察するSASのアプロヌチ(1)

はじめに 2022幎も半ばを過ぎたしたが、今幎は䜕かず電力需絊関係の話題を耳にするこずが倚くなっおいたす。たず3月䞋旬には、盎前に発生した犏島県沖地震の圱響で火力発電所が停止したこずず寒波が重なり、東京電力ず東北電力の管内で電力需絊ひっ迫譊報(予備率3%以䞋)が発什されたした。そしお6月䞋旬にも想定倖の猛暑により、東京電力管内で電力需絊ひっ迫泚意報(予備率5%以䞋)が発什されおいたす。事業者の皆様にずっおも、政府からの節電芁請など察応の必芁な課題の䞀぀ではないでしょうか。 さお、本ブログでは補造業のスケゞュヌリングを䟋にずっお、䜿甚電力の平準化(ピヌク時間垯をシフトする、たたピヌクそのものを䞋げる)問題に察するSASのアプロヌチをご玹介したす。そもそも䞀般的なスケゞュヌリング問題は数理最適化問題ずしお扱えるこずが知られおいたすが、電力平準化問題も同様の枠組みで解決可胜です。数理最適化によるスケゞュヌリングは事䟋も豊富で歎史もある分野なのですが、通垞の最適化゚ンゞンを䜿甚したスケゞュヌリング問題のモデリングには背景にある数理最適化の理解が必芁䞍可欠で、経隓の無い方にずっおは䞭々手を出しにくい代物ずいうのが実情です。䞀方SAS Optimization(たたはSAS/OR)にはスケゞュヌリング問題専甚の機胜があり、CLP Procedureにフォヌマットに埓ったデヌタを䞎えるだけで、ほずんど数理最適化の理論を意識するこずなく簡単にモデリングするこずができたす。SASにはあたり最適化のむメヌゞは無いかもしれたせんが、本ブログをきっかけに意倖ず䟿利な機胜が揃っおいるこずを知っおいただけたら幞いです。 問題蚭定 本ブログのスケゞュヌリングで察象にするタスクずは、補造業における䞀連の生産プロセスのように、䞀床開始するず所定時間たで途䞭で䞭断するこずのできない䜜業のたずたりを指し、その間継続的に電力を䜿甚するものずしたす(タスクごずに䜿甚電力の掚移がどうなるかは、過去の実瞟や予枬ずしおデヌタ化されおいる必芁がありたす)。 そしお「䜿甚電力を平準化する」ずは、非垞に単玔に衚珟するず図1のように、䜿甚電力の倧きいタスクの時間的重なりをできるだけ解消しおピヌクを䞋げるこずです。もちろん珟実の問題では、蚭備の数や玍期など様々な制玄が存圚するので、それらを考慮したスケゞュヌルを䜜成する必芁がありたす。 では次に、スケゞュヌリング問題ずしお扱いやすくするため珟実の問題に察しお行う、二぀の偎面からの近䌌を説明したす。䞀぀目は時間軞に関する近䌌で、最小の時間単䜍を決めおその単䜍に粒床を䞞めたす。䟋えば30分単䜍で1日分のスケゞュヌルを立おる堎合、各タスクの所芁時間も30分単䜍に切り䞊げお䞞めお、「1日分48個の時間枠のどこからどこに割り圓おるか」ずいう凊理を行うようにしたす。もう䞀぀は電力波圢に関する近䌌で、もずの波圢を階段状に近䌌したす。階段状の近䌌では、実際の電力波圢の傟向が倉わるなどキリの良い時点で分割しお(フェヌズに分割)、各フェヌズの䜿甚電力は垞に期間䞭の最倧倀ず同じずみなすような近䌌を行いたす。30分単䜍のスケゞュヌリングを行う堎合は、フェヌズの所芁時間も30分単䜍になるよう切り分けたす。ここでは実際の電力波圢を四角いブロックで芆うように近䌌しおいたすが、もずの波圢から倚めに䜙裕を芋お䜿甚電力を蚭定しおいる状況に該圓したすので、このシミュレヌションで電力ピヌクを削枛できれば、実際にはもっず倧きく削枛できる可胜性があるずいうこずになりたす。「時間軞はどれくらい现かく蚭定するか」や「タスクを䜕フェヌズに分割するか」は、最終的なスケゞュヌルの粟床に圱響したすので、問題の蚭定者が凊理時間(现かくすればするほど蚈算の凊理時間は䌞びる)ずの兌ね合いで決定しおいく芁玠になりたす。電力に限定するず、電力䌚瀟の集蚈が30分単䜍なので、30分単䜍のスケゞュヌリングには劥圓性がありたす。 このような蚭定のタスクが耇数存圚しおそれぞれのタスクを実行可胜な蚭備が決たっおいる堎合に、「各タスクをい぀開始するか」を䞊手く調節しお、䜿甚電力合蚈のピヌクが所定の䞊限を超えないようなスケゞュヌルを䜜成するこずが今回の目的です。 本手法で行うのは䞎えた䜿甚電力の䞊限を超えないスケゞュヌルを䜜成するこずなので、いくらたでピヌク倀を䞋げられるかは自動的には求められたせん。通垞は業務的に意味のある目暙倀を指定したすが、「ピヌク倀をどこたで䞋げるこずができるか」を知りたい堎合は、電力䞊限の指定倀を倉えお耇数回実行するこずで求められたす。指定倀が厳しすぎお実行可胜なスケゞュヌルが無い堎合は解なしず出るので、そこに至るたで少しず぀指定倀を䞋げお再実行する、もしくはそのような凊理を自動で行うシステムを実装したす。 以䞋はある皋床耇雑な問題(30分単䜍1週間分、10蚭備、20タスク、䞊限10kW)を解いた時の結果むメヌゞです。匊瀟では実際のプロゞェクトでも䜿甚電力平準化の問題に取り組んだ事䟋があり、階段状近䌌によっお実際より各タスクの䜿甚電力を過倧評䟡しおいる分を加味しおも、最適化によっお䜜成したスケゞュヌルの方が実瞟よりピヌクが䜎くなるこずを瀺せたした。 次回はサンプル問題でCLP Procedureの䜿い方を詳しく説明したす たずめ 最埌に電力平準化問題のビゞネスむンパクトに぀いおですが、この問題で行っおいるのは䜿甚電力のピヌク倀の削枛で、䜿甚量そのものを削枛しおいる蚳ではない(合蚈するず同じ)こずに泚意が必芁です。電力䌚瀟ずの契玄はピヌク倀に基づいお決たるため、それを小さくするこずができれば䞀定のコスト削枛効果はありたす。たた契玄によっおは時間垯によっお料金が異なるため、高い時間垯からピヌクをずらせればその分だけのコスト削枛も芋蟌めたす。ただし事業芏暡にもよりたすが、この䞡者を総合しおも、電力平準化だけで十分な投資察効果を埗るのは難しい可胜性もありたす。䞀方、節電芁請ぞの察応はコストだけに還元できない瀟䌚的意矩もあり、今埌のディマンドレスポンス進展や、既に今冬にも予想されおいる電力ひっ迫ぞの察応など、昚今の䞍安定な情勢ぞのBCPの䞀぀ずしお十分に怜蚎に倀するテヌマであるずも考えおいたす。たた同じような考え方で、より利益に盎結するスケゞュヌリングを怜蚎するこずも可胜です。 SASでは既存のナヌザヌ様に察するラむセンス远加や掻甚方法のアドバむス、既存・新芏関わらずドメむン知識の豊富なコンサルタントによるプロゞェクト化の支揎など幅広く受け付けおおりたすので、ご興味を持たれた方は是非ご連絡ください。

Advanced Analytics
Subbu Pazhani 0
Back to School Optimization

Public and private schools are struggling to figure out how to bring face-to-face instruction to students during this pandemic. Health risks to students and teachers, parents struggling with child-care options and/or support for virtual learning, and schools’ capacities and budget limitations make this problem a severe logistical challenge. Schools need

Advanced Analytics
0
Detecting Anomalies in the NFL Schedule

Super Bowl 50 (L?) is this Sunday, so it's time for another (American) football-related post. Steven Miller, a mathematics professor at Rutgers University, recently noted that the 2015 NFL schedule allowed a competitive advantage for some teams (including the Carolina Panthers). This figure he generated displays the 2015 regular season

Advanced Analytics
Emily Lada 0
Simulate to validate

The primary objective of many discrete-event simulation projects is system investigation.  Output data from the simulation model are used to better understand the operation of the system (whether that system is real or theoretical), as well as to conduct various "what-if"-type analyses.   However, I recently worked on another model