Skip to content

補遺: 制約つきQUBOの分解法 ​

実問題のQUBOで難しいのは、目的関数そのものよりも制約です。車は一つの経路だけを選びます。AGVは同じ通路に同時に入らないです。商品は一つの棚に一つだけ置きます。工場の工程順序は守る。資源容量は超えないです。避難経路では混雑を避けます。こうした条件をすべて二乗ペナルティで入れると、式はすぐに密になります。

制約つきQUBOの分解法は、量子アニーラを弱く見積もるための逃げ道ではありません。現場の問題を、量子アニーラが得意な二値サンプリングの部分と、古典計算が得意な連続最適化、双対更新、実行可能性検査、局所修復の部分へ分けるための設計論です。

1. 制約の二乗が作る全結合 ​

もっとも基本的な制約は、一つだけ選ぶ制約です。対象 i の候補集合を Mi とし、候補 μ を選ぶ変数を xμi とすると、

∑μ∈Mixμi=1

です。二乗ペナルティにすると

(∑μ∈Mixμi−1)2=2∑μ<νxμixνi−∑μxμi+1

となります。0-1変数では x2=x を使いました。ここで候補どうしの組 μ<ν がすべて結合します。候補数が多いだけで、制約項は密なQUBOを作ります。

K 個だけ選ぶ制約なら

(∑ixi−K)2=2∑i<jxixj+(1−2K)∑ixi+K2

です。この式は、同じ制約に属するすべての変数どうしを結びます。D-Wave型の量子アニーラでは物理グラフが疎なので、論理的な全結合を載せるには埋め込みが必要になります。変数一つを複数量子ビットの鎖で表すため、論理変数数よりはるかに多くの物理量子ビットを使います。

したがって、制約処理の基本方針は二つです。小さい制約は二乗ペナルティで入れます。大きい制約、広い制約、何度も出る制約は、補助場や分解で扱います。

2. 半分ずらし: 0個と1個を同じにする ​

交通、AGV、避難、信号制御では、「同じ場所・時刻に二つ以上入ってはいけない」という制約がよく出ます。これは「ちょうど一つ入れ」ではありません。0個でもよいし、1個でもよいです。悪いのは2個以上です。

場所・時刻の使用数を

n=∑iyi

とします。n=0 と n=1 を同じエネルギーにし、n=2 から罰したいなら、

(n−12)2

を使います。0-1変数で展開すると

(∑iyi−12)2=2∑i<jyiyj+14

です。一次項が消えることが重要です。n=0 と n=1 に差をつけず、二つ以上が同時に選ばれる組だけを罰します。

この半分ずらしは、道路混雑の見直し、AGVの衝突回避、避難経路の容量、ジョブショップの含意制約などで現れます。制約を正確に読むことは、係数をきれいにするだけでなく、目的関数に余計なバイアスを入れないためにも大切です。

3. 不等式制約とスラック変数 ​

容量制約は

F(x)≤C

の形です。QUBOへ素直に入れるなら、非負のスラック変数 s を導入して

F(x)+s=C,s≥0

とします。s を二進展開

s=∑ℓ=0L−12ℓyℓ

で表すと、ペナルティは

λ(F(x)+∑ℓ=0L−12ℓyℓ−C)2

です。この方法は分かりやすいですが、スラック変数が増えます。さらに、F(x) が多くの変数の和なら、やはり広い結合が出ます。小さい容量制約には十分使えますが、大規模問題では別の方法が欲しくなります。

4. 大関法: 制約を補助場に移す ​

等式制約

Fk(x)=Ck

を二乗ペナルティで入れると、

f(x)=f0(x)+12∑kλk{Fk(x)−Ck}2

になります。大関法は、この二乗項を補助場 νk の更新へ置き換えます。固定した ν に対してサンプラが見る有効ハミルトニアンは

Heff(x;ν)=f0(x)−∑kνkFk(x)

です。Fk が線形和なら、−νkFk は局所磁場になります。二乗ペナルティが作っていた全結合を、補助場で置き換えることができます。

