(57)【要約】      （修正有）【課題】ロット単位で製品を生産または処理するための計画を、集合分割問題を用いて立案するに際し、当該集合分割問題の最適解の候補となる部分集合（キャスト（ロット））を効率よく抽出するための計画作成装置の提供。【解決手段】キャスト編成装置１００は、集合分割問題ＭＰを線形緩和した線形緩和問題ＬＰを主問題とした場合の双対問題ＤＬＰの最適解である双対解（双対変数λiの最適解）を導出する。そして、キャスト編成装置１００は、当該双対解を用いて、双対変数λiの最適解と、グラフＧ（Ｖ，Ｅ）とを用いて、列生成子問題ＳＰの解として導出する。そして、キャスト編成装置１００は、当該新たな実現可能ロットａのコストから当該新たな実現可能ロットａに対する双対コストを減算した値が負である（即ち、列追加要件を満足する）場合に、当該新たな実現可能ロットａを、集合分割問題ＭＰにおける部分集合を示す行列に追加する。【選択図】図１
2020151734.tif 000002
【特許請求の範囲】
【請求項１】
複数の製品について生産または処理するための計画を作成する計画作成装置であって、
前記複数の製品についての製造条件を含む製品情報を取得する取得手段と、
所定のロット成立制約を満たす様に前記複数の製品を重複することなく且つ漏れなく纏めたロットである複数の実現可能ロットの最適な組み合わせを求める集合分割問題を原問題とし、該原問題の最適解を構成する実現可能ロットの候補である候補ロットを生成する列生成子問題の解を導出する列生成手段と、
前記列生成手段により導出された前記候補ロットが、列追加要件を満足するか否かを判定する判定手段と、
前記判定手段により、前記列生成手段により導出された前記候補ロットが、前記列追加要件を満足すると判定されると、前記列生成手段により生成された前記候補ロットを前記実現可能ロットの集合に追加する列追加手段と、
前記判定手段により、前記列生成手段により導出された前記候補ロットが、前記列追加要件を満足しないと判定されると、その時点で得られている前記実現可能ロットの集合に基づいて、前記原問題の最適解として、前記実現可能ロットの組み合わせを導出する最適解導出手段と、を有し、
前記列生成手段は、始点、終点、および前記製品に対応する頂点と、前記始点、前記終点、および前記頂点のうちの２つの点を接続する枝とを有するグラフを用いて、前記始点から前記終点に至る経路から、前記候補ロットとなる前記製品に対応する前記頂点が含まれる経路を探索することを特徴とする計画作成装置。
【請求項２】
前記原問題の線形緩和問題を主問題とした場合の双対問題の最適解である双対解を導出する双対解導出手段をさらに有し、
前記列生成手段は、前記始点から前記終点に至る経路に含まれる前記頂点に対応する前記製品から構成される実現可能ロットが前記ロット成立制約を満たし、且つ、当該実現可能ロットのコストと、当該製品に対する前記双対解とに基づく評価値が所定の条件を満たす場合に、当該実現可能ロットを前記候補ロットとすることを特徴とする請求項１に記載の計画作成装置。
【請求項３】
前記列生成手段は、前記始点から前記終点に至る経路から、前記候補ロットを構成する前記製品に対応する前記頂点が含まれる前記経路を探索する過程において、前記実現可能ロットのコストの計算と、前記実現可能ロットが前記ロット成立制約を満たすか否かの判定とを繰り返し行うことを特徴とする請求項１または２に記載の計画作成装置。
【請求項４】
前記列生成手段は、前記始点から前記終点に至る経路に含まれる前記頂点に対応する前記製品から構成される実現可能ロットであって、前記ロット成立制約を満たし、且つ、前記評価値が所定の条件を満たす実現可能ロットを、前記始点から前記終点に至る経路に含まれる前記枝の数であるステップ数毎に複数導出することを特徴とする請求項２または３に記載の計画作成装置。
【請求項５】
前記所定の条件は、同じ数の前記製品から構成される前記実現可能ロットの中で、前記評価値が最小または最大であるという条件であることを特徴とする請求項２〜４の何れか１項に記載の計画作成装置。
【請求項６】
前記評価値は、前記始点から前記終点に至る経路に含まれる前記頂点に対応する前記製品から構成される実現可能ロットのコストと、当該製品に対する前記双対解の総和との差を用いた値であることを特徴とする請求項２〜５の何れか１項に記載の計画作成装置。
【請求項７】
前記列生成手段は、前記枝で接続される２つの点のうち、前記始点、または、前記始点から前記終点に至る経路において前記始点に近い一方の点である先行点を指定する第１の指定手段と、
前記枝で接続される２つの点のうち、前記第１の指定手段により前記先行点として指定されていない点である後行点を指定する第２の指定手段と、
前記先行点に対応する前記製品と、前記後行点に対応する前記製品とが前記ロット成立制約を満たすか否かを、当該製品の所定の属性情報に基づいて判定する第１の判定手段と、
前記先行点に対応する前記製品と、前記後行点に対応する前記製品とから構成される前記実現可能ロットのコストと、当該製品に対する前記双対解とに基づく評価値が所定の条件を満たすか否かを判定する第２の判定手段と、
前記先行点に対応する前記製品と、前記後行点に対応する前記製品とから構成される前記実現可能ロットが前記ロット成立制約を満たし、且つ、前記先行点に対応する前記製品と、前記後行点に対応する前記製品とから構成される前記実現可能ロットのコストと、当該製品に対する前記双対解とに基づく評価値が所定の条件を満たす場合に、当該製品の属性情報と、当該評価値と、前記先行点から前記後行点に至る経路とを示す情報を記憶する記憶手段と、を有し、
前記始点を初期の前記先行点として、前記先行点と前記後行点の組を異ならせて、前記第１の判定手段による判定と、前記第２の判定手段による判定と、前記記憶手段による判定とを行い、
前記第１の判定手段は、前記先行点に対応する前記製品の所定の属性情報として、当該先行点が前記後行点であるときに前記記憶手段により記憶された前記製品の属性情報を用いて前記判定を行い、
前記第２の判定手段は、前記先行点に対応する前記製品と、前記後行点に対応する前記製品とから構成される前記実現可能ロットのコストと、当該製品に対する前記双対解とに基づく評価値として、当該先行点が前記後行点であるときに前記記憶手段により記憶された前記評価値を用いて導出された評価値を用いて前記判定を行うことを特徴とする請求項２〜６の何れか１項に記載の計画作成装置。
【請求項８】
前記双対問題は、前記実現可能ロットの集合に含まれる前記実現可能ロットのそれぞれのコストが、該実現可能ロットに対する双対コスト以上であるという制約を表す制約式であって、該実現可能ロットのコスト、該実現可能ロットに対応するロット構成製品有無変数、および双対変数を用いて表される制約式と、前記複数の製品についての該双対変数の総和を求める目的関数であって、該双対変数を用いて表される目的関数と、を用いて、該制約式を満足する範囲で該目的関数の値が最大になる該双対変数の値を前記双対解として決定する線形計画問題であり、
前記双対変数は、前記製品毎に定められる変数であり、
前記実現可能ロットに対する双対コストは、前記製品に対する前記双対変数の値と、該製品と該実現可能ロットに対応するロット構成製品有無変数との積の、前記複数の製品についての総和で表され、
前記ロット構成製品有無変数は、前記製品毎に定められる０−１変数であって、前記実現可能ロットに前記製品が含まれる場合に「１」となり、そうでない場合に「０」となる０−１変数であることを特徴とする請求項２〜７の何れか１項に記載の計画作成装置。
【請求項９】
前記判定手段は、前記双対解導出手段による前記双対解の導出と、前記列生成手段による前記列生成子問題の最適解の導出と、前記判定手段による前記判定と、前記列追加手段による前記候補ロットの追加と、を繰り返す収束計算を、前記列追加要件を満足しないと判定するまで実行することを特徴とする請求項８に記載の計画作成装置。
【請求項１０】
前記原問題は、前記複数の製品のそれぞれについて、前記実現可能ロットの集合の中から、該製品を含む前記実現可能ロットが必ず１つ選択されるという制約を表す制約式であって、前記原問題の決定変数を用いて表される制約式と、前記実現可能ロットの集合に含まれる前記実現可能ロットのコストの総和を求める目的関数であって、前記決定変数および前記実現可能ロットのコストを用いて表される目的関数と、を用いて、該制約式を満足する範囲で該目的関数の値が最小になる前記決定変数を決定する０−１整数計画問題であることを特徴とする請求項１〜９の何れか１項に記載の計画作成装置。
【請求項１１】
前記実現可能ロットのコストは、該実現可能ロットに含まれる前記製品の品種の総数を表すコストであることを特徴とする請求項１０に記載の計画作成装置。
【請求項１２】
前記取得手段により取得された前記製品情報に含まれる前記製品の製造条件に基づいて前記複数の製品をグルーピングすることにより複数の製品グループを作成するグループ作成手段をさらに有し、
前記製品に代えて前記製品グループを用いることを特徴とする請求項１〜１１の何れか１項に記載の計画作成装置。
【請求項１３】
前記製品は、連続鋳造機で鋳造されるスラブであり、
前記ロットは、連続して鋳造する複数のチャージのまとまりであるキャストであり、
前記計画は、前記スラブが属する前記キャストを示すキャスト計画であることを特徴とする請求項１〜１２の何れか１項に記載の計画作成装置。
【請求項１４】
複数の製品について生産または処理するための計画を作成する計画作成方法であって、
前記複数の製品についての製造条件を含む製品情報を取得する取得工程と、
所定のロット成立制約を満たす様に前記複数の製品を重複することなく且つ漏れなく纏めたロットである複数の実現可能ロットの最適な組み合わせを求める集合分割問題を原問題とし、該原問題の最適解を構成する実現可能ロットの候補である候補ロットを生成する列生成子問題の解を導出する列生成工程と、
前記列生成工程により導出された前記候補ロットが、列追加要件を満足するか否かを判定する判定工程と、
前記判定工程により、前記列生成工程により導出された前記候補ロットが、前記列追加要件を満足すると判定されると、前記列生成工程により生成された前記候補ロットを前記実現可能ロットの集合に追加する列追加工程と、
前記判定工程により、前記列生成工程により導出された前記候補ロットが、前記列追加要件を満足しないと判定されると、その時点で得られている前記実現可能ロットの集合に基づいて、前記原問題の最適解として、前記実現可能ロットの組み合わせを導出する最適解導出工程と、を有し、
前記列生成工程は、始点、終点、および前記製品に対応する頂点と、前記始点、前記終点、および前記頂点のうちの２つの点を接続する枝とを有するグラフを用いて、前記始点から前記終点に至る経路から、前記候補ロットとなる前記製品に対応する前記頂点が含まれる経路を探索することを特徴とする計画作成方法。
【請求項１５】
請求項１〜１３の何れか１項に記載の計画作成装置の各手段としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計画作成装置、計画作成方法、およびプログラムに関し、特に、ロットに複数の製品を纏めてロット単位で複数の製品を生産または処理するために用いて好適なものである。
【背景技術】
【０００２】
製造業において製品の生産計画を立案する場合には、複数の製品を適切な規模で適切な数のロットに纏めてロット単位で製造するように生産計画を立案することが多い。
ここで、複数の製品をロットに纏めて製造する場合の一例として、製鋼工場で連続鋳造を行う場合について説明する。
【０００３】
製鋼工場では、高炉から供給された溶銑を転炉に装入して、酸素を吹き付けることで溶銑中の炭素を取り除き溶鋼を製造する。これを一次精錬と呼ぶ。次に、溶鋼は取鍋と呼ばれる容器に注入され二次精錬工程へ搬送される。この取鍋一杯分の溶鋼をチャージと呼ぶ。二次精錬工程として例えばＲＨ（Ruhrstahl Heraeus）工程があり、真空管中に溶鋼を循環させることで溶鋼中の不純なガスを真空中に除去して溶鋼の成分を調整する。二次精錬工程が終了すると、取鍋は連続鋳造機へと搬送される。連続鋳造機では、取鍋から鋳型へ溶鋼を注入すると同時に冷却することで半製品である鋳片を製造する。連続鋳造機では、複数のチャージを連続して鋳造することが可能であり、連続して鋳造する複数のチャージのまとまりをキャストと呼ぶ。また、複数のチャージの溶鋼を連続して鋳造することを連々鋳と呼ぶ。この連々鋳の回数を多くし過ぎると、連続鋳造機の構成部材（タンディッシュや鋳型の耐火物、浸漬ノズルなど）の溶損が生じるため、品種などで異なる溶損具合に応じて連々鋳を実施するチャージ数を適切に定めなければならない。
【０００４】
連続鋳造機において製造された鋳片はスラブと呼ばれ、圧延工程へ搬送される。圧延工程においてスラブは加熱炉によって再加熱され高温の状態で圧延機によって数ミリ単位の薄さまで圧延されコイル状に巻き取られる。スラブの形状や硬さによって、圧延機で連続して圧延できるスラブ枚数に制限がある。圧延機で連続して圧延されるスラブのまとまりをチャンスと呼ぶ。
各スラブには、注文情報から成分、形状、熱延希望日などの情報が付与されていて、製鋼工程および圧延工程における制約条件を考慮して、キャストやチャンスといったロットが編成される。
【０００５】
また近年、製鋼工程のロットであるキャストを圧延工程のロットであるチャンスと同じにすることで、リードタイムの短縮化、および熱ロスの低減化の試みがされている。このような操業を行う場合においては、製鋼工程および圧延工程における制約条件を同時に満足するキャスト編成（各キャストに含めるスラブ）を決定する必要がある。
【０００６】
キャスト編成においては、キャスト内に多数のスラブを取り込んで大ロット化することにより、鋳造の連々鋳回数を増加させ、連々鋳の開始および終了時におけるスラブ不良部の低減や再鋳造開始にかかる準備時間の低減による生産量の増加が期待できる。一方で、成分、形状、および熱延希望日などの条件によって同一キャスト内に取り込むことが可能なスラブには制限がある。このため、制約条件を満たす範囲において可能な限り大ロットとなるキャスト編成を行うことが求められる。
【０００７】
キャスト編成の業務では、一般に、数百または千といった数のスラブを取り扱うため、スラブの組み合わせ数が多くなる。したがって、計画担当者が全ての制約条件を充足するキャスト編成を行うめには長時間を有する作業となる。
そこで、キャスト編成を自動で行う技術として特許文献１に記載の技術がある。
特許文献１には、各チャージを節点で表現すると共に、抱き合わせて鋳造可能なチャージ間を有向枝で表現したネットワークを作成し、最長のキャストとなるルートを前記ネットワーク上で探索することが開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１２−１１４５１号公報
【非特許文献】
【０００９】
【非特許文献１】久保幹雄、田村明久、松井知己編、「応用数理計画ハンドブック」、株式会社朝倉書店、２００２年５月、p.133、337、621、634
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１に記載の技術では、スラブをチャージにまとめる方法に関しての説明がなく、与えられたチャージの情報に基づいてキャスト編成を行うことになる。したがって、チャージが適切に編成されていなければ最適なキャスト編成の結果が得られない虞がある。
【００１１】
そこで、キャストにスラブをどのように纏めるのかを決定する必要がある。このような決定を行う手法として、集合分割問題を解く手法が考えられる。集合分割問題は、要素の部分集合と、当該部分集合のコストとが与えられたときに、各要素をちょうど１つずつ含む（即ち、各要素を漏れなく且つ重複することなく含む）部分集合の組み合わせを、当該コストの総和を最小にするように決定する問題である。一般的な集合分割問題では、このような部分集合の組み合わせを全て列挙しなければならない。このため、問題規模が大きくなり過ぎ、計算時間が長くなる虞がある。そこで、集合分割問題の最適解の候補となる部分集合（キャスト）を事前に求め、当該候補から集合分割問題を解くことが考えられる。この場合、集合分割問題の最適解の候補を絞り込み過ぎると、当該候補の計算時間は短くすることが可能であるが、集合分割問題を解いて得られる解の最適性が低下する。一方で、集合分割問題の最適解の候補を取り込み過ぎても、当該候補の計算時間、および、集合分割問題を解く際の計算時間が長時間化する。そこで、集合分割問題の最適解の候補を効率よく求めることが望まれる。
【００１２】
以上のように従来の技術では、キャスト（ロット）に複数のスラブ（製品）を纏めてキャスト（ロット）単位でスラブ（製品）を鋳造（生産）するための鋳造（生産）計画を、集合分割問題を用いて立案するに際し、当該集合分割問題の最適解の候補となる部分集合（キャスト（ロット））を効率よく抽出することが容易でなかった。
本発明は、以上のような問題点に鑑みてなされたものであり、ロット単位で製品を生産または処理するための計画を、集合分割問題を用いて立案するに際し、当該集合分割問題の最適解の候補となる部分集合（キャスト（ロット））を効率よく抽出できるようにすることを目的とする。
【課題を解決するための手段】
【００１３】
本発明の計画作成装置は、複数の製品について生産または処理するための計画を作成する計画作成装置であって、前記複数の製品についての製造条件を含む製品情報を取得する取得手段と、所定のロット成立制約を満たす様に前記複数の製品を重複することなく且つ漏れなく纏めたロットである複数の実現可能ロットの最適な組み合わせを求める集合分割問題を原問題とし、該原問題の最適解を構成する実現可能ロットの候補である候補ロットを生成する列生成子問題の解を導出する列生成手段と、前記列生成手段により導出された前記候補ロットが、列追加要件を満足するか否かを判定する判定手段と、前記判定手段により、前記列生成手段により導出された前記候補ロットが、前記列追加要件を満足すると判定されると、前記列生成手段により生成された前記候補ロットを前記実現可能ロットの集合に追加する列追加手段と、前記判定手段により、前記列生成手段により導出された前記候補ロットが、前記列追加要件を満足しないと判定されると、その時点で得られている前記実現可能ロットの集合に基づいて、前記原問題の最適解として、前記実現可能ロットの組み合わせを導出する最適解導出手段と、を有し、前記列生成手段は、始点、終点、および前記製品に対応する頂点と、前記始点、前記終点、および前記頂点のうちの２つの点を接続する枝とを有するグラフを用いて、前記始点から前記終点に至る経路から、前記候補ロットとなる前記製品に対応する前記頂点が含まれる経路を探索することを特徴とする。
【００１４】
本発明の計画作成方法は、複数の製品について生産または処理するための計画を作成する計画作成方法であって、前記複数の製品についての製造条件を含む製品情報を取得する取得工程と、所定のロット成立制約を満たす様に前記複数の製品を重複することなく且つ漏れなく纏めたロットである複数の実現可能ロットの最適な組み合わせを求める集合分割問題を原問題とし、該原問題の最適解を構成する実現可能ロットの候補である候補ロットを生成する列生成子問題の解を導出する列生成工程と、前記列生成工程により導出された前記候補ロットが、列追加要件を満足するか否かを判定する判定工程と、前記判定工程により、前記列生成工程により導出された前記候補ロットが、前記列追加要件を満足すると判定されると、前記列生成工程により生成された前記候補ロットを前記実現可能ロットの集合に追加する列追加工程と、前記判定工程により、前記列生成工程により導出された前記候補ロットが、前記列追加要件を満足しないと判定されると、その時点で得られている前記実現可能ロットの集合に基づいて、前記原問題の最適解として、前記実現可能ロットの組み合わせを導出する最適解導出工程と、を有し、前記列生成工程は、始点、終点、および前記製品に対応する頂点と、前記始点、前記終点、および前記頂点のうちの２つの点を接続する枝とを有するグラフを用いて、前記始点から前記終点に至る経路から、前記候補ロットとなる前記製品に対応する前記頂点が含まれる経路を探索することを特徴とする。
【００１５】
本発明のプログラムは、前記計画作成装置の各手段としてコンピュータを機能させることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、ロット単位で製品を生産または処理するための計画を、集合分割問題を用いて立案するに際し、当該集合分割問題の最適解の候補となる部分集合（キャスト（ロット））を効率よく抽出することができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、キャスト編成装置の機能的な構成の一例を示す図である。
【図２】図２は、キャスト編成装置によるキャスト編成方法（計画作成方法）の一例を説明するフローチャートである。
【図３】図３は、スラブ情報の一例を示す図である。
【図４】図４は、スラブグループ情報の一例を示す図である。
【図５】図５は、列生成子問題の解を求める際に用いるグラフの一例を説明する図である。
【図６】図６は、グラフを用いて、列生成子問題の解を導出する方法の一例を説明するフローチャートである。
【図７】図７は、図６のフローチャートの処理を補足説明するためのグラフを示す図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照しながら、本発明の実施形態を説明する。本実施形態では、生産計画として、連続鋳造機におけるキャスト計画を作成する（即ちキャスト編成を行う）場合を例に挙げて説明する。この場合、「スラブ」が「製品」に対応し、「キャスト」が「ロット」に対応し、「鋳造」が「製造」に対応する。また、「製品」は、原料に手が加えられた物を指し、市場に出回る最終製品等に限定されるものではない。例えば、中間製品（半製品）も「製品」に含まれる。
【００１９】
図１は、キャスト編成装置１００の機能的な構成の一例を示す図である。図２は、キャスト編成装置１００によるキャスト編成方法（計画作成方法）の一例を説明するフローチャートである。キャスト編成装置１００のハードウェアは、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＨＤＤ、および各種のインターフェースを備える情報処理装置や、専用のハードウェアを用いることにより実現される。
【００２０】
＜スラブ情報取得部１０１、スラブ情報取得ステップＳ２０１＞
スラブ情報取得部１０１は、スラブ情報を取得して記憶する。スラブ情報取得部１０１は、例えば、キャスト編成装置１００に対するオペレータによる操作、外部装置から送信されたスラブ情報の受信、または可搬型記憶媒体に記憶されたスラブ情報の読み出しを行うことによりスラブ情報を取得する。
【００２１】
図３は、スラブ情報３００の一例を示す図である。
図３において、スラブ情報３００は、スラブＮｏ．、鋼種、スラブ重量、スラブ幅、スラブ厚、コイル幅、コイル厚、およびコイル長さが相互に関連付けられた情報である。立案対象のスラブのそれぞれについてスラブ情報が個別に与えられる。
【００２２】
スラブＮｏ．は、スラブを識別する番号である。
鋼種とは、スラブの成分などに応じて定まるスラブの品種を示すものである。ここでは、鋼種を、当該鋼種を識別する記号で表すものとする。
スラブ重量、スラブ幅、スラブ厚は、それぞれ、スラブの重量、幅、厚みである。鋼種、スラブ重量、スラブ幅、およびスラブ厚は、スラブを製造する工程（連続鋳造工程）における製造条件である。
【００２３】
コイル幅、コイル厚、コイル長さは、それぞれ、スラブＮｏ．で識別されるスラブを熱間圧延することにより得られるコイルの幅、厚み、長さである。コイル幅、コイル厚、およびコイル長さは、スラブを製造する工程よりも後の工程（熱間圧延工程）における製造条件である。
【００２４】
＜スラブグループ作成部１０２、スラブグループ作成ステップＳ２０２＞
スラブグループ作成部１０２は、スラブ情報取得部１０１で取得されたスラブ情報３００に基づいて、製造条件が所定の範囲内で一致するスラブが同一のスラブグループに属するように、スラブ情報３００に含まれるスラブのそれぞれをグルーピングする。
まず、スラブグループ作成部１０２は、スラブ情報３００に含まれる未選択のスラブ（レコード）のうち、未選択のスラブを１つ選択する。
【００２５】
次に、スラブグループ作成部１０２は、既に作成されているスラブグループの中に、スラブ情報３００から選択したスラブを追加できるスラブグループがあるか否かを判定する。スラブグループ作成部１０２は、スラブの製造条件が所定の範囲内で一致するスラブを同一のスラブグループに含める。
具体的に本実施形態では、スラブグループ作成部１０２は、以下の（Ａ１）〜（Ｃ１）の全ての判定条件を満たす場合に、既に作成されているスラブグループの中に、スラブ情報３００から選択したスラブを追加できるスラブグループがあると判定する。
【００２６】
（Ａ１）既に作成されているスラブグループに含まれるスラブの幅（スラブ幅）と、スラブ情報３００から選択したスラブの幅（スラブ幅）との差の最大値が１００［ｍｍ］以下である。
（Ｂ１）既に作成されているスラブグループに含まれるスラブの厚み（スラブ厚）と、スラブ情報３００から選択したスラブの厚み（スラブ厚）との差の最大値が２［ｍｍ］以下である。
（Ｃ１）既に作成されているスラブグループに含まれるスラブの製造可能な鋼種と、スラブ情報から選択したスラブの製造可能な鋼種との少なくとも１つが重複する。
【００２７】
図３では、各スラブの鋼種が一種類であるもののみを示すが、複数の鋼種の何れの鋼種であっても製造できるスラブもある。このため、（Ｃ１）の判定条件を課す。このように鋼種は、選択に自由度がある（１つのスラブにおいて、複数の鋼種の中から１つの鋼種を選択し得る）。
【００２８】
スラブグループ作成部１０２は、既に作成されているスラブグループの中に、スラブ情報３００から選択したスラブを追加できるスラブグループがないと判定した場合には、新たなスラブグループを作成し、当該選択したスラブを当該作成した新たなスラブグループに含める。
一方、既に作成されているスラブグループの中に、スラブ情報３００から選択したスラブを追加できるスラブグループがある場合、スラブグループ作成部１０２は、当該スラブグループに含まれるスラブと、当該選択したスラブの枚数の合計が上限値以下であるか否かを判定する。熱延工程において圧延ロールが摩耗するため、同一のチャンスにおいて連続して熱間圧延する同幅帯のスラブの枚数に制約がある。そこで、本実施形態では、１つのスラブグループに含めるスラブの枚数に上限値を設定する。本実施形態では、この上限値を４０［枚］以下とする。
【００２９】
スラブグループ作成部１０２は、スラブ情報３００から選択したスラブを追加できるスラブグループに含まれるスラブと、当該選択したスラブの枚数の合計が上限値以下でない場合には、新たなスラブグループを作成し、当該選択したスラブを当該作成した新たなスラブグループに含める。
一方、スラブ情報３００から選択したスラブを追加できるスラブグループに含まれるスラブと、当該選択したスラブの枚数の合計が上限値以下である場合、スラブグループ作成部１０２は、当該選択したスラブを、当該スラブグループに含める。
【００３０】
スラブグループ作成部１０２は、スラブ情報３００に含まれる未選択のスラブ（レコード）を１つずつ選択して、以上の処理を繰り返し実行し、スラブ情報３００に含まれるスラブを何れかのスラブグループに含める。尚、同一のスラブが複数のスラブグループに属することはない。
【００３１】
図４は、図３に示したスラブ情報３００から作成されるスラブグループ情報４００の一例を示す図である。スラブグループ情報４００は、スラブグループのリストである。
図４において、スラブグループ情報４００は、スラブグループＮｏ．、鋼種、スラブ幅（最大値、最小値）、スラブ厚（最大値、最小値）、スラブ重量、コイル長さ、およびスラブ枚数が相互に関連付けられた情報である。
【００３２】
スラブグループＮｏ．とは、スラブグループを識別する番号である。
鋼種とは、スラブグループに属するスラブの鋼種である。図４では、各スラブグループが１つの鋼種のスラブからなる場合を示すが、１つのスラブグループには複数の鋼種のスラブが属する場合がある。
スラブ幅の最大値とは、スラブグループに含まれるスラブの幅（スラブ幅）の最大値をいう。スラブ幅の最小値とは、スラブグループに含まれるスラブの幅（スラブ幅）の最小値をいう。
【００３３】
スラブ厚の最大値とは、スラブグループに含まれるスラブの厚み（スラブ厚）の最大値をいう。スラブ厚の最小値とは、スラブグループに含まれるスラブの厚み（スラブ厚）の最小値をいう。
スラブ重量とは、スラブグループに含まれるスラブの重量（スラブ重量）の合計値である。
コイル長さとは、スラブグループに含まれるスラブのコイル長さの合計値である。
スラブグループ作成部１０２は、以上のようなスラブグループ情報４００を作成する。
【００３４】
スラブグループ作成部１０２で作成されたスラブグループの集合をＮIと表記し、スラブグループ（ＮIの要素）をｉと表記する。本実施形態では、後述するロット（＝キャスト）として成立するための制約条件（（８）式〜（２２）式を参照）を満足する複数のスラブグループ（スラブグループ作成部１０２で作成されたスラブグループの全体集合の部分集合）を纏めて１つのキャストを構成する。以下の説明では、このキャストの候補となる複数のスラブグループの纏まり（スラブグループ作成部１０２で作成されたスラブグループの全体集合の部分集合）を、必要に応じて実現可能ロットと称する。実現可能ロットの集合をＮJと表記し、実現可能ロット（ＮJの要素）をｊと表記する。
【００３５】
＜初期列集合設定部１０３、初期列集合設定ステップＳ２０３＞
初期列集合設定部１０３は、スラブグループ作成部１０２で作成されたスラブグループｉの集合ＮI（＝｛１,２,・・・,ｉ,・・・,ｎ｝）、即ち、スラブグループ作成部１０２で作成されたスラブグループｉから、行列（２次元配列）Ａi,jの初期値を設定する。行列Ａi,jのｉ行ｊ列の要素は、スラブグループｉを実現可能ロットｊに含むときに「１」の値を持ち、含まないときに「０」の値を持つ。このとき、初期列集合設定部１０３は、スラブグループ作成部１０２で作成されたスラブグループｉを重複なく且つ漏れなく含み、更に、後述するロットとして成立するための制約条件（（８）式〜（２２）式を参照）を満足するように、行列Ａi,jの初期値を設定する。その一例として、本実施形態では、初期列集合設定部１０３は、ｉ＝ｊとなる要素jにだけ「１」を持ち、それ以外の要素は「０」となる行列Ａi,jを初期値とする。即ち、それぞれの実現可能ロットｊが、相互に異なる任意の１つのスラブグループｉのみを要素として持つように、行列Ａi,jの初期値を設定する。従って、スラブグループ作成部１０２で作成されたスラブグループｉの数｜ＮI｜と、実現可能ロットｊの数（行列Ａi,jの列数）｜ＮJ｜は、行列Ａi,jの初期値においては一致する（｜ＮI｜＝｜ＮJ｜）。このように行列Ａi,jの行番号は、スラブグループｉを識別する番号になり、行列Ａi,jの列番号は、実現可能ロットｊを識別する番号になる。即ち、行列Ａi,jの１つの列が、１つの実現可能ロットｊに対応し、当該列において、「１」の値を持つ行に対応するスラブグループｉが、当該実現可能ロットｊに含まれるスラブグループとなる。
【００３６】
ユーザは、キャスト編成装置１００のユーザインターフェースを操作することにより、行列Ａi,jの初期値の情報を入力し、初期列集合設定部１０３が、キャスト編成装置１００内の記憶媒体に当該情報を記憶することにより、行列Ａi,jの初期値を設定することができる。ただし、必ずしもこのようにする必要はなく、例えば、初期列集合設定部１０３は、予め定められたロジックにより、行列Ａi,jの初期値を導出してもよい。
【００３７】
＜集合分割問題構築部１０４、集合分割問題構築ステップＳ２０４＞
本実施形態では、集合分割問題ＭＰ（原問題）を解くことにより、行列Ａi,jの各列に示される実現可能ロットｊからキャストとして採用する実現可能ロットｊを決定する。集合分割問題ＭＰとは、要素の部分集合と、当該要素のコストとが与えられたときに、各要素をちょうど１つずつ含む（即ち、各要素を漏れなく且つ重複することなく含む）部分集合の組み合わせを、当該コストの総和を最小にするように決定する問題である。本実施形態では、集合分割問題ＭＰは、実現可能ロットｊと、当該実現可能ロットｊのコストとが与えられたときに、各スラブグループｉをちょうど１つずつ含む（即ち、各スラブグループｉを漏れなく且つ重複することなく含む）実現可能ロットｊの組み合わせを、当該コストの総和が最小となるように決定する問題になる。
【００３８】
本実施形態における集合分割問題ＭＰは、以下のように表される。
<<集合>>
・ｉ∈ＮI：スラブグループ
・ｊ∈ＮJ：実現可能ロット
<<決定変数>>
・ｚj＝｛０，１｝
決定変数ｚjは、実現可能ロットｊをキャストとして採用する場合に「１」となり、そうでない場合に「０」となる０−１変数である。
<<定数>>
・行列Ａi,j
前述したように行列Ａi,jは、スラブグループｉを実現可能ロットｊに含める場合に「１」となり、そうでない場合に「０」となる要素からなる。
・コストｃj
コストｃjは、実現可能ロットｊに含まれるスラブグループｉを構成するスラブに応じて定まる。
【００３９】
<<制約条件>>
前述したように、集合分割問題ＭＰでは、各スラブグループｉをちょうど１つずつ含む実現可能ロットｊの組み合わせを求める。従って、行列Ａi,jにおいて、任意のスラブグループｉが属する実現可能ロットｊの集合の中から、１つの実現可能ロットｊだけが選択されなければならない。この制約条件は、以下の（１）式で表される。
【００４０】
【数１】
2020151734.tif 000003
【００４１】
<<目的関数>>
前述したように、集合分割問題ＭＰでは、実現可能ロットｊのコストｃjの総和が最小となるようにする。従って、目的関数は、以下の（２）式で表される。
【００４２】
【数２】
2020151734.tif 000004
【００４３】
<<コストｃjの具体例>>
本実施形態では、（２）式のコストｃjを以下のようにする場合を例に挙げる。
・キャスト数
コストｃjの総和は、基本的には、キャストの総数で表される。１つの実現可能ロットｊは１つのキャストと対応する。そこで、キャストの数を評価するために、各実現可能ロットｊについて製造コストＣCASTが発生するものとする。各実現可能ロットｊの製造コストＣCASTは同じ値である。
【００４４】
また、コストｃjには、製造コストＣCAST以外のコストを加えてもよい。本実施形態では、以下の余材量および鋼種数を、コストｃjに加える場合を例に挙げる。
・余材量
余材とは、生産量が定まっているロットに注文を割り当てても当該生産量に満たない場合に、当該ロットにおいて生産される製品であって、生産時においては、どの注文に紐付けられるのかが未定である製品をいう。余材量とは、そのような製品の量をいう。
溶鋼の成分の作り込みは転炉および二次精錬工程において実施されることから、鋼種はチャージ単位で製造される。したがって、或る鋼種を割り当てたスラブの総重量がチャージ重量（１チャージの重量）に満たない部分については、注文と紐付かない余材として製造される。余材は注文と紐付けられるまでスラブとしてヤードに滞留することから、仕掛在庫量の増加を招く。このため、可能な限り余材量が減少するように、同一の鋼種を割り当てたスラブの総重量がチャージ重量に近づくようにすること（好ましくは一致すること）が望まれる。
【００４５】
このように、製鋼工場では溶鋼の成分調整をチャージ単位で実施することから、或るキャストにおいて同一鋼種として製造するスラブの重量の合計が、チャージ重量（１チャージを構成する重量）の倍数に近づくようにすること（好ましくは一致すること）が望まれる。例えば、チャージ重量が２００トンであり、実現可能ロットｊに含まれるスラブのうち、或る鋼種で製造されるスラブの重量が５００トンである場合には、当該鋼種のスラブとして３チャージ分のスラブを製造することになる。従って、余材量は、１００（＝３×２００−５００）トンとなる。
【００４６】
実現可能ロットｊに含まれるスラブの合計重量を製造するために必要なチャージ数をｎjCHとし、チャージ重量をＷCHとし、実現可能ロットｊに属するスラブグループの重量をＷjSGとすると、余材量ＷjYは、以下の（３）式で表される。
【００４７】
【数３】
2020151734.tif 000005
【００４８】
実現可能ロットｊには、異なる鋼種のスラブグループが含まれることがある。このように実現可能ロットｊに異なる鋼種のスラブグループが含まれる場合には、鋼種毎に（３）式の計算を行い、それらの和を当該実現可能ロットｊに対する余材量ＷjYとする。
【００４９】
・鋼種数
同一の実現可能ロットｊ内において複数の異なる鋼種が共存する場合には、鋼種が切り替わるチャージ間においてタンディッシュ内にて溶鋼の混合部が発生する。このような実現可能ロットにおける異なる鋼種の接続部分を異鋼種継目と呼ぶ。この異鋼種継目部分の成分がスラブに求められる要求を満足しない場合にはスラブの一部を切断して破棄する。従って、異鋼種連々鋳による操業（即ち、異なる鋼種を連続して連続鋳造すること）を実施した場合には歩留が低下する。よって、同一の実現可能ロットｊ内における異鋼種継目の数は可能な限り少ない方が望ましい。即ち、実現可能ロットｊに含まれる鋼種の数ＮjGは少ない方が望ましい。
以上より、実現可能ロットｊのコストｃjは、以下の（４）式で表される。
【００５０】
【数４】
2020151734.tif 000006
【００５１】
（４）式において、ＣY、ＣGは、それぞれ、余材量、鋼種の数に対するコスト係数（重み係数）である。コスト係数ＣY、ＣGは、それぞれの評価項目をどの程度重視するかによって予め設定されるものであり、各評価項目間の評価のバランスを表す。尚、（４）式の右辺第１項の製造コストＣCASTについて（２）式の積算を行った値は、集合分割問題ＭＰの最適解として採用される実現可能ロットｊの総数に、製造コストＣCASTを掛けた値になる。従って、製造コストＣCASTは、実現可能ロットｊの数に対するコスト係数としての役割を有する。尚、製造コストＣCASTを「１」とする場合、（４）式の右辺第１項の製造コストＣCASTについて（２）式の積算を行った値は、集合分割問題ＭＰの最適解として採用される実現可能ロットｊの総数そのものになる。
集合分割問題構築部１０４は、行列Ａi,jの現在値から、（４）式の計算を行うことにより、当該行列Ａi,jに含まれる各列（各実現可能ロットｊ）のコストｃjを導出する。前述したように、最初のステップＳ２０４の処理では、行列Ａi,jの現在値は、初期値になる。２回目以降にステップＳ２０４の処理では、集合分割問題構築部１０４は、後述する列追加部１０９により新たに追加された列（実現可能ロットｊ）のコストｃjを導出する。
【００５２】
＜線形緩和問題構成部１０５、線形緩和問題構成ステップＳ２０５＞
線形緩和問題構成部１０５は、集合分割問題ＭＰを線形緩和した線形緩和問題ＬＰを構成する。即ち、線形緩和問題構成部１０５は、（１）式および（２）式に対し、０≦ｚj≦１の範囲の値をとり得るように決定変数ｚjを定義し直す。
【００５３】
＜双対解導出部１０６、双対解導出ステップＳ２０６＞
双対解導出部１０６は、集合分割問題ＭＰ（原問題）の線形緩和問題ＬＰを主問題とした場合の双対問題ＤＬＰの最適解である双対解を導出する。
集合分割問題ＭＰ（原問題）自体は０−１整数計画問題であるが、双対問題ＤＬＰは線形緩和問題（線形計画問題）になる。０−１整数計画問題である集合分割問題ＭＰ（原問題）の線形緩和問題を主問題とした場合の双対問題ＤＬＰは、元の集合分割問題ＭＰで使用した記号を用いれば、以下の（５）式の目的関数と、以下の（６）式の制約式とで表される。
【００５４】
【数５】
2020151734.tif 000007
【００５５】
前述したように双対変数λiは、双対問題ＤＬＰの決定変数であり、スラブグループｉごとに定められる連続変数（−∞＜λi＜∞）である。（６）式のＡj,iの行ｊは、実現可能ロットｊに対応する。（６）式のＡj,iの（１つの）行ｊは、当該行ｊに対応する実現可能ロットｊがスラブグループｉを含む場合に「１」となり、そうでない場合に「０」となる０−１変数を要素として含む。この要素は、＜列生成部１０７、ステップＳ２０７＞の項で説明する列生成子問題ＳＰで導出される解（実現可能ロットａの要素であるロット構成製品有無変数ａi（ｉ∈ＮI）と同じ意味の変数である。ここで、実現可能ロットａは、ａ＝｛ａ1，ａ2，・・・，ａi，・・・ａN｝とする。Ｎは、スラブグループ作成部１０２で作成されたスラブグループの数である。実現可能ロットａの要素であるロット構成製品有無変数ａiは、スラブグループｉが当該実現可能ロットａに含まれる場合に「１」となり、そうでない場合に「０」となる０−１変数である。双対変数λiは、集合分割問題ＭＰ（原問題）の目的関数（（２）式）の値の改善量に対応するので、できるだけ大きいΣλiを求めれば、集合分割問題ＭＰの目的関数のより良い下限値が得られることになる。従って、双対問題ＤＬＰの目的関数（（５）式）は、最大化問題となる。
【００５６】
双対解導出部１０６は、CPLEX（登録商標）等の公知のソルバーを用いて線形計画法による最適化計算を行うことにより、（６）式の制約式を満足する範囲で（５）式の目的関数の値を最大にする双対変数λiを、双対変数λiの最適解（即ち、双対解）として導出する。尚、集合分割問題の線形緩和問題を主問題とする双対問題自体は、非特許文献１に記載されているように公知の技術で実現できるので、ここでは、その詳細な説明を省略する。
【００５７】
＜列生成部１０７、列生成ステップＳ２０７＞
集合分割問題ＭＰにおいて、全ての実現可能ロットｊを列挙することは困難である。そこで、本実施形態では、行列Ａi,jに含める実現可能ロットｊを限定して、集合分割問題ＭＰを構成する。列生成部１０７は、双対解導出部１０６により導出された双対解（即ち、双対変数λiの最適解）を用いて、集合分割問題ＭＰ（即ち、行列Ａi,j）に追加する新たな実現可能ロット（列）を生成する。以下では、新たに追加する実現可能ロットを、必要に応じて、実現可能ロットａと称する。
【００５８】
新たな実現可能ロットａは、どのようなスラブグループｉの集まりでも良い訳ではない。即ち、新たな実現可能ロットａは、ロット（＝キャスト）として成立するための制約条件を満足することと、集合分割問題ＭＰ（原問題）の目的関数（（２）式）の値の改善に寄与することとの双方を満足する実現可能ロットａでなければならない。
【００５９】
そこで、集合分割問題ＭＰ（原問題）の最適解の候補、即ち新たに追加する列（新たな実現可能ロットａ）を求める列生成子問題ＳＰを、例えば、ｃ−Σi∈NIλi×ａiが最小になる要素（ロット構成製品有無変数）ａiを求める最適化問題とすることが考えられる。ここで、ｃは、実現可能ロットａのコストである。しかしながら、このようにすると、１回の列生成部１０７（列生成ステップＳ２０７）の処理に時間を要する。また、このようにすると、１回の列生成部１０７（列生成ステップＳ２０７）の処理で実現可能ロットａが１つしか導出されない。従って、より多くの実現可能ロットａを探索しようとすれば列生成部１０７（列生成ステップＳ２０７）を繰り返し計算しなければならず時間がかかる。そこで、本実施形態では、列生成部１０７は、以下のようにして、列生成子問題ＳＰの解（実現可能ロットａ）を導出する。
【００６０】
図５は、列生成子問題ＳＰの解を求める際に用いるグラフＧ（Ｖ，Ｅ）の一例を説明する図である。図５において、一点鎖線で示す領域５０１は、スラブ情報３００に含まれる全ての鋼種のスラブグループｉの集合ＮIを含む領域である。領域５０１内に示す頂点５２１〜５２７（○で示すもの）は、それぞれ１つのスラブグループｉに対応する。領域５０１外に示す２つの点のうちの一方（○の中にｓが付されているもの）は始点５１１であり、他方（○の中にｅが付されているもの）は終点５１２である。始点５１１および終点５１２は、スラブグループ情報４００に含まれるどのスラブグループにも対応しない。Ｇ（Ｖ，Ｅ）のＶは、これら始点５１１、終点５１２、および頂点５２１〜５２７の集合を表す。
【００６１】
始点５１１と、領域５０１内の全ての頂点５２１〜５２７とがそれぞれ枝で相互に接続される。終点５１２と、領域５０１内の全ての頂点５２１〜５２７とがそれぞれ枝で相互に接続される。領域５０１内の任意の２つの頂点のうち、連続して製造することができるスラブグループｉに対応する２つの頂点が枝で接続される。一方、領域５０１内の任意の２つの頂点のうち、連続して製造することができないスラブグループｉに対応する２つの頂点は枝で接続されない。例えば、頂点５２１に対応するスラブグループｉと、頂点５２２に対応するスラブグループｉとは連続して製造することができないスラブグループｉであるので、頂点５２１、５２２は枝で接続されない。一方、頂点５２２に対応するスラブグループｉと、頂点５２３に対応するスラブグループｉとは連続して製造することができるので、頂点５２２、５２３は枝で接続される。
【００６２】
本実施形態では、任意の２つのスラブグループｉ、ｉ'において、スラブグループｉのスラブ幅の最小値が、スラブグループｉ'のスラブ幅の最大値以下であり、スラブグループｉのスラブ幅の最大値が、スラブグループｉ'のスラブ幅の最小値以上である場合に、当該２つのスラブグループｉ、ｉ'に対応する頂点を枝で接続する。Ｇ（Ｖ，Ｅ）のＥは、これらの枝の集合を表す。
【００６３】
また、領域５３１内の頂点５２１〜５２４は、鋼種Ａのスラブグループに対応する頂点を示す。領域５３２内の頂点５２５〜５２６は、鋼種Ｂのスラブグループに対応する頂点を示す。領域５３３内の頂点５２７は、鋼種Ｃのスラブグループに対応する頂点を示す。尚、図５では、表記の都合上、スラブグループの集合ＮIを示す領域５０１の中に鋼種Ａ〜Ｃのみを示すが、実際には、スラブ情報３００に含まれる全ての鋼種がスラブグループの集合ＮIを示す領域５０１の中に含まれる。また、スラブグループの集合ＮIを示す領域５０１内に７つの頂点５２１〜５２７のみを示すが、スラブグループの集合ＮIを示す領域５０１内に、スラブ情報３００に含まれるスラブグループの総数と同じ数の頂点が含まれる。また、本実施形態では、説明を簡単にするために、１つのスラブグループに対する鋼種が定まっている場合を例に挙げて示す。即ち、１つのスラブグループに対し、複数の鋼種の中から、製造する鋼種を選択することができることはないものとする（例えば、鋼種Ａと鋼種Ｂの双方で製造することが可能なスラブグループはないものとする）。
【００６４】
また、枝をｅと表記すると、枝ｅで相互に接続される２つのスラブグループｉの鋼種が異なる場合、当該枝ｅに対しコストＣｅ（ｅ）が設定される。本実施形態では、前述した鋼種の数に対するコスト係数ＣGがコストＣｅ（ｅ）として設定される（（４）式を参照）。図５に示す例では、頂点５２３、５２７を接続する枝と、頂点５２４、５２５を接続する枝ｅに対しコストＣｅ（ｅ）が設定される。一方、その他の枝ｅに対してコストＣｅ（ｅ）は設定されない（コストＣｅ（ｅ）は０（ゼロ）になる）。本実施形態では、グラフＧ（Ｖ，Ｅ）が無向グラフである場合を例に挙げて説明する。尚、枝ｅで接続される２つの頂点に対するスラブグループの製造順でコストＣｅ（ｅ）を異ならせる場合には、グラフＧ（Ｖ，Ｅ）を有向グラフとする。
【００６５】
列生成部１０７は、以上のようなグラフＧ（Ｖ，Ｅ）を作成する。本実施形態では、列生成部１０７は、始点５１１から終点５１２（または頂点５２１〜５２７）に至る経路に含まれるスラブグループｉに対する双対変数λiの最適解（双対解）と、当該経路に含まれる枝ｅのコストＣｅ（ｅ）と、当該経路に含まれるスラブグループｉがキャストとして成立するための条件を示すロット成立制約と、を用いて、当該経路が、集合分割問題ＭＰ（原問題）の最適解の候補となる列（実現可能ロットａ）に対応する経路であるか否かを判定する。本実施形態では、ロット成立制約として、スラブ重量の合計値が、予め設定される上限値である最大ロット重量ＭａｘＷ以下であるという制約を用いる。列生成部１０７は、このようなロット成立制約を満たし、且つ、当該経路に含まれる枝ｅのコストＣｅ（ｅ）の総和から、当該経路に含まれるスラブグループｉに対する双対変数λiの最適解（双対解）の総和を減算した値が最小になる経路を、当該経路に含まれるスラブグループｉの数毎（後述するステップ数ｈ毎）に探索する。以下の説明では、このような経路を、必要に応じて最短経路と称する。列生成部１０７は、このような最短経路に含まれる全てのスラブグループを、列生成子問題ＳＰの解（実現可能ロットａ）の１つとする。
【００６６】
また、本実施形態では、列生成部１０７は、最短経路を探索する際に、先行点（始点５１１または頂点５２１〜５２７）と当該先行点と枝ｅを介して接続される後行点（終点５１２または頂点５２１〜５２７）との２つの点において、ロット成立制約を満たすか否かと、これら２つの点が（暫定的な）最短経路になるか否かとを、始点５１１を初期の第１の点として判定する。そのために、列生成部１０７は、始点５１１から先行点を経由して後行点に至る（暫定的な）最短経路に含まれる枝ｅのコストＣｅ（ｅ）の総和から、当該（暫定的な）最短経路に含まれるスラブグループｉに対する双対変数λiの最適解（双対解）の総和を減算した値を記憶する。また、列生成部１０７は、始点５１１から先行点を経由して後行点に至る（暫定的な）最短経路に含まれるスラブグループｉにおけるスラブ重量の総和を記憶する。
【００６７】
以上のようにすることにより、列生成部１０７は、当該後行点を先行点とし、当該先行点と枝ｅを介して接続される点を後行点として先行点および後行点を更新した場合に、更新後の先行点が更新前に後行点であるときに記憶した情報を用いて、始点５１１から当該更新後の先行点を経由して当該更新後の後行点に至る経路が（暫定的な）最短経路であるか否かの判定と、当該経路に含まれるスラブグループｉがロット成立制約を満たすか否かの判定と、を行うことができる。即ち、列生成部１０７は、始点５１１から先行点に至る経路が（暫定的な）最短経路であるか否かをその都度判定する必要はない。尚、先行点が始点５１１（初期の点）である場合、列生成部１０７は、始点５１１から後行点に至る経路において、ロット成立制約を満たすか否かの判定と、最短経路の候補であるか否かの判定とを行う。
【００６８】
ここで、始点５１１から別の点（頂点５２１〜５２７または終点５１２）に至るまでに経由した枝ｅの数をステップ数ｈと定義する。例えば、始点５１１から頂点５２１に至る経路のステップ数ｈは「１」であり、始点５１１から頂点５２１を経由して終点５１２に至る経路のステップ数ｈは「２」である。本実施形態では、１つの経路において同じ頂点が２つ含まれることはないものとする。同様に、本実施形態では、１つの経路において始点５１１、終点５１２が、それぞれ２つ含まれることはないものとする。
【００６９】
図６は、グラフＧ（Ｖ，Ｅ）を用いて、列生成子問題ＳＰの解（実現可能ロットａ）を導出する方法の一例を説明するフローチャートである。図７は、図６のフローチャートの処理を補足説明するためのグラフＧ（Ｖ，Ｅ）を示す図である。図７は、説明が煩雑になることを避けるために、図５に示すグラフＧ（Ｖ，Ｅ）のうち、始点５１１、終点５１２、および頂点５２１〜５２４のみを示した図である。
【００７０】
また、図７に示すグラフＧ（Ｖ，Ｅ）において、始点５１１、終点５１２、および頂点５２１〜５２４を示す○の中に付されている数字は、当該スラブグループｉのスラブグループＮｏ．を表す。ただし、始点５１１および終点５１２に対応するスラブグループｉはダミーのスラブグループｉ（スラブグループ情報４００には含まれない架空のスラブグループ）とする。点５１１従って、図７に示す頂点５２１〜５２４に対応するスラブグループｉのスラブグループＮｏ．（「２」〜「５」）は、例えば、実際のスラブグループＮｏ．に「１」を加算したものとする。なお、始点５１１および終点５１２に対応するスラブグループｉのスラブ重量は０（ゼロ）とし、始点５１１または終点５１２に接続する枝ｅに対するコストＣｅ（ｅ）は０（ゼロ）とする。
以下、図７を参照しながら、図６のフローチャートによる処理を説明する。列生成部１０７は、図２の列生成ステップＳ２０７において、図５（図７）のようなグラフＧを作成した後に、図６のフローチャートの処理を開始する。
【００７１】
まず、ステップＳ６０１において、列生成部１０７は、ループ回数ｌの現在値を「１」に設定する。ループ回数ｌは、ステップＳ６０２〜Ｓ６１６の処理の繰り返し数に対応する。ループ回数ｌを設定する意味については、ステップＳ６１５の処理の説明の際に併せて説明する。また、列生成部１０７は、先行点ｉ１のスラブグループＮｏ．の現在値を「１」に設定する（ｌ＝１、ｉ１＝１）。ここでは、始点５１１が設定される。
【００７２】
次に、ステップＳ６０２において、列生成部１０７は、ステップＳ６０１またはＳ６１４において現在設定されている先行点ｉ１に枝ｅを介して接続される点（頂点または終点）の集合である後行点集合Ｉ２（ｉ１）から後行点ｉ２の１つを選択する。また、列生成部１０７は、ステップＳ６０１またはＳ６１４において現在設定されている先行点ｉ１に接続される枝ｅの集合である枝集合Ｅ（ｉ１）から、当該先行点ｉ１と当該後行点ｉ２とを接続する枝ｅとを選択する。図７において、始点５１１が先行点ｉ１として選択された場合、後行点集合Ｉ２（１）の要素は、スラブグループＮｏ．が「２」、「３」、「４」、「５」のスラブグループｉに対応する頂点５２１〜５２４である。枝集合Ｅ（１）の要素は、始点５１１と、頂点５２１〜５２４とを接続する枝ｅである。例えば、これらの頂点５２１〜５２４から、スラブグループＮｏ．が「２」のスラブグループｉに対応する頂点５２３が後行点ｉ２として選択され、始点５１１および頂点５２３を接続する枝ｅが選択される。
【００７３】
次に、ステップＳ６０３において、列生成部１０７は、ステップ数ｈの現在値を「１」に設定する。これにより、始点５１１から先行点ｉ１を経由して後行点ｉ２にステップ数ｈが「１」（１ステップ）で到達する経路が設定される。尚、先行点ｉ１が始点５１１である場合には、始点５１１（先行点ｉ１）から後行点ｉ２にステップ数ｈが「１」で到達する経路が指定される。例えば、始点５１１が先行点ｉ１として設定され、頂点５２３が後行点ｉ２として選択された場合、始点５１１から頂点５２３まで至る経路のうちステップ数ｈが「１」の経路が設定される。このような経路は、始点５１１から頂点５２３に直接到達する経路１つである。一方、始点５１１から頂点５２３まで至る経路のうちステップ数ｈが「２」の経路には、始点５１１から頂点５２２を経由して頂点５２３に至る経路と、始点５１１から頂点５２４を経由して頂点５２３に至る経路と、始点５１１から頂点５２１を経由して頂点５２３に至る経路と、の３つの経路がある。
【００７４】
次に、ステップＳ６０４において、列生成部１０７は、現在選択されている後行点ｉ２が、（暫定的な）最短経路path（i1,h-1）に含まれるか否かを判定する。（暫定的な）最短経路path（i1,h-1）は、始点５１１から先行点ｉ１にステップ数ｈ−１で至る（暫定的な）最短経路を示す。ステップ数ｈが「１」のときは、ステップ数ｈ−１は「０」になるため、後行点ｉ２が、（暫定的な）最短経路path（i1,h-1）に含まれることはない。
【００７５】
一方、後行点ｉ２が、（暫定的な）最短経路path（i1,h-1）に含まれる例について説明する。例えば、先行点ｉ１が頂点５２４であり、ステップ数ｈが「３」であるとする。この場合、（暫定的な）最短経路path（i1,h-1）は、path（４,２）になる。このとき、（暫定的な）最短経路path（２,１）が始点５１１から頂点５２３に至る経路であるとすると、後行点ｉ２として頂点５２３を更に選択することは、（暫定的な）最短経路に、頂点５２３を２回含めることになる。これは、同じスラブグループｉのスラブを同一のキャストで２回製造することを示す。このような製造は行われないため、（暫定的な）最短経路に同じ頂点が複数回含まれないようにする必要がある。
【００７６】
そこで、本実施形態では、ステップＳ６０４において、列生成部１０７は、後行点ｉ２が、（暫定的な）最短経路path（i1,h-1）に含まれると判定した場合（ステップＳ６０４でＹＥＳの場合）には、ステップＳ６０５以降で行う、ステップＳ６０３またはＳ６１０において現在設定されている経路が（暫定的な）最短経路であるか否かの確認を行わずに、後述するステップＳ６１０に処理を進める。
【００７７】
一方、ステップＳ６０４の判定の結果、後行点ｉ２が、（暫定的な）最短経路path（i1,h-1）に含まれない場合（ステップＳ６０４でＮＯの場合）、処理は、ステップＳ６０５に進む。処理がステップＳ６０５に進むと、列生成部１０７は、ステップＳ６０３またはＳ６１０において現在設定されている経路に含まれるスラブグループｉがロット成立制約を満たすか否かを判定する。前述したように本実施形態では、ロット成立制約として、スラブ重量の合計値が、最大ロット重量ＭａｘＷ以下であるという制約を用いる。
【００７８】
従って、ステップＳ６０５では、列生成部１０７は、ステップＳ６０３またはＳ６１０において現在設定されている経路に含まれるスラブグループｉのスラブ重量の合計値が、最大ロット重量ＭａｘＷ以下である場合に、当該経路に含まれるスラブグループｉはロット成立制約を満たすと判定し、そうでない場合に、当該経路に含まれるスラブグループｉはロット成立制約を満たさないと判定する。
【００７９】
このとき、列生成部１０７は、現在設定されている経路に含まれるスラブグループｉのスラブ重量の合計値を以下の計算を行うことにより求める。即ち、列生成部１０７は、始点５１１から先行点ｉ１にステップ数が「ｈ−１」で至る（暫定的な）最短経路に含まれるスラブグループｉのスラブ重量の合計値であるロット重量ｗ（i1,h-1）に、後行点ｉ２に対応するスラブグループｉのスラブ重量Ｗ（i2）を加算する。ここで、ロット重量ｗ（i1,h-1）は、後述するステップＳ６０８で導出されているものである。尚、ステップ数ｈが「１」である場合、（ステップ数ｈ−１（＝０）は、スラブ重量が「０（ゼロ）」である始点５１１を示すものであるため）ロット重量ｗ（i1,h-1）は「０（ゼロ）」になる。
【００８０】
以上のステップＳ６０５の判定の結果、現在設定されている経路に含まれるスラブグループｉがロット成立制約を満たさない場合（ステップＳ６０５でＮＯの場合）、当該経路を最短経路とすることはできない。この場合、ステップＳ６０６以降で行う、現在設定されている経路が（暫定的な）最短経路であるか否かの確認を行わずに、後述するステップＳ６１０に処理を進める。一方、現在設定されている経路に含まれるスラブグループｉがロット成立制約を満たす場合（ステップＳ６０５でＹＥＳの場合）、処理はステップＳ６０６に進む。
【００８１】
処理がステップＳ６０６に進むと、列生成部１０７は、ステップＳ６０３またはＳ６１０において現在設定されている経路を、始点５１１から先行点ｉ１を経由して後行点ｉ２にステップ数が「ｈ」で至る（暫定的な）最短経路とし、以下の（７）式により、列追加判定用のコストcalcostを算出する。
calcost＝cost［i1,h-1］＋Ｃｅ（ｅ）−λi2  ・・・（７）
コストcost［i1,h-1］は、始点５１１からステップ数が「ｈ−１」で先行点ｉ１に至る（暫定的な）最短経路に含まれるスラブグループｉで構成される実現可能ロットａに対するコスト（tmp＿cost）である。λi2は、後行点ｉ２に対応するスラブグループｉに対する双対変数λiの最適解（双対解）である。Ｃｅ（ｅ）は、先行点ｉ１と後行点ｉ２とを接続する枝ｅに対して設定されているコストである。尚、（暫定的な）最短経路に含まれる枝ｅに対するコストＣ（ｅ）の総和が、当該（暫定的な）最短経路に含まれる実現可能ロットａのコストになる。当該経路に含まれる枝ｅの集合をＥｃｏｓｔとすると、実現可能ロットａのコストは、Σe∈EcostＣｅ（ｅ）となる。
【００８２】
そして、列生成部１０７は、コストcalcostを、現在設定されている経路に含まれるスラブグループｉで構成される実現可能ロットａに対する列追加判定用のコストtmp＿costとする。
尚、ステップ数ｈが「１」である場合、（７）式のcost［i1,h-1］は０（ゼロ）である。例えば、始点５１１が先行点ｉ１として選択され、頂点５２３が後行点ｉ２として選択され、ステップ数ｈが「１」である場合、始点５１１と頂点５２３とを接続する枝ｅに対して設定されているコストＣｅ（ｅ）から、頂点５２３に対応するスラブグループＮｏ．が「２」のスラブグループｉに対する双対変数λ2の最適解（双対解）を引いた値がコストcalcost（＝tmp＿cost）として算出される。
【００８３】
また、頂点５２２が先行点ｉ１として選択され、頂点５２３が後行点ｉ２として選択され、ステップ数ｈの現在値が「２」であるとする。また、ステップ数ｈが「１」であったときの（暫定的な）最短経路が先行点ｉ１（始点５１１）から頂点５２２に至る経路であるとする。この場合、コストcost［i1,h-1］（＝cost［３,１］）は、始点５１１と頂点５２２とを接続する枝ｅに対して設定されているコストＣｅ（ｅ）から、頂点５２２に対応するスラブグループＮｏ．が「３」のスラブグループ３に対する双対変数λ3の最適解（双対解）を引いた値である。この場合、コストcalcost（＝tmp＿cost）は、（７）式より、このコストcost［i1,h-1］（＝cost［３,１］）と、頂点５２２と頂点５２３とを接続する枝ｅに対して設定されているコストＣｅ（ｅ）との和から、頂点７０２に対応するスラブグループＮｏ．が「２」のスラブグループｉに対する双対変数λ2の最適解（双対解）を引いた値である。
【００８４】
また、（暫定的な）最短経路path（i1,h-1）が存在せず、コストcost［i1,h-1］が存在しない場合、（７）式のコストcost［i1,h-1］には、列追加判定用のコストtmp＿costとしてとり得る値よりもはるかに大きな値が設定される。このようにすることで、コストcost［i1,h-1］が存在しない場合には、列追加判定用のコストtmp＿costが極めて大きな値となる。従って、当該列追加判定用のコストtmp＿costが後述するステップＳ６０８で最終的にコストcost（i2,ｈ）として残らないようになる。
【００８５】
次に、ステップＳ６０７において、列生成部１０７は、ステップＳ６０６で設定された列追加判定用のコストtmp＿costが、既導出の列追加判定用のコストcost（i2，ｈ）よりも小さいか否かを判定する。列追加判定用のコストcost（i2，ｈ）は、後述するステップＳ６０８で導出（更新）されるものである。既導出の列追加判定用のコストcost（i2，ｈ）は、ステップＳ６０３またはＳ６１０において現在設定されている経路と後行点ｉ２およびステップ数ｈが同じである場合の値として既に導出されている列追加判定用のコストの最小値である。尚、既導出の列追加判定用のコストcost（i2、ｈ）が存在しない場合には、列追加判定用のコストtmp＿costは、既導出の列追加判定用のコストcost（i2、ｈ）よりも小さいと無条件で判定される（ステップＳ６０７でＹＥＳと判定される）ものとする。ステップＳ６０７の判定を行っているのは、ステップＳ６０６で設定された列追加判定用のコストtmp＿costが、既導出の列追加判定用のコストcost（i2,ｈ）よりも小さくない場合には、ステップＳ６０３またはＳ６１０において現在設定されている経路を（暫定的な）最短経路とすることはできないからである。
【００８６】
例えば、頂点５２３におけるステップ数ｈが「２」であるときの（暫定的な）最短経路として、始点５１１から頂点５２４を経由して後行点ｉ２（頂点５２３）に至る経路が既に得られているとする。この場合、既導出の列追加判定用のコストcost（i2,ｈ）（＝cost[２,２]）として、当該経路に含まれるスラブグループｉで構成される実現可能ロットａに対する列追加判定用のコストが得られていることになる。
【００８７】
このような列追加判定用のコストcost（i2、ｈ）が設定されている状態で、ステップＳ６０６で算出したコストcalcost（＝tmp＿cost）として、始点５１１から頂点５２２を経由してステップ数ｈが「２」で頂点５２３に至る経路に含まれるスラブグループｉで構成される実現可能ロットａに対する列追加判定用のコストが導出されたとする。
この場合、ステップＳ６０７においては、始点５１１から頂点５２４を経由してステップ数ｈが「２」で頂点５２３に至る経路に含まれるスラブグループｉで構成される実現可能ロットａに対する列追加判定用のコストよりも、始点５１１から頂点５２２を経由してステップ数ｈが「２」で頂点５２３に至る経路に含まれるスラブグループｉで構成される実現可能ロットａに対する列追加判定用のコストが小さいか否かが判定される。
【００８８】
以上のようにして行われるステップＳ６０７の判定の結果、ステップＳ６０６で設定された列追加判定用のコストtmp＿costが、既導出の列追加判定用のコストcost（i2,ｈ）よりも小さくない場合（ステップＳ６０７でＮＯの場合）、現在設定されている経路を（暫定的な）最短経路とすることはできない。この場合、ステップＳ６０８で行う、始点５１１から先行点ｉ１を経由して後行点ｉ２にステップ数が「ｈ」で至る（暫定的な）最短経路の更新を行わずに、後述するステップＳ６１０に処理を進める。
【００８９】
一方、ステップＳ６０６で設定された列追加判定用のコストtmp＿costが、既導出の列追加判定用のコストcost（i2,ｈ）よりも小さい場合、処理はステップＳ６０８に進む。処理がステップＳ６０８に進むと、列生成部１０７は、既導出の列追加判定用のコストcost（i2,ｈ）を直前のステップＳ６０６で設定された列追加判定用のコストtmp＿costに変更して、既導出の列追加判定用のコストcost（i2,ｈ）を更新する。
また、列生成部１０７は、始点５１１から先行点ｉ１を経由して後行点ｉ２にステップ数が「ｈ」で至る（暫定的な）最短経路path（i2,ｈ）を、ステップＳ６０３またはＳ６１０において現在設定されている経路に更新する。
【００９０】
また、列生成部１０７は、点５１１から先行点ｉ１を経由して後行点ｉ２にステップ数が「ｈ」で至る（暫定的な）最短経路に含まれるスラブグループｉのスラブ重量の合計値であるロット重量ｗ（i2,ｈ）を、現在設定されている経路に含まれるスラブグループｉのスラブ重量の合計値に変更してロット重量ｗ（i2,ｈ）を更新する。尚、ステップＳ６０５で使用されるロット重量ｗ（i1,h-1）は、ステップＳ６０８で更新されるロット重量ｗ（i2,h）の中から（ｉ１と同じｉ２を持ちｈ−１と同じｈを持つものが）選択される。
ステップＳ６０８では、ロット成立制約を満たす実現可能ロットａであって、且つ、列追加判定用のコストが既導出のものよりも小さくなる実現可能ロットａに基づく情報が記憶されるので、製造することができない実現可能ロットａや、集合分割問題の解の候補とならない実現可能ロットａ（列）が後述するステップＳ２０９で追加されることを抑制することができる。
【００９１】
前述したステップＳ６０７における具体例で、始点５１１から頂点５２４を経由してステップ数ｈが「２」で頂点５２３に至る経路に含まれるスラブグループｉで構成される実現可能ロットａに対する列追加判定用のコストよりも、始点５１１から頂点５２２を経由してステップ数ｈが「２」で頂点５２３に至る経路に含まれるスラブグループｉで構成される実現可能ロットａに対する列追加判定用のコストが小さい場合（ステップＳ６０７でＹＥＳの場合）、ステップＳ６０８では、以下の処理が行われる。
【００９２】
まず、列生成部１０７は、始点５１１から頂点５２４を経由してステップ数ｈが「２」で頂点５２３に至る経路に含まれるスラブグループｉで構成される実現可能ロットａに対する列追加判定用コストから、始点５１１から頂点５２２を経由してステップ数ｈが「２」で頂点５２３に至る経路に含まれるスラブグループｉで構成される実現可能ロットａに対する列追加判定用のコストに、コストcost（i2,ｈ）（＝cost（２,２））を変更する。また、列生成部１０７は、始点５１１から頂点５２４を経由してステップ数ｈが「２」で頂点５２３に至る経路から、始点５１１から頂点５２２を経由してステップ数ｈが「２」で頂点５２３に至る経路に、（暫定的な）最短経路path（i2,ｈ）（＝path（２,２））を変更する。また、列生成部１０７は、始点５１１から頂点５２４を経由してステップ数ｈが「２」で頂点５２３に至る経路に含まれるスラブグループｉのスラブ重量の合計値から、始点５１１から頂点５２２を経由してステップ数ｈが「２」で頂点５２３に至る経路に含まれるスラブグループｉのスラブ重量の合計値に、ロット重量ｗ（i2,ｈ）（＝ｗ（２,２））を変更する。
【００９３】
次に、ステップＳ６０９において、列生成部１０７は、ステップ数ｈが上限値ｈmax以下であるか否かを判定する。上限値ｈmaxとして、例えば、ステップ数ｈとしてとり得る最大値を採用することができる。例えば、全ての頂点が枝ｅで接続される場合、上限値ｈmaxとして、スラブグループＮｏ．の最大値（図７に示す例では「６」）を用いることができる。
この判定の結果、ステップ数ｈが上限値ｈmax以下である場合（ステップＳ６０９でＹＥＳの場合）、処理はステップＳ６１０に進む。
【００９４】
処理がステップＳ６１０に進むと、列生成部１０７は、ステップ数ｈに「１」を加算してステップ数ｈを更新する。これにより、始点５１１から先行点ｉ１を経由して後行点ｉ２にステップ数ｈが「ｈ＋１」（ｈ＋１ステップ）で到達する経路が設定される。そして、処理はステップＳ６０４に戻る。例えば、先行点ｉ１が始点５１１であり、後行点ｉ２が頂点５２３であり、更新前のステップ数ｈが「１」である場合、始点５１１から頂点５２３にステップ数ｈが「２」で至る経路について、ステップＳ６０４〜Ｓ６０８の処理が行われる。以上のようにして、ステップ数ｈが上限値ｈmax以下でなくなるまで、ステップＳ６０４〜Ｓ６１０の処理が繰り返し実行される。
【００９５】
そして、ステップＳ６０９において、ステップ数ｈが上限値ｈmax以下でないと判定されると（ステップＳ６０９でＹＥＳと判定されると）、処理はステップＳ６１１に進む。処理がステップＳ６１１に進むと、列生成部１０７は、ステップＳ６０１またはＳ６１４において現在設定されている先行点ｉ１に枝ｅを介して接続される点（頂点または終点）の集合である後行点集合Ｉ２（ｉ１）が空集合φであるか否かを判定する。即ち、列生成部１０７は、現在設定されている先行点ｉ１に枝ｅを介して接続される点（頂点または終点）の全てについて、ステップＳ６０２〜Ｓ６１０の処理を実行したか否かを判定する。例えば、先行点ｉ１が始点５１１である場合、列生成部１０７は、始点５１１に枝ｅを介して接続される頂点５２〜５２４の全てについて、ステップＳ６０２〜Ｓ６１０の処理を実行したか否かを判定する。
【００９６】
この判定の結果、ステップＳ６０１またはＳ６１４において現在設定されている先行点ｉ１に枝ｅを介して接続される点（頂点または終点）の集合である後行点集合Ｉ２（ｉ１）が空集合φでない場合（ステップＳ６１１でＮＯの場合）、処理はステップＳ６１２に進む。処理がステップＳ６１２に進むと、列生成部１０７は、後行点集合Ｉ２（ｉ１）から、直近のステップＳ６０２で選択した後行点ｉ２を除く。また、列生成部１０７は、現在設定されている先行点ｉ１と直近のステップＳ６０２で選択した後行点ｉ２を接続する枝ｅを枝集合Ｅ（ｉ１）から除く。列生成部１０７は、以上のようにして、後行点集合Ｉ２（ｉ１）および枝集合Ｅ（ｉ１）を更新する。そして、処理はステップＳ６０２に戻り、更新後の後行点集合Ｉ２（ｉ１）および枝集合Ｅ（ｉ１）について、ステップＳ６０２〜Ｓ６１０の処理が実行される。
【００９７】
例えば、先行点ｉ１が始点５１１である場合、後行点集合Ｉ２（ｉ１）（＝Ｉ２（１））の要素は、頂点５２１〜５２４である。この状況においてステップＳ６０２で後行点ｉ２として頂点５２１が選択された場合、その後のステップＳ６１２において、後行点集合Ｉ２（ｉ１）の要素は、頂点５２２〜５２４に更新される。この場合、その後のステップＳ６０２では、後行点ｉ２として、頂点５２２〜５２４の何れか１つが選択される。
以上のように、ステップＳ６０１またはＳ６１４において現在設定されている先行点ｉ１に枝ｅを介して接続される点の全てについてステップＳ６０２〜Ｓ６０９の処理が実行されるまで、ステップＳ６０２〜Ｓ６１１の処理が繰り返し実行される。
【００９８】
そして、ステップＳ６１１において、ステップＳ６０１またはＳ６１４において現在設定されている先行点ｉ１に枝ｅを介して接続される点（頂点または終点）の集合である後行点集合Ｉ２（ｉ１）が空集合φであると判定されると（ステップＳ６１１でＹＥＳと判定されると）、処理はステップＳ６１３に進む。処理がステップＳ６１３に進むと、列生成部１０７は、先行点ｉ１（のスラブグループＮｏ．）が上限値ｉmax以下であるか否かを判定する。上限値ｉmaxとして、例えば、スラブグループＮｏ．の最大値から「１」を減算した値（図７に示す例では「５」）を採用することができる。
【００９９】
この判定の結果、先行点ｉ１（のスラブグループＮｏ．）が上限値ｉmax以下である場合（ステップＳ６１３でＹＥＳの場合）、処理はステップＳ６１４に進む。処理がステップＳ６１４に進むと、列生成部１０７は、先行点ｉ１（のスラブグループＮｏ．）に「１」を加算して先行点ｉ１（のスラブグループＮｏ．）を更新する。そして、処理はステップＳ６０２に戻り、更新後の先行点ｉ１について、ステップＳ６０２〜Ｓ６１２の処理が実行される。
【０１００】
例えば、更新前の先行点ｉ１が始点５１１である場合、ステップＳ６１４では、先行点ｉ１として頂点５２３が設定される。この場合、その後のステップＳ６０２では、頂点５２３に枝ｅを介して接続される点の集合である後行点集合Ｉ２（ｉ２）が設定される。尚、頂点５２３に接続される点の集合には始点５１１も含まれる。しかしながら、始点５１１が後行点ｉ２である場合、始点５１１は必ず最短経路に含まれる。従って、この場合、ステップＳ６０４では、当該後行点ｉ２（始点５１１）は、（暫定的な）最短経路path（i1,h-1）に含まれている（ＹＥＳ）と判定される。
【０１０１】
以上のように、始点５１１および全ての頂点５２１〜５２４を先行点ｉ１としてステップＳ６０２〜Ｓ６１２の処理が実行されるまで、ステップＳ６０２〜Ｓ６１４の処理が繰り返し実行される。
そして、ステップＳ６１３において、先行点ｉ１（のスラブグループＮｏ．）が上限値ｉmax以下でないと判定されると（ステップＳ６１３でＹＥＳと判定されると）、処理はステップＳ６１５に進む。処理がステップＳ６１５に進むと、列生成部１０７は、ループ回数ｌとして、上限値ｌmax以下であるか否かを判定する。上限値ｌmaxは、例えば、ループ回数ｌとしてとり得る最大値を採用することができる。例えば、算出し得る全てのコストcalcost（tmp＿cost）が導出されると、ループ回数ｌが上限値ｌmaxを超えたと判定することができる。例えば、全ての頂点が枝ｅで接続される場合、上限値ｌmaxとして、スラブグループＮｏ．の最大値（図７に示す例では「７」）を用いることができる。
【０１０２】
ここで、ループ回数ｌを設定する必要がある理由の一例を説明する。
例えば、先行点ｉ１が始点５１１であり、後行点ｉ２が頂点５２３であり、ステップ数ｈが「１」である場合、ステップＳ６０６においては、スラブグループＮｏ．が「２」のスラブグループで構成される実現可能ロットａに対する列追加判定用のコストcalcost（tmp＿cost）として計算される。そして、ステップＳ６０８においては、当該コストcalcost（tmp＿cost）がcost（i2,ｈ）（＝cost（２,１））として設定される。また、（暫定的な）最短経路path（i2,ｈ）（＝path（２,１））として、始点５１１からステップ数ｈが「１」で頂点５２３に至る経路が設定される。
【０１０３】
その後、ステップＳ６０９において、ステップ数ｈが上限値ｈmax以下であると判定され（ＹＥＳと判定され）、ステップＳ６１０において、ステップ数ｈが「２」に更新される。この場合、先行点ｉ１である始点５１１から後行点ｉ２である頂点５２３にステップ数ｈが「２」で至る経路は、始点５１１から頂点５２２を経由して頂点５２３に至る経路と、始点５１１から頂点５２４を経由して頂点５２３に至る経路と、始点５１１から頂点５２１を経由して頂点５２３に至る経路との３つの経路がある。しかしながら、コストcost［i1,h-1］（＝cost［３,１］、cost［４,１］、cost［５,１］））が得られていないため、これら３つの経路のうち、どの経路が（暫定的な）最短経路path（i1,１）であるのかが不明である。このため、ステップＳ６０６において、（７）式のcost［i1,１］として、列追加判定用のコストtmp＿costとしてとり得る値よりもはるかに大きな値が設定される。従って、ステップＳ６０８において、cost（i2,ｈ）（＝cost（２,２））として極めて大きな値が設定される。このため、後行点ｉ２が頂点５２３であり、ステップ数ｈが「２」である場合の経路が最短経路であるか否かの探索が実質的に行われない。
【０１０４】
その後、ステップＳ６０９において、ステップ数ｈが上限値ｈmax以下でないと判定されると（ＮＯと判定されると）、後行点ｉ２が頂点５２２である場合の処理がステップＳ６０２〜Ｓ６１２で行われる。そうすると、先行点ｉ１を始点５１１とし、後行点ｉ２を頂点５２２とし、ステップ数ｈを「１」としたときのコストが求められる。そうすると、始点５１１から、ステップ数ｈが「１」で先行点ｉ１（頂点５２２）に至る（暫定的な）最短経路に含まれるスラブグループｉで構成される実現可能ロットａに対する列追加判定用のコストcost［i1,h-1］（＝cost［i1,１］）が求められる。従って、この情報を使って（７）式の計算を行うことにより、後行点ｉ２が「２」であり、ステップ数ｈが「２」である場合に、ステップＳ６０８において、cost（i2,h）（＝cost（２,２））として極めて大きな値が設定されない。即ち、後行点ｉ２が頂点５２３であり、ステップ数ｈが「２」である場合の経路が最短経路であるか否かの探索を行える。しかしながら、スラブグループＮｏ．ｉを「１」に戻したうえで、ステップＳ６０２〜Ｓ６１４の処理をもう一度行わないと、先行点ｉ１が始点５１１であり、後行点が頂点５２３であり、ステップ数ｈが「２」である場合の処理を行うことができない。従って、スラブグループＮｏ．ｉを「１」に戻したうえで、ステップＳ６０２〜Ｓ６１４の処理を繰り返す必要がある。このため、ループ回数ｌを設定して、スラブグループＮｏ．ｉを「１」に戻したうえで、ステップＳ６０２〜Ｓ６１４の処理を繰り返すことができるようにする。
【０１０５】
図６の説明に戻り、ステップＳ６１５の判定の結果、ループ回数ｌが上限値ｌmax以下である場合（ステップＳ６１５でＹＥＳの場合）、処理はステップＳ６１６に進む。処理がステップＳ６１６に進むと、列生成部１０７は、スラブグループＮｏ．ｉを「１」に初期化すると共に、ループ回数ｌに「１」を加算してループ回数ｌを更新する。そして、処理はステップＳ６０２に戻り、前述したステップＳ６０２〜Ｓ６１４の処理が実行される。前述したように、ループ回数ｌが「１」の場合には、先行点ｉ１が始点５１１であり、後行点が頂点５２３であり、ステップ数ｈが「２」である場合において、（暫定的な）最短経路path（i1,h-1）（＝path（i1,１））が求められていない。しかしながら、このようなループ回数ｌの更新による繰り返し処理により、先行点ｉ１が始点５１１であり、後行点が頂点５２３であり、ステップ数ｈが「２」である場合において、（暫定的な）最短経路path（i1,h-1）（＝path（i1,１））として、始点５１１から頂点５２２を経由して頂点５２３に至る経路、始点５１１から頂点５２４を経由して頂点５２３に至る経路、または、始点５１１から頂点５２１を経由して頂点５２３に至る経路が求められている状態になる。
【０１０６】
以上のようにステップＳ６０２〜Ｓ６１６の処理が、ｌmax回繰り返されると、処理はステップＳ６１７に進む。処理がステップＳ６１７に進むと、列生成部１０７は、ステップＳ６０８において得られた最新の（暫定的な）最短経路path（６,ｈ）を、始点５１１からステップ数ｈで終点５１２に至る最短経路として決定する。そして、列生成部１０７は、当該最短経路に含まれるスラブグループｉの集合を１つの実現可能ロットａとして決定することを、ステップ数ｈ毎に行う。また、列生成部１０７は、ステップＳ６０８において得られた最新のロット重量ｗ（６,ｈ）に基づいて、各実現可能ロットａに含まれるスラブグループｉのスラブ重量の合計値を決定することを、ステップ数ｈ毎に実行する。また、列生成部１０７は、ステップＳ６０８において得られた最新の実現可能ロットａに対する列追加判定用のコストcost（６,ｈ）に基づいて、各実現可能ロットａに対する列追加判定用のコストcostを決定することを、ステップ数ｈ毎に実行する。
【０１０７】
図７に示す例では、スラブグループｉの数は「４」である。例えば、ステップ数ｈが「２」のときの最短経路path（６,２）が、始点５１１から頂点５２３を経由して終点５１２に至る経路である場合（path（６,２）＝｛１，２，６｝である場合）、ステップ数ｈが「２」である場合の実現可能ロットａの要素は、スラブグループＮｏ．が「２」のスラブグループｉのみとなる。ここでは、実現可能ロットａを示す列の要素の値として、当該実現可能ロットａに含まれるスラブグループＮｏ．のスラブグループｉに対する要素には「１」が設定され、当該実現可能ロットａに含まれないスラブグループＮｏ．のスラブグループｉに対する要素には「０」が設定されるものとする。また、実現可能ロットａを示す列において、スラブグループＮｏ．が小さいスラブグループｉの値であるほど、前の要素（上の行）として設定されるものとする。図７に示す例では、スラブグループＮｏ．が「２」、「３」、「４」、「５」のスラブグループｉに対する要素が、列の１行目、２行目、３行目、４行目に設定される。従って、ステップ数ｈが「２」である場合の実現可能ロットａはａ＝｛１，０，０，０｝と表される。
また、ステップ数ｈが「２」である場合の実現可能ロットａに含まれるスラブグループｉのスラブ重量の合計値は、スラブグループＮｏ．が「２」のスラブグループｉのスラブ重量になる。
また、ステップ数ｈが「２」である場合の実現可能ロットａのコストcostは、コストcost（６，２）になる。
【０１０８】
列生成部１０７は、以上のようにして集合分割問題に追加する実現可能ロットａを表す列と当該実現可能ロットａに対する列追加判定用のコストcostを、ステップ数ｈ毎に生成する。本実施形態では、図６に示すような繰り返し計算により、始点５１１から終点５１２に至る経路から、可及的に多くの実現可能ロットａを生成することができる。
【０１０９】
＜判定部１０８、ステップＳ２０８＞
新たな実現可能ロットａに対する列追加判定用のコストcostが負である場合、即ち、当該新たな実現可能ロットａのコストcostを得たときに設定されている経路に含まれる枝ｅのコストＣｅ（ｅ）の総和（Σe∈EcostＣｅ（ｅ））が、当該経路に含まれるスラブグループｉに対する双対変数λiの最適解（双対解）の総和（双対コスト（＝Σi∈NIλi×ａi））を下回る（Σe∈EcostＣｅ（ｅ）＜Σi∈NIλi×ａi）場合には、双対問題ＤＬＰの双対解は、双対問題ＤＬＰの真の最適解となっていない。即ち、この場合には、実現可能ロットｊ（列）が行列Ａi,jに十分に追加されていないことになる。よって、新たな実現可能ロットａに対する列追加判定用のコストcostが負である場合には、当該新たな実現可能ロットａは、原問題である集合分割問題ＭＰの最適解の候補となり、行列Ａi,jに追加される必要がある。
【０１１０】
本実施形態では、そこで、判定部１０８は、列生成部１０７により求められた新たな実現可能ロットａに対する列追加判定用のコストcost（i2,ｈ）の少なくとも１つが負の値を持つかを判定する。以下の説明では、新たな実現可能ロットａに対する列追加判定用のコストcost（i2,ｈ）の少なくとも１つが負の値を持つことを必要に応じて列追加要件と称する。
【０１１１】
この判定の結果、列追加要件を満足する場合には、列生成部１０７により求められた新たな実現可能ロットａを、行列Ａi,jに追加する必要がある。一方、列追加要件を満足しない場合には、新たな実現可能ロットａをこれ以上行列Ａi,jに追加しても、当該新たな実現可能ロットａは、原問題である集合分割問題ＭＰの最適解の候補になることはないと見なせる。
【０１１２】
＜列追加部１０９、ステップＳ２０９＞
列追加部１０９は、判定部１０８により列追加要件を満足すると判定されると、列生成部１０７により導出された新たな実現可能ロットａを、行列Ａi,jに追加する。例えば、列追加部１０９は、現在の行列Ａi,jの最後の列の次の列に、列生成部１０７により導出された新たな実現可能ロットａを追加する。これにより、行列Ａi,j（即ち、集合分割問題ＭＰにおける部分集合）が更新される。
【０１１３】
＜新たな実現可能ロットａを追加した後の繰り返し計算＞
以上のようにして列追加部１０９により新たな実現可能ロットａが行列Ａi,jに追加されることにより、行列Ａi,jの現在値が更新される。この場合、処理はステップＳ２０５に戻り、集合分割問題構築部１０４は、新たに追加された実現可能ロットａのコストｃjを導出する（（４）式を参照）。そして、ステップＳプ２０６において、双対解導出部１０６は、更新後の行列Ａi,jを用いて、（６）式の制約式を満足する範囲で（５）式の目的関数の値を最大にする双対変数λiを、双対解として導出する。
【０１１４】
更に、ステップＳ２０７において、列生成部１０７は、このようにして導出された双対変数λiとグラフＧ（Ｖ，Ｅ）とを用いて、新たな実現可能ロットａに対する列追加判定用のコストcost（i2,ｈ）を導出する。
そして、ステップ２０８において、判定部１０８は、このようにして導出された新たな実現可能ロットａに対する列追加判定用のコストcost（i2,ｈ）の少なくとも１つが負であるか否か（列追加要件を満足するか否か）を判定する。この判定の結果、列追加要件を満足する場合には、ステップＳ２０９において、列生成部１０７により導出された新たな実現可能ロットａを行列Ａi,jに追加する。
【０１１５】
以上の処理を、判定部１０８により、列追加要件を満足しないと判定されるまで繰り返し行う。尚、以上の説明において、判定部１０８は、列生成部１０７により導出された新たな実現可能ロットａが既に行列Ａi,jに含まれている場合にも、列生成要件を満足しないと判定するものとする。
【０１１６】
＜最適解導出部１１０、ステップＳ２１０＞
最適解導出部１１０は、判定部１０８により、列追加要件を満足しないと判定されると、前述した集合分割問題ＭＰの求解を行う。具体的に説明すると最適解導出部１１０は、判定部１０８により、列追加要件を満足しないと判定された時点で得られている（最新の）行列Ａi,jを用いて、CPLEX（登録商標）等の公知のソルバーを用いて０−１整数計画法による最適化計算を行うことにより、（１）式の制約式を満足する範囲で（２）式の目的関数Ｊの値を最小にする決定変数ｚjを導出し、実現可能ロットｊ群の最適解を導出する。
【０１１７】
本実施形態では、キャスト編成の対象となるスラブグループｉの全体集合ＮIから全ての実現可能ロットｊを生成したものを実現可能ロットｊの集合として、集合分割問題ＭＰを解くのではなく、実現可能ロットｊの初期値と、列追加部１０９により追加された新たな実現可能ロットａとを実現可能ロットｊの集合として、集合分割問題ＭＰを解く。前述したように、本実施形態では、新たな実現可能ロットａに対する列追加判定用のコストcostが負である場合に、列追加部１０９による新たな実現可能ロットａの追加が行われる。そして、実現可能ロットｊの集合（行列Ａi,j）が収束し、新たな実現可能ロットａが集合分割問題ＭＰの最適解の候補になることはないと見なせる場合には、列追加部１０９による新たな実現可能ロットａの追加は行われない。従って、計算精度を大きく落とすことなく、実現可能ロットｊの列挙数を少なくすることができる。その結果、主として計算機の主メモリが不足することにより、実現可能ロットｊの列挙ができないことや、列挙出来たとしてもその後の集合分割問題を解くことが出来ないこと等により、キャスト計画を作成することができないという事態が生じることを抑制することができる。また、１回の列生成部１０７の処理で、実現可能ロットａに対する列追加判定用のコストcost（i2,ｈ）がステップ数ｈ毎に求められる（即ち、実現可能ロットａに対する列追加判定用のコストcost（i2,ｈ）が複数求められる）。このため、列追加部１０９により１回に追加される新たな実現可能ロットａの数を複数にすることが可能になる。
【０１１８】
＜出力部１１１、ステップＳ２１１＞
各実現可能ロットｊは、それぞれキャストに対応する。出力部１１１は、最適解導出部１１０により導出された実現可能ロットｊ群の最適解に基づいて、各実現可能ロットｊに含まれるスラブグループｉを構成するスラブの情報をキャスト計画の立案結果として出力する。出力部１１１は、例えば、コンピュータディスプレイへの表示、外部装置への送信、および、内部または外部の記憶媒体への記憶の少なくとも何れか１つを行うことにより、それぞれのキャストに含まれるスラブの情報を出力する。例えば、出力部１１１は、図３に示したスラブ情報３００の項目として、キャストを識別する番号であるキャストＮｏ．を追加した情報を、それぞれのキャストに含まれるスラブの情報として出力することができる。
【０１１９】
（まとめ）
以上のように本実施形態では、キャスト編成装置１００は、集合分割問題ＭＰを線形緩和した線形緩和問題ＬＰを主問題とした場合の双対問題ＤＬＰの最適解である双対解（双対変数λiの最適解）を導出する。そして、キャスト編成装置１００は、当該双対解を用いて、双対変数λiの最適解と、グラフＧ（Ｖ，Ｅ）とを用いて、列生成子問題ＳＰの解として新たな実現可能ロットａを導出する。即ち、キャスト編成装置１００は、グラフＧ（Ｖ，Ｅ）において、始点５１１から終点５１２に至る経路の中から、ロット成立制約を満たし、且つ、当該経路に含まれる枝ｅのコストＣｅ（ｅ）の総和から、当該経路に含まれるスラブグループｉに対する双対変数λiの最適解（双対解）の総和を減算した値が最小になる経路を探索する。そして、キャスト編成装置１００は、当該新たな実現可能ロットａのコスト（Σe∈EcostＣｅ（ｅ））から当該新たな実現可能ロットａに対する双対コスト（＝Σi∈NIλi×ａi）を減算した値が負である（即ち、列追加要件を満足する）場合に、当該新たな実現可能ロットａを、集合分割問題ＭＰにおける部分集合を示す行列Ａi,jに追加する。キャスト編成装置１００は、かかる新たな実現可能ロットａの追加を、列追加要件を満足しなくなるまで繰り返し行う。キャスト編成装置１００は、このようにして得られた行列Ａi,jを用いて集合分割問題ＭＰを解いて決定変数ｚjを導出し、それぞれの実現可能ロットｊに含まれるスラブグループｉの最適解を導出する。
【０１２０】
従って、キャスト編成問題に列生成法を適用することができるようになり、可及的に過不足なく実現可能ロットの候補を列挙することができる（即ち、全ての実現可能ロットを列挙する必要がなくなる）。このとき、列生成子問題ＳＰの最適化問題の最適解を解くのではなく、当該最適化問題の近似解を解く。従って、キャスト計画を、集合分割問題を用いて立案するに際し、当該集合分割問題の最適解の候補となる部分集合（キャスト）を効率よく抽出することができる。よって、キャスト計画を、立案結果の精度を大きく落とすことなく短時間で立案することができる。
【０１２１】
更に、本実施形態では、キャスト編成装置１００は、始点５１１から終点５１２に至る経路の中から、ロット成立制約を満たし、且つ、当該経路に含まれる枝ｅのコストＣｅ（ｅ）の総和から、当該経路に含まれるスラブグループｉに対する双対変数λiの最適解（双対解）の総和を減算した値が最小になる経路を、ステップ数ｈ毎に導出する。そして、キャスト編成装置１００は、各経路に対応する実現可能ロットａが列追加要件を満たすか否かを判定する。このように判定することで、１回の列生成部１０７（列生成ステップＳ２０７）の処理で、実現可能ロットａを複数個導出できるため、列生成部１０７（列生成ステップＳ２０７）の計算の繰り返し回数を減らすことができる。その結果、キャスト計画を、より短時間で立案することができる。
【０１２２】
（変形例）
＜変形例１＞
本実施形態では、列生成部１０７において、実現可能ロットａのコストが、鋼種のみから定まる場合を例に挙げて説明した。しかしながら、必ずしもこのようにする必要はない。例えば、（４）式と同様に製造コストおよび余材量を考慮してもよい。
【０１２３】
＜変形例２＞
本実施形態では、始点から終点に至る経路の中から、ロット成立制約を満たし、且つ、当該経路に含まれる枝ｅのコストＣｅ（ｅ）の総和から、当該経路に含まれるスラブグループｉに対する双対変数λiの最適解（双対解）の総和を減算した値が最小になる経路を探索する場合を例に挙げて説明した。しかしながら、必ずしもこのようにする必要はない。例えば、当該経路に含まれるスラブグループｉに対する双対変数λiの最適解（双対解）の総和から、当該経路に含まれる枝ｅのコストＣｅ（ｅ）の総和を減算した値が最大になる経路を探索してもよい。
【０１２４】
＜変形例３＞
本実施形態では、各ステップ数ｈにおいて列追加判定用のコストcost（i2,ｈ）を１つずつ導出する場合を例に挙げて説明した。しかしながら、各ステップ数ｈにおいて列追加判定用のコストcost（i2,ｈ）を２つ以上導出してもよい。例えば、各ステップ数ｈにおいて列追加判定用のコストcost（i2,ｈ）が負の値を示すものを、２個以上導出してもよい。
【０１２５】
＜変形例４＞
本実施形態では、複数の鋼種のスラブに対するキャスト計画を作成する場合を例に挙げて説明した。しかしながら、単一鋼種のスラブに対するキャスト計画を作成してもよい。このようにする場合、鋼種ｋを１種類とすればよい。この場合、コストの内容に応じて、グラフＧ（Ｖ，Ｅ）の枝ｅに対してではなく、頂点に対してコストを設定することができる。
【０１２６】
＜変形例５＞
本実施形態では、スラブ情報３００に含まれるスラブをスラブグループｉに集約する場合を例に挙げて説明した。このようにすれば、計算時間をより短縮することができるので好ましい（この効果はスラブ情報３００に含まれるスラブの数が多い場合に顕著になる）。しかしながら、必ずしも、このようにする必要はない。例えば、スラブ情報３００に含まれるスラブの数が少ない場合には、スラブグループｉを作成せずに、実現可能ロットを構成するスラブを直接求めるようにしてもよい。このようにする場合、変数ｉは、スラブグループではなく、個々のスラブを示す変数になる。
【０１２７】
＜変形例６＞
本実施形態では、キャスト計画を作成する場合を例に挙げて説明した。しかしながら、本実施形態で説明した手法は、キャスト計画以外の、ロットに複数の製品を纏めてロットの単位で生産される複数の製品の生産計画に適用することができる。
例えば、本実施形態で説明した手法を厚板生産計画（板取り問題）に適用してもよい。スラブを目標の板厚に圧延した後、圧延後のスラブを注文に応じて剪断し厚板を得る。よって、どのスラブからどの厚板を切り出すのかを決める必要がある。かかる内容を厚板生産計画として作成する。この場合、「厚板」が「製品」に対応し、「スラブ」が「ロット」に対応し、「剪断（切り出し）」が「製造」に対応し、剪断の次工程である「精整工程」が「選択の自由度がある製造条件」に対応し、切り出したスラブの「余剰部分」が「余材量」に対応する。また、本実施形態で説明した手法を熱延計画（チャンス編成問題）に適用してもよい。連続して熱間圧延する複数のスラブを決定する必要がある。この複数のスラブの単位をチャンスと呼ぶ。この場合、「熱延板（コイル）」が「製品」に対応し、「チャンス」が「ロット」に対応し、「圧延」が「製造」に対応する。
また、本実施形態で説明した手法の適用対象は、ロットの単位で纏めて複数の製品を生産するための計画に限定されず、ロットの単位で纏めて複数の製品を処理するための計画であってもよい。
【０１２８】
＜その他の変形例＞
以上説明した本発明の実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、前記プログラムを記録したコンピュータ読み取り可能な記録媒体及び前記プログラム等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
また、以上説明した本発明の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【０１２９】
（請求項との関係）
以下に、請求項の記載と実施形態の記載との対応関係の一例を説明する。尚、請求項の記載が実施形態の記載に限定されないことは、変形例等に記載した通りである。
＜請求項１＞
ロット成立制約は、例えば、スラブ重量の合計値が、予め設定される上限値である最大ロット重量ＭａｘＷ以下であるという制約に対応する。
取得手段は、例えば、スラブ情報取得部１０１を用いることにより実現される。製品情報は、例えば、スラブ情報３００を用いることにより実現される。
列生成手段は、例えば、列生成部１０７を用いることにより実現される。候補ロットは、例えば、新たな実現可能ロットａの最適解を用いることにより実現される。
判定手段は、例えば、判定部１０８を用いることにより実現される。
列追加手段は、例えば、列追加部１０９を用いることにより実現される。
最適解導出手段は、例えば、最適解導出部１１０を用いることにより実現される。
＜請求項２、５、６＞
双対解導出手段は、例えば、双対解導出部１０６を用いることにより実現される。
前記始点から前記終点に至る経路に含まれる前記頂点に対応する前記製品から構成される実現可能ロットが前記ロット成立制約を満たすことは、例えば、ステップＳ６０５でＹＥＳと判定されることにより実現される。
当該実現可能ロットのコストと、当該製品に対する前記双対解とに基づく評価値は、例えば、列追加判定用のコストtmp＿cost（calcost）を用いることにより実現される（（７）式を参照）。
所定の条件は、例えば、列追加判定用のコストtmp＿costとして設定される列追加判定用のコストcost（i2,ｈ）が最小であるという条件に対応する（＜変形例２＞も参照）。ステップＳ６１５でＹＥＳと判定されたときにステップＳ６０８において得られた最新の実現可能ロットａに対する列追加判定用のコストcost（i2，ｈ）が、最小の列追加判定用のコストcost（i2,ｈ）になる。
＜請求項３＞
前記始点から前記終点に至る経路から、前記候補ロットとなる前記製品に対応する前記頂点が含まれる前記経路を探索する過程において、前記実現可能ロットのコストの計算と、前記実現可能ロットが前記ロット成立制約を満たすか否かの判定とを繰り返し行うことは、例えば、ステップＳ６０５、Ｓ６０６が繰り返し行われることに対応する。
＜請求項４＞
前記始点から前記終点に至る経路に含まれる前記頂点に対応する前記製品から構成される実現可能ロットであって、前記ロット成立制約を満たし、且つ、前記評価値が所定の条件を満たす実現可能ロットを、前記始点から前記終点に至る経路に含まれる前記枝の数であるステップ数毎に複数導出することは、例えば、図７に示す例において、最短経路path（６，ｈ）が導出されることに対応する。
＜請求項７＞
第１の指定手段による処理は、例えば、ステップＳ６０１、Ｓ６１４の処理を用いることにより実現される。
第２の指定手段による処理は、例えば、ステップＳ６０２の処理を用いることにより実現される。
第１の判定手段による処理は、例えば、ステップＳ６０５の処理を用いることにより実現される。所定の属性情報は、例えば、スラブ情報を用いることにより実現される。
第２の判定手段による処理は、例えば、ステップＳ６０７の処理を用いることにより実現される。
記憶手段による処理は、例えば、ステップＳ６０８の処理を用いることにより実現される。
前記先行点に対応する前記製品の所定の属性情報として、当該先行点が前記後行点であるときに前記記憶手段により記憶された前記製品の属性情報は、例えば、ロット重量ｗ（i1,h-1）を用いることにより実現される。
前記先行点に対応する前記製品と、前記後行点に対応する前記製品とから構成される前記実現可能ロットのコストと、当該製品に対する前記双対解とに基づく評価値として、当該先行点が前記後行点であるときに前記記憶手段により記憶された前記評価値は、例えば、列追加判定用のコストcost［i1,h-1］を用いることにより実現される。
＜請求項８＞
双対問題の制約式は、例えば、（６）式を用いることにより実現される。
該実現可能ロットのコストは、例えば、実現可能ロットｊのコストｃjを用いることにより実現される。該実現可能ロットに対応するロット構成製品有無変数は、行列Ａj,iの要素であるロット構成製品有無変数ａiを用いることにより実現される。双対変数は、例えば、双対変数λiを用いることにより実現される。
前記実現可能ロットに対する双対コストは、例えば、双対コスト（＝Σi∈NIλi×ａi）を用いることにより実現される。
＜請求項９＞
前記判定手段は、前記双対解導出手段による前記双対解の導出と、前記列生成手段による前記列生成子問題の最適解の導出と、前記判定手段による前記判定と、前記列追加手段による前記候補ロットの追加と、を繰り返す収束計算を、前記列追加要件を満足しないと判定するまで実行することは、例えば、図２のステップＳ２０８でＮＯと判定されるまでステップＳ２０５〜Ｓ２０９の処理が繰り返されることにより実現される。
＜請求項１０＞
原問題の制約式は、例えば、（１）式を用いることにより実現される。
原問題の目的関数は、例えば、（２）式を用いることにより実現される。
前記決定変数の加算値として得られる、前記集合分割問題の解として採用される前記実現可能ロットの総数は、例えば、（４）式の右辺第１項の製造コストＣCASTについて（２）式の積算を行った値を、製造コストＣCASTで割った値に対応する。
＜請求項１１＞
該実現可能ロットに含まれる前記製品の品種の総数は、例えば、（４）式の実現可能ロットｊに含まれる鋼種の数ＮjGを用いることにより実現される。また、例えば、グラフＧ（Ｖ，Ｅ）において、始点から終点に至る経路に含まれる枝ｅに対して設定されているコストＣｅ（ｅ）により、該実現可能ロットに含まれる前記製品の品種の総数が得られる。
＜請求項１２＞
グループ作成手段は、例えば、スラブグループ作成部１０２を用いることにより実現される。製品グループは、例えば、スラブグループｉを用いることにより実現される。
【符号の説明】
【０１３０】
１００：キャスト編成装置、１０１：スラブ情報取得部、１０２：スラブグループ作成部、１０３：初期列集合設定部、１０４：集合分割問題構築部、１０５：線形緩和問題構成部、１０６：双対解導出部、１０７：列生成部、１０８：判定部、１０９：列追加部、１１０：最適解導出部、１１１：出力部
【図１】
2020151734.tif 000008
【図２】
2020151734.tif 000009
【図３】
2020151734.tif 000010
【図４】
2020151734.tif 000011
【図５】
2020151734.tif 000012
【図６】
2020151734.tif 000013
【図７】
2020151734.tif 000014