SATソルバが鍵となります。
長大のインスタンスにおいて、いきなり年間[1840,1872]時間では、探索範囲が膨大過ぎます。探索範囲をなるべく限定することを考えます。
Power On時、Target Rangeに至る経路は膨大です。そのままでSAT SOLVEすると爆発して求めることができません。
そこで、まずは、LpSolverで、システム全体のLowerBoundまで求めます。LB≒UBの性質を利用してグラフをReductionします。Reductionしたグラフ上で、Day毎に[最小:最大]を算出して、上図のように探索範囲を限定してやろう、という算段です。最適化という作業は、選択と評価探索の言い換えです。OR世界では、Branch&Boundという最強の手法が存在しますが、残念ながら、今回の規模は大きすぎてそれでも時間がかかりすぎるために、この手法に至っています。
具体的には、次のアルゴリズムで、Day毎の[最小:最大]を確定させます。