固定した ν のもとでサンプル平均を取り、

⟨Fk(x)⟩ν≃1R∑r=1RFk(x(r))

とします。制約値 Ck に近づける更新は

νk(t+1)=νk(t)+ηt{Ck−⟨Fk(x)⟩ν(t)}

です。サンプルが制約値より大きい方向に偏れば、その方向を抑えるように νk が動きます。サンプルが小さすぎれば、逆向きに動きます。詳しい導出は、ハバード・ストラトノビッチ変換から 補遺: ハバード・ストラトノビッチ変換と大関法 で説明しています。

5. 不等式制約に対する大関法 ​

不等式制約

Fk(x)≤Ck

では、制約を満たしている限りペナルティをかける必要はありません。統計力学的には、Heaviside関数を使って

Z=∑xexp⁡[−βf0(x)]∏kΘ(Ck−Fk(x))

と書けます。Θ は条件を満たす配置だけを残す関数です。この関数を積分表示し、鞍点法で評価すると、非負の双対変数 μk≥0 が現れます。固定した μ に対する有効ハミルトニアンは、定数を除いて

Hineq(x;μ)=f0(x)+∑kμkFk(x)

です。容量を超えやすい制約ほど μk が大きくなり、その制約に寄与する変数を選びにくくします。更新は射影つきの形になります。

μk(t+1)=[μk(t)+ηt{⟨Fk(x)⟩μ(t)−Ck}]+

[u]+=max(u,0) です。制約平均が容量を超えると μk が増えます。容量に余裕があれば μk は下がり、0より小さくはなりません。これはKKT条件の相補性に対応します。

スラック変数で容量を表す方法は、制約を厳密にQUBOへ入れる方法です。一方、不等式版の大関法は、サンプラを使いながら双対変数を更新する方法です。前者は構造が単純で、後者は大規模な容量制約で結合数を抑えやすいです。

6. 列生成: 候補解を列として育てる ​

列生成は、大きな組合せ最適化問題を「候補解の組合せ」として解く方法です。制約つき二次0-1問題を

minx∑i,jQijxixjs.t.∑i,jAkijxixj≤bk,xi∈{0,1}

とします。すべての0-1解を直接調べるのではなく、いくつかの候補解 xp を用意し、その凸結合

xa=∑p∈Pλpxp,∑p∈Pλp=1,λp≥0

を考えます。制限主問題は、現在持っている候補列だけで

minλ∑p∈P(∑i,jQijxipxjp)λp

を解きます。制約も

∑p∈P(∑i,jAkijxipxjp)λp≤bk

と書けます。これは λp についての線形計画です。

制限主問題の双対変数を ρk∗、正規化制約に対応する双対変数を π0∗ とします。新しい良い候補列を探す価格付け問題は

minx∈{0,1}N∑i,j(Qij−∑kρk∗Akij)xixj−π0∗

です。これはQUBOです。つまり、古典計算で制限主問題を解き、量子アニーラで新しい候補列を探します。良い列が見つかれば追加し、また制限主問題を解きます。

手順は次のように読めます。

  1. 少数の実行可能候補から始めます。
  2. 線形計画で、現在の候補をどう混ぜるとよいかを解きます。
  3. 双対変数を使って、まだ足りない候補をQUBOとして探します。
  4. 見つかった候補を列として追加します。
  5. 改善できなくなるまで繰り返します。

列生成の良さは、量子アニーラに「巨大な最終問題」を渡さない点です。渡すのは、いま足りない候補を探す価格付け問題です。サンプラが多様な低エネルギー解を返すなら、それらを複数の候補列として追加できます。

7. 実行可能解を作る列生成 ​

列生成で得られる xa は凸結合なので、一般には0-1ではありません。制限主問題の値が良くても、そのまま現場へ出せる解とは限りません。そこで、得られた候補列から実行可能な0-1解を構成する後処理が必要になります。

基本の考え方は、連続解の重み λp を利用して有望な列を選び、0-1制約を壊さないように丸め、局所探索で修復することです。たとえば、重みの大きい列を優先して選ぶ、制約違反が小さい列の組合せを残す、QUBOサンプラで得た候補を近傍探索の初期点にする、といった操作を組み合わせます。

この後処理は地味ですが、実問題では決定的です。最適化研究では下界や緩和値が大事ですが、現場では実行可能解が必要です。量子アニーリングを列生成の価格付けに使うときも、最後に制約を満たす解へ戻す経路を持っているかが、応用の強さを決めます。

8. Benders分解: 連続変数を副問題へ送る ​

Benders分解は、二値変数と連続変数が混ざる問題で使いやすいです。典型形を

minx,yxTCx+hTys.t.Ax+Gy≤b,x∈{0,1}n,y≥0

とします。x を固定すると、y については線形計画です。その双対問題は

maxλ(b−Ax)Tλs.t.GTλ≤h,λ≥0

です。双対の極点を uk、極方向を rj とすると、主問題は

minx,txTCx+t

に、切除平面

(b−Ax)Tuk≤t

と実行可能性カット

(b−Ax)Trj≤0

を加えた形になります。t は「連続副問題があとで足す最小コスト」を表します。

量子アニーラで主問題を解くには、連続変数 t とカットのスラックを二進展開します。たとえば

t(w)=tmin+δ∑ℓ=0Lt−12ℓwℓ

と置きます。カット

(b−Ax)Tuk≤t

は、非負スラック sk を使って

t(w)+ukTAx+sk−bTuk=0

とし、二乗ペナルティにします。sk も二進展開します。結果として、主問題は

Hmaster=xTCx+t(w)+∑kPk(t(w)+ukTAx+sk−bTuk)2+⋯

というQUBOになります。⋯ には実行可能性カットのペナルティが入ります。

Benders分解の流れは明快です。量子アニーラで二値主問題を解きます。得られた x を固定して古典線形計画を解きます。副問題が実行可能で最適値が分かれば最適性カットを加えます。実行不可能なら実行可能性カットを加えます。主問題と副問題の差が十分小さくなれば止めます。

|t−(b−Ax)Tuk|≤ε

この方法は、連続変数まで無理に量子アニーラへ押し込まないところが強いです。量子アニーラは、離散的な設計選択を担当します。連続副問題は、古典最適化の安定した道具に任せます。

9. ラグランジュ分解協調: 工程を分けて会話させる ​

鉄鋼製造スケジューリングのように、二つの工程が結合している問題では、工程ごとにQUBOを分けると扱いやすくなります。工程 p=1,2、製品 i、スロット s に対して xp,i,s を用意し、時刻を

tp,i=∑ssxp,i,s

とします。工程順序制約は t1,i≤t2,i です。これをラグランジュ乗数 λi で緩めると、

ELDC=Cost+ρPenalty+∑iλi(t1,i−t2,i)

です。これは

E1=Cost1+ρPenalty1+∑iλit1,i,E2=Cost2+ρPenalty2−∑iλit2,i

へ分かれます。工程1が遅れすぎるなら λi を増やし、工程1でその製品を早める圧力、工程2で遅める圧力をかけます。更新はたとえば

λinew=λi+αmax(t1,i∗−t2,i∗,0)

です。二つの工程が、それぞれのQUBOを解きながら、ラグランジュ乗数を通して会話します。工程を分けることで、変数数はおおよそ 2N2 から N2 規模へ下がります。

10. クラスタ分解と候補解合成 ​

AGV、避難、配送のような空間的問題では、地理的に近い対象をクラスタに分けることができます。クラスタごとに局所QUBOを解き、複数の候補解を得ます。その後、クラスタ間の干渉を考えながら候補解を一つずつ選びます。

クラスタ m の候補解 n を選ぶ変数を smn とします。クラスタ内コストを Amn、クラスタ m の候補 n とクラスタ p の候補 q を同時に選ぶときの干渉を Bmnpq とすると、

H(s)=∑m,nAmnsmn+∑m≠p∑n,qBmnpqsmnspq+Γ∑m(∑nsmn−1)2

です。この上位QUBOは、元問題のすべての車両や避難者を直接変数にするより小さくなります。

量子アニーラの多様なサンプルは、この方法と相性が良いです。クラスタ内で一つの最良解だけを残すと、クラスタ間で組み合わせたときに詰まることがあります。少し悪いが別の経路を使う候補を残しておくと、全体では混雑が減ることがあります。サンプラは、最終解を一つ出すだけでなく、組合せ直すための候補集合を作ります。

11. どの方法を選ぶか ​

制約つきQUBOでは、最初から最強の分解法を使う必要はありません。まず制約の形を見ます。

一つだけ選ぶ制約が小さいなら、二乗ペナルティで十分です。二つ以上禁止なら、半分ずらしが自然です。合計や容量が大きく、全結合が問題になるなら、大関法や不等式版の双対更新を考えます。候補解の集合を育てたいなら列生成が合います。連続変数が多いならBenders分解が合います。工程や地域のように自然な分割があるなら、ラグランジュ分解やクラスタ分解が合います。

実装では、次の流れが役に立ちます。

  1. 変数を決めます。
  2. 絶対制約と評価関数を分けます。
  3. 小さい制約はペナルティで入れます。
  4. 大きい制約は双対変数、列生成、Benders、クラスタ分解へ逃がします。
  5. サンプルを後処理し、必ず実行可能性を検査します。
  6. 実機やサンプラの係数範囲に合わせてスケーリングします。
  7. 古典ソルバ、SA、SQA、局所探索と比較します。

量子アニーリング応用は、QUBOを書いて終わりではありません。QUBOを書き、縮め、分け、サンプルし、戻し、検査するまでが一つの方法です。その全体を設計できると、量子アニーラは現場の制約の中で使える道具になります。

不等式制約に対する劣勾配法は文献 [8]を参照してください。

参考文献 ​

  1. Masayuki Ohzeki, “Breaking limitation of quantum annealer in solving optimization problems under constraints,” Scientific Reports 10, 3126 (2020). 出典

  1. Sota Hirama, Masayuki Ohzeki, “Efficient Algorithm for Binary Quadratic Problem by Column Generation and Quantum Annealing,” Journal of the Physical Society of Japan 92, 113002 (2023). 出典

  1. Taisei Takabayashi, Naoki Maruyama, Takuma Yoshihara, Renichiro Haba, Masayuki Ohzeki, “Efficient Construction of Feasible Solutions in Column Generation Using Quantum Annealing,” Journal of the Physical Society of Japan 94, 094005 (2025). 出典

  1. Takuma Yoshihara, Masayuki Ohzeki, “Accelerating Extended Benders Decomposition with Quantum-Classical Hybrid Solver,” Journal of the Physical Society of Japan 95, 033001 (2026). 出典

  1. Kouki Yonaga, Masamichi Miyama, Masayuki Ohzeki, Koji Hirano, Hirokazu Kobayashi, Tetsuaki Kurokawa, “Quantum Optimization with Lagrangian Decomposition for Multiple-process Scheduling in Steel Manufacturing,” ISIJ International 62, 1874–1880 (2022). 出典

  1. Thinh Nguyen Quang, Kosuke Matsuyama, Keisuke Shimizu, Hiroki Sugano, Eiji Kurimoto, Masahiro Miki, et al., “Quantum annealing-based route optimization for commercial AGV operating systems in large-scale logistics warehouses,” Scientific Reports 15, 44047 (2025). 出典

  1. Reo Shikanai, Renichiro Haba, Yusuke Okazaki, Kazumichi Matsumoto, Masayuki Ohzeki, “Large-scale evacuation route optimization leveraging sampling diversity in quantum annealing,” Scientific Reports 16, 22108 (2026). 出典

  1. Taisei Takabayashi, Takeru Goto, Masayuki Ohzeki, “Subgradient Method Using Quantum Annealing for Inequality-Constrained Binary Optimization Problems,” Journal of the Physical Society of Japan 94, 054003 (2025). 出典