IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 新日鐵住金株式会社の特許一覧

特許7234721計画作成装置、計画作成方法、およびプログラム
<>
  • 特許-計画作成装置、計画作成方法、およびプログラム 図1
  • 特許-計画作成装置、計画作成方法、およびプログラム 図2
  • 特許-計画作成装置、計画作成方法、およびプログラム 図3
  • 特許-計画作成装置、計画作成方法、およびプログラム 図4
  • 特許-計画作成装置、計画作成方法、およびプログラム 図5
  • 特許-計画作成装置、計画作成方法、およびプログラム 図6
  • 特許-計画作成装置、計画作成方法、およびプログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-28
(45)【発行日】2023-03-08
(54)【発明の名称】計画作成装置、計画作成方法、およびプログラム
(51)【国際特許分類】
   B22D 46/00 20060101AFI20230301BHJP
   G05B 19/418 20060101ALI20230301BHJP
   B22D 11/16 20060101ALI20230301BHJP
【FI】
B22D46/00
G05B19/418 Z
B22D11/16 Z
【請求項の数】 15
(21)【出願番号】P 2019051280
(22)【出願日】2019-03-19
(65)【公開番号】P2020151734
(43)【公開日】2020-09-24
【審査請求日】2021-11-04
(73)【特許権者】
【識別番号】000006655
【氏名又は名称】日本製鉄株式会社
(74)【代理人】
【識別番号】100090273
【弁理士】
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】吾郷 正俊
(72)【発明者】
【氏名】枚田 優人
【審査官】瀧口 博史
(56)【参考文献】
【文献】特開2018-073171(JP,A)
【文献】特開2017-191504(JP,A)
【文献】特開2012-011451(JP,A)
【文献】特開2017-211834(JP,A)
【文献】特開2018-101389(JP,A)
【文献】特開2018-100166(JP,A)
【文献】特開2016-081186(JP,A)
【文献】特開昭61-292192(JP,A)
【文献】特開2013-71575(JP,A)
【文献】米国特許第06272483(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
B22D 46/00
B22D 11/16
G05B 19/02
G06Q 10/00
G06F 3/12
(57)【特許請求の範囲】
【請求項1】
複数の製品について生産または処理するための計画を作成する計画作成装置であって、
前記複数の製品についての製造条件を含む製品情報を取得する取得手段と、
所定のロット成立制約を満たす様に前記複数の製品を重複することなく且つ漏れなく纏めたロットである複数の実現可能ロットの最適な組み合わせを求める集合分割問題を原問題とし、該原問題の最適解を構成する実現可能ロットの候補である候補ロットを生成する列生成子問題の解を導出する列生成手段と、
前記列生成手段により導出された前記候補ロットが、列追加要件を満足するか否かを判定する判定手段と、
前記判定手段により、前記列生成手段により導出された前記候補ロットが、前記列追加要件を満足すると判定されると、前記列生成手段により生成された前記候補ロットを前記実現可能ロットの集合に追加する列追加手段と、
前記判定手段により、前記列生成手段により導出された前記候補ロットが、前記列追加要件を満足しないと判定されると、その時点で得られている前記実現可能ロットの集合に基づいて、前記原問題の最適解として、前記実現可能ロットの組み合わせを導出する最適解導出手段と、を有し、
前記最適解導出手段は、互いに異なる製品をそれぞれ含む複数の実現可能ロットの集合である初期集合と、前記列追加手段により追加された候補ロットとを含む前記実現可能ロットの集合に基づいて、前記原問題の最適解を導出し、
前記列生成手段は、始点、終点、および前記製品に対応する頂点と、前記始点、前記終点、および前記頂点のうちの2つの点を接続する枝とを有するグラフを用いて、前記始点から前記終点に至る経路から、前記候補ロットとなる前記製品に対応する前記頂点が含まれる経路を探索することを特徴とする計画作成装置。
【請求項2】
前記原問題の線形緩和問題を主問題とした場合の双対問題の最適解である双対解を導出する双対解導出手段をさらに有し、
前記列生成手段は、前記始点から前記終点に至る経路に含まれる前記頂点に対応する前記製品から構成される実現可能ロットが前記ロット成立制約を満たし、且つ、当該実現可能ロットのコストと、当該製品に対する前記双対解とに基づく評価値が所定の条件を満たす場合に、当該実現可能ロットを前記候補ロットとすることを特徴とする請求項1に記載の計画作成装置。
【請求項3】
前記列生成手段は、前記始点から前記終点に至る経路に含まれる前記頂点に対応する前記製品から構成される実現可能ロットであって、前記ロット成立制約を満たし、且つ、前記評価値が所定の条件を満たす実現可能ロットを、前記始点から前記終点に至る経路に含まれる前記枝の数であるステップ数毎に複数導出することを特徴とする請求項2に記載の計画作成装置。
【請求項4】
前記所定の条件は、同じ数の前記製品から構成される前記実現可能ロットの中で、前記評価値が最小または最大であるという条件であることを特徴とする請求項2または3に記載の計画作成装置。
【請求項5】
前記評価値は、前記始点から前記終点に至る経路に含まれる前記頂点に対応する前記製品から構成される実現可能ロットのコストと、当該製品に対する前記双対解の総和との差を用いた値であることを特徴とする請求項2~の何れか1項に記載の計画作成装置。
【請求項6】
前記列生成手段は、前記枝で接続される2つの点のうち、前記始点、または、前記始点から前記終点に至る経路において前記始点に近い一方の点である先行点を指定する第1の指定手段と、
前記枝で接続される2つの点のうち、前記第1の指定手段により前記先行点として指定されていない点である後行点を指定する第2の指定手段と、
前記先行点に対応する前記製品と、前記後行点に対応する前記製品とが前記ロット成立制約を満たすか否かを、当該製品の所定の属性情報に基づいて判定する第1の判定手段と、
前記先行点に対応する前記製品と、前記後行点に対応する前記製品とから構成される前記実現可能ロットのコストと、当該製品に対する前記双対解とに基づく評価値が所定の条件を満たすか否かを判定する第2の判定手段と、
前記先行点に対応する前記製品と、前記後行点に対応する前記製品とから構成される前記実現可能ロットが前記ロット成立制約を満たし、且つ、前記先行点に対応する前記製品と、前記後行点に対応する前記製品とから構成される前記実現可能ロットのコストと、当該製品に対する前記双対解とに基づく評価値が所定の条件を満たす場合に、当該製品の属性情報と、当該評価値と、前記先行点から前記後行点に至る経路とを示す情報を記憶する記憶手段と、を有し、
前記始点を初期の前記先行点として、前記先行点と前記後行点の組を異ならせて、前記第1の判定手段による判定と、前記第2の判定手段による判定と、前記記憶手段による判定とを行い、
前記第1の判定手段は、前記先行点に対応する前記製品の所定の属性情報として、当該先行点が前記後行点であるときに前記記憶手段により記憶された前記製品の属性情報を用いて前記判定を行い、
前記第2の判定手段は、前記先行点に対応する前記製品と、前記後行点に対応する前記製品とから構成される前記実現可能ロットのコストと、当該製品に対する前記双対解とに基づく評価値として、当該先行点が前記後行点であるときに前記記憶手段により記憶された前記評価値を用いて導出された評価値を用いて前記判定を行うことを特徴とする請求項2~の何れか1項に記載の計画作成装置。
【請求項7】
前記双対問題は、前記実現可能ロットの集合に含まれる前記実現可能ロットのそれぞれのコストが、該実現可能ロットに対する双対コスト以上であるという制約を表す制約式であって、該実現可能ロットのコスト、該実現可能ロットに対応するロット構成製品有無変数、および双対変数を用いて表される制約式と、前記複数の製品についての該双対変数の総和を求める目的関数であって、該双対変数を用いて表される目的関数と、を用いて、該制約式を満足する範囲で該目的関数の値が最大になる該双対変数の値を前記双対解として決定する線形計画問題であり、
前記双対変数は、前記製品毎に定められる変数であり、
前記実現可能ロットに対する双対コストは、前記製品に対する前記双対変数の値と、該製品と該実現可能ロットに対応するロット構成製品有無変数との積の、前記複数の製品についての総和で表され、
前記ロット構成製品有無変数は、前記製品毎に定められる0-1変数であって、前記実現可能ロットに前記製品が含まれる場合に「1」となり、そうでない場合に「0」となる0-1変数であることを特徴とする請求項2~の何れか1項に記載の計画作成装置。
【請求項8】
前記判定手段は、前記双対解導出手段による前記双対解の導出と、前記列生成手段による前記列生成子問題の最適解の導出と、前記判定手段による前記判定と、前記列追加手段による前記候補ロットの追加と、を繰り返す収束計算を、前記列追加要件を満足しないと判定するまで実行することを特徴とする請求項に記載の計画作成装置。
【請求項9】
前記列生成手段は、前記始点から前記終点に至る経路から、前記候補ロットを構成する前記製品に対応する前記頂点が含まれる前記経路を探索する過程において、前記実現可能ロットのコストの計算と、前記実現可能ロットが前記ロット成立制約を満たすか否かの判定とを繰り返し行うことを特徴とする請求項1~8の何れか1項に記載の計画作成装置。
【請求項10】
前記原問題は、前記複数の製品のそれぞれについて、前記実現可能ロットの集合の中から、該製品を含む前記実現可能ロットが必ず1つ選択されるという制約を表す制約式であって、前記原問題の決定変数を用いて表される制約式と、前記実現可能ロットの集合に含まれる前記実現可能ロットのコストの総和を求める目的関数であって、前記決定変数および前記実現可能ロットのコストを用いて表される目的関数と、を用いて、該制約式を満足する範囲で該目的関数の値が最小になる前記決定変数を決定する0-1整数計画問題であることを特徴とする請求項1~9の何れか1項に記載の計画作成装置。
【請求項11】
前記実現可能ロットのコストは、該実現可能ロットに含まれる前記製品の品種の総数を表すコストであることを特徴とする請求項10に記載の計画作成装置。
【請求項12】
前記取得手段により取得された前記製品情報に含まれる前記製品の製造条件に基づいて前記複数の製品をグルーピングすることにより複数の製品グループを作成するグループ作成手段をさらに有し、
前記製品に代えて前記製品グループを用いることを特徴とする請求項1~11の何れか1項に記載の計画作成装置。
【請求項13】
前記製品は、連続鋳造機で鋳造されるスラブであり、
前記ロットは、連続して鋳造する複数のチャージのまとまりであるキャストであり、
前記計画は、前記スラブが属する前記キャストを示すキャスト計画であることを特徴とする請求項1~12の何れか1項に記載の計画作成装置。
【請求項14】
複数の製品について生産または処理するための計画を作成する計画作成方法であって、
前記複数の製品についての製造条件を含む製品情報を取得する取得工程と、
所定のロット成立制約を満たす様に前記複数の製品を重複することなく且つ漏れなく纏めたロットである複数の実現可能ロットの最適な組み合わせを求める集合分割問題を原問題とし、該原問題の最適解を構成する実現可能ロットの候補である候補ロットを生成する列生成子問題の解を導出する列生成工程と、
前記列生成工程により導出された前記候補ロットが、列追加要件を満足するか否かを判定する判定工程と、
前記判定工程により、前記列生成工程により導出された前記候補ロットが、前記列追加要件を満足すると判定されると、前記列生成工程により生成された前記候補ロットを前記実現可能ロットの集合に追加する列追加工程と、
前記判定工程により、前記列生成工程により導出された前記候補ロットが、前記列追加要件を満足しないと判定されると、その時点で得られている前記実現可能ロットの集合に基づいて、前記原問題の最適解として、前記実現可能ロットの組み合わせを導出する最適解導出工程と、を有し、
前記最適解導出工程は、互いに異なる製品をそれぞれ含む複数の実現可能ロットの集合である初期集合と、前記列追加工程により追加された候補ロットとを含む前記実現可能ロットの集合に基づいて、前記原問題の最適解を導出し、
前記列生成工程は、始点、終点、および前記製品に対応する頂点と、前記始点、前記終点、および前記頂点のうちの2つの点を接続する枝とを有するグラフを用いて、前記始点から前記終点に至る経路から、前記候補ロットとなる前記製品に対応する前記頂点が含まれる経路を探索することを特徴とする計画作成方法。
【請求項15】
請求項1~13の何れか1項に記載の計画作成装置の各手段としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、計画作成装置、計画作成方法、およびプログラムに関し、特に、ロットに複数の製品を纏めてロット単位で複数の製品を生産または処理するために用いて好適なものである。
【背景技術】
【0002】
製造業において製品の生産計画を立案する場合には、複数の製品を適切な規模で適切な数のロットに纏めてロット単位で製造するように生産計画を立案することが多い。
ここで、複数の製品をロットに纏めて製造する場合の一例として、製鋼工場で連続鋳造を行う場合について説明する。
【0003】
製鋼工場では、高炉から供給された溶銑を転炉に装入して、酸素を吹き付けることで溶銑中の炭素を取り除き溶鋼を製造する。これを一次精錬と呼ぶ。次に、溶鋼は取鍋と呼ばれる容器に注入され二次精錬工程へ搬送される。この取鍋一杯分の溶鋼をチャージと呼ぶ。二次精錬工程として例えばRH(Ruhrstahl Heraeus)工程があり、真空管中に溶鋼を循環させることで溶鋼中の不純なガスを真空中に除去して溶鋼の成分を調整する。二次精錬工程が終了すると、取鍋は連続鋳造機へと搬送される。連続鋳造機では、取鍋から鋳型へ溶鋼を注入すると同時に冷却することで半製品である鋳片を製造する。連続鋳造機では、複数のチャージを連続して鋳造することが可能であり、連続して鋳造する複数のチャージのまとまりをキャストと呼ぶ。また、複数のチャージの溶鋼を連続して鋳造することを連々鋳と呼ぶ。この連々鋳の回数を多くし過ぎると、連続鋳造機の構成部材(タンディッシュや鋳型の耐火物、浸漬ノズルなど)の溶損が生じるため、品種などで異なる溶損具合に応じて連々鋳を実施するチャージ数を適切に定めなければならない。
【0004】
連続鋳造機において製造された鋳片はスラブと呼ばれ、圧延工程へ搬送される。圧延工程においてスラブは加熱炉によって再加熱され高温の状態で圧延機によって数ミリ単位の薄さまで圧延されコイル状に巻き取られる。スラブの形状や硬さによって、圧延機で連続して圧延できるスラブ枚数に制限がある。圧延機で連続して圧延されるスラブのまとまりをチャンスと呼ぶ。
各スラブには、注文情報から成分、形状、熱延希望日などの情報が付与されていて、製鋼工程および圧延工程における制約条件を考慮して、キャストやチャンスといったロットが編成される。
【0005】
また近年、製鋼工程のロットであるキャストを圧延工程のロットであるチャンスと同じにすることで、リードタイムの短縮化、および熱ロスの低減化の試みがされている。このような操業を行う場合においては、製鋼工程および圧延工程における制約条件を同時に満足するキャスト編成(各キャストに含めるスラブ)を決定する必要がある。
【0006】
キャスト編成においては、キャスト内に多数のスラブを取り込んで大ロット化することにより、鋳造の連々鋳回数を増加させ、連々鋳の開始および終了時におけるスラブ不良部の低減や再鋳造開始にかかる準備時間の低減による生産量の増加が期待できる。一方で、成分、形状、および熱延希望日などの条件によって同一キャスト内に取り込むことが可能なスラブには制限がある。このため、制約条件を満たす範囲において可能な限り大ロットとなるキャスト編成を行うことが求められる。
【0007】
キャスト編成の業務では、一般に、数百または千といった数のスラブを取り扱うため、スラブの組み合わせ数が多くなる。したがって、計画担当者が全ての制約条件を充足するキャスト編成を行うめには長時間を有する作業となる。
そこで、キャスト編成を自動で行う技術として特許文献1に記載の技術がある。
特許文献1には、各チャージを節点で表現すると共に、抱き合わせて鋳造可能なチャージ間を有向枝で表現したネットワークを作成し、最長のキャストとなるルートを前記ネットワーク上で探索することが開示されている。
【先行技術文献】
【特許文献】
【0008】
【文献】特開2012-11451号公報
【非特許文献】
【0009】
【文献】久保幹雄、田村明久、松井知己編、「応用数理計画ハンドブック」、株式会社朝倉書店、2002年5月、p.133、337、621、634
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、特許文献1に記載の技術では、スラブをチャージにまとめる方法に関しての説明がなく、与えられたチャージの情報に基づいてキャスト編成を行うことになる。したがって、チャージが適切に編成されていなければ最適なキャスト編成の結果が得られない虞がある。
【0011】
そこで、キャストにスラブをどのように纏めるのかを決定する必要がある。このような決定を行う手法として、集合分割問題を解く手法が考えられる。集合分割問題は、要素の部分集合と、当該部分集合のコストとが与えられたときに、各要素をちょうど1つずつ含む(即ち、各要素を漏れなく且つ重複することなく含む)部分集合の組み合わせを、当該コストの総和を最小にするように決定する問題である。一般的な集合分割問題では、このような部分集合の組み合わせを全て列挙しなければならない。このため、問題規模が大きくなり過ぎ、計算時間が長くなる虞がある。そこで、集合分割問題の最適解の候補となる部分集合(キャスト)を事前に求め、当該候補から集合分割問題を解くことが考えられる。この場合、集合分割問題の最適解の候補を絞り込み過ぎると、当該候補の計算時間は短くすることが可能であるが、集合分割問題を解いて得られる解の最適性が低下する。一方で、集合分割問題の最適解の候補を取り込み過ぎても、当該候補の計算時間、および、集合分割問題を解く際の計算時間が長時間化する。そこで、集合分割問題の最適解の候補を効率よく求めることが望まれる。
【0012】
以上のように従来の技術では、キャスト(ロット)に複数のスラブ(製品)を纏めてキャスト(ロット)単位でスラブ(製品)を鋳造(生産)するための鋳造(生産)計画を、集合分割問題を用いて立案するに際し、当該集合分割問題の最適解の候補となる部分集合(キャスト(ロット))を効率よく抽出することが容易でなかった。
本発明は、以上のような問題点に鑑みてなされたものであり、ロット単位で製品を生産または処理するための計画を、集合分割問題を用いて立案するに際し、当該集合分割問題の最適解の候補となる部分集合(キャスト(ロット))を効率よく抽出できるようにすることを目的とする。
【課題を解決するための手段】
【0013】
本発明の計画作成装置は、複数の製品について生産または処理するための計画を作成する計画作成装置であって、前記複数の製品についての製造条件を含む製品情報を取得する取得手段と、所定のロット成立制約を満たす様に前記複数の製品を重複することなく且つ漏れなく纏めたロットである複数の実現可能ロットの最適な組み合わせを求める集合分割問題を原問題とし、該原問題の最適解を構成する実現可能ロットの候補である候補ロットを生成する列生成子問題の解を導出する列生成手段と、前記列生成手段により導出された前記候補ロットが、列追加要件を満足するか否かを判定する判定手段と、前記判定手段により、前記列生成手段により導出された前記候補ロットが、前記列追加要件を満足すると判定されると、前記列生成手段により生成された前記候補ロットを前記実現可能ロットの集合に追加する列追加手段と、前記判定手段により、前記列生成手段により導出された前記候補ロットが、前記列追加要件を満足しないと判定されると、その時点で得られている前記実現可能ロットの集合に基づいて、前記原問題の最適解として、前記実現可能ロットの組み合わせを導出する最適解導出手段と、を有し、前記最適解導出手段は、互いに異なる製品をそれぞれ含む複数の実現可能ロットの集合である初期集合と、前記列追加手段により追加された候補ロットとを含む前記実現可能ロットの集合に基づいて、前記原問題の最適解を導出し、前記列生成手段は、始点、終点、および前記製品に対応する頂点と、前記始点、前記終点、および前記頂点のうちの2つの点を接続する枝とを有するグラフを用いて、前記始点から前記終点に至る経路から、前記候補ロットとなる前記製品に対応する前記頂点が含まれる経路を探索することを特徴とする。
【0014】
本発明の計画作成方法は、複数の製品について生産または処理するための計画を作成する計画作成方法であって、前記複数の製品についての製造条件を含む製品情報を取得する取得工程と、所定のロット成立制約を満たす様に前記複数の製品を重複することなく且つ漏れなく纏めたロットである複数の実現可能ロットの最適な組み合わせを求める集合分割問題を原問題とし、該原問題の最適解を構成する実現可能ロットの候補である候補ロットを生成する列生成子問題の解を導出する列生成工程と、前記列生成工程により導出された前記候補ロットが、列追加要件を満足するか否かを判定する判定工程と、前記判定工程により、前記列生成工程により導出された前記候補ロットが、前記列追加要件を満足すると判定されると、前記列生成工程により生成された前記候補ロットを前記実現可能ロットの集合に追加する列追加工程と、前記判定工程により、前記列生成工程により導出された前記候補ロットが、前記列追加要件を満足しないと判定されると、その時点で得られている前記実現可能ロットの集合に基づいて、前記原問題の最適解として、前記実現可能ロットの組み合わせを導出する最適解導出工程と、を有し、前記最適解導出工程は、互いに異なる製品をそれぞれ含む複数の実現可能ロットの集合である初期集合と、前記列追加工程により追加された候補ロットとを含む前記実現可能ロットの集合に基づいて、前記原問題の最適解を導出し、前記列生成工程は、始点、終点、および前記製品に対応する頂点と、前記始点、前記終点、および前記頂点のうちの2つの点を接続する枝とを有するグラフを用いて、前記始点から前記終点に至る経路から、前記候補ロットとなる前記製品に対応する前記頂点が含まれる経路を探索することを特徴とする。
【0015】
本発明のプログラムは、前記計画作成装置の各手段としてコンピュータを機能させることを特徴とする。
【発明の効果】
【0016】
本発明によれば、ロット単位で製品を生産または処理するための計画を、集合分割問題を用いて立案するに際し、当該集合分割問題の最適解の候補となる部分集合(キャスト(ロット))を効率よく抽出することができる。
【図面の簡単な説明】
【0017】
図1図1は、キャスト編成装置の機能的な構成の一例を示す図である。
図2図2は、キャスト編成装置によるキャスト編成方法(計画作成方法)の一例を説明するフローチャートである。
図3図3は、スラブ情報の一例を示す図である。
図4図4は、スラブグループ情報の一例を示す図である。
図5図5は、列生成子問題の解を求める際に用いるグラフの一例を説明する図である。
図6図6は、グラフを用いて、列生成子問題の解を導出する方法の一例を説明するフローチャートである。
図7図7は、図6のフローチャートの処理を補足説明するためのグラフを示す図である。
【発明を実施するための形態】
【0018】
以下、図面を参照しながら、本発明の実施形態を説明する。本実施形態では、生産計画として、連続鋳造機におけるキャスト計画を作成する(即ちキャスト編成を行う)場合を例に挙げて説明する。この場合、「スラブ」が「製品」に対応し、「キャスト」が「ロット」に対応し、「鋳造」が「製造」に対応する。また、「製品」は、原料に手が加えられた物を指し、市場に出回る最終製品等に限定されるものではない。例えば、中間製品(半製品)も「製品」に含まれる。
【0019】
図1は、キャスト編成装置100の機能的な構成の一例を示す図である。図2は、キャスト編成装置100によるキャスト編成方法(計画作成方法)の一例を説明するフローチャートである。キャスト編成装置100のハードウェアは、例えば、CPU、ROM、RAM、HDD、および各種のインターフェースを備える情報処理装置や、専用のハードウェアを用いることにより実現される。
【0020】
<スラブ情報取得部101、スラブ情報取得ステップS201>
スラブ情報取得部101は、スラブ情報を取得して記憶する。スラブ情報取得部101は、例えば、キャスト編成装置100に対するオペレータによる操作、外部装置から送信されたスラブ情報の受信、または可搬型記憶媒体に記憶されたスラブ情報の読み出しを行うことによりスラブ情報を取得する。
【0021】
図3は、スラブ情報300の一例を示す図である。
図3において、スラブ情報300は、スラブNo.、鋼種、スラブ重量、スラブ幅、スラブ厚、コイル幅、コイル厚、およびコイル長さが相互に関連付けられた情報である。立案対象のスラブのそれぞれについてスラブ情報が個別に与えられる。
【0022】
スラブNo.は、スラブを識別する番号である。
鋼種とは、スラブの成分などに応じて定まるスラブの品種を示すものである。ここでは、鋼種を、当該鋼種を識別する記号で表すものとする。
スラブ重量、スラブ幅、スラブ厚は、それぞれ、スラブの重量、幅、厚みである。鋼種、スラブ重量、スラブ幅、およびスラブ厚は、スラブを製造する工程(連続鋳造工程)における製造条件である。
【0023】
コイル幅、コイル厚、コイル長さは、それぞれ、スラブNo.で識別されるスラブを熱間圧延することにより得られるコイルの幅、厚み、長さである。コイル幅、コイル厚、およびコイル長さは、スラブを製造する工程よりも後の工程(熱間圧延工程)における製造条件である。
【0024】
<スラブグループ作成部102、スラブグループ作成ステップS202>
スラブグループ作成部102は、スラブ情報取得部101で取得されたスラブ情報300に基づいて、製造条件が所定の範囲内で一致するスラブが同一のスラブグループに属するように、スラブ情報300に含まれるスラブのそれぞれをグルーピングする。
まず、スラブグループ作成部102は、スラブ情報300に含まれる未選択のスラブ(レコード)のうち、未選択のスラブを1つ選択する。
【0025】
次に、スラブグループ作成部102は、既に作成されているスラブグループの中に、スラブ情報300から選択したスラブを追加できるスラブグループがあるか否かを判定する。スラブグループ作成部102は、スラブの製造条件が所定の範囲内で一致するスラブを同一のスラブグループに含める。
具体的に本実施形態では、スラブグループ作成部102は、以下の(A1)~(C1)の全ての判定条件を満たす場合に、既に作成されているスラブグループの中に、スラブ情報300から選択したスラブを追加できるスラブグループがあると判定する。
【0026】
(A1)既に作成されているスラブグループに含まれるスラブの幅(スラブ幅)と、スラブ情報300から選択したスラブの幅(スラブ幅)との差の最大値が100[mm]以下である。
(B1)既に作成されているスラブグループに含まれるスラブの厚み(スラブ厚)と、スラブ情報300から選択したスラブの厚み(スラブ厚)との差の最大値が2[mm]以下である。
(C1)既に作成されているスラブグループに含まれるスラブの製造可能な鋼種と、スラブ情報から選択したスラブの製造可能な鋼種との少なくとも1つが重複する。
【0027】
図3では、各スラブの鋼種が一種類であるもののみを示すが、複数の鋼種の何れの鋼種であっても製造できるスラブもある。このため、(C1)の判定条件を課す。このように鋼種は、選択に自由度がある(1つのスラブにおいて、複数の鋼種の中から1つの鋼種を選択し得る)。
【0028】
スラブグループ作成部102は、既に作成されているスラブグループの中に、スラブ情報300から選択したスラブを追加できるスラブグループがないと判定した場合には、新たなスラブグループを作成し、当該選択したスラブを当該作成した新たなスラブグループに含める。
一方、既に作成されているスラブグループの中に、スラブ情報300から選択したスラブを追加できるスラブグループがある場合、スラブグループ作成部102は、当該スラブグループに含まれるスラブと、当該選択したスラブの枚数の合計が上限値以下であるか否かを判定する。熱延工程において圧延ロールが摩耗するため、同一のチャンスにおいて連続して熱間圧延する同幅帯のスラブの枚数に制約がある。そこで、本実施形態では、1つのスラブグループに含めるスラブの枚数に上限値を設定する。本実施形態では、この上限値を40[枚]以下とする。
【0029】
スラブグループ作成部102は、スラブ情報300から選択したスラブを追加できるスラブグループに含まれるスラブと、当該選択したスラブの枚数の合計が上限値以下でない場合には、新たなスラブグループを作成し、当該選択したスラブを当該作成した新たなスラブグループに含める。
一方、スラブ情報300から選択したスラブを追加できるスラブグループに含まれるスラブと、当該選択したスラブの枚数の合計が上限値以下である場合、スラブグループ作成部102は、当該選択したスラブを、当該スラブグループに含める。
【0030】
スラブグループ作成部102は、スラブ情報300に含まれる未選択のスラブ(レコード)を1つずつ選択して、以上の処理を繰り返し実行し、スラブ情報300に含まれるスラブを何れかのスラブグループに含める。尚、同一のスラブが複数のスラブグループに属することはない。
【0031】
図4は、図3に示したスラブ情報300から作成されるスラブグループ情報400の一例を示す図である。スラブグループ情報400は、スラブグループのリストである。
図4において、スラブグループ情報400は、スラブグループNo.、鋼種、スラブ幅(最大値、最小値)、スラブ厚(最大値、最小値)、スラブ重量、コイル長さ、およびスラブ枚数が相互に関連付けられた情報である。
【0032】
スラブグループNo.とは、スラブグループを識別する番号である。
鋼種とは、スラブグループに属するスラブの鋼種である。図4では、各スラブグループが1つの鋼種のスラブからなる場合を示すが、1つのスラブグループには複数の鋼種のスラブが属する場合がある。
スラブ幅の最大値とは、スラブグループに含まれるスラブの幅(スラブ幅)の最大値をいう。スラブ幅の最小値とは、スラブグループに含まれるスラブの幅(スラブ幅)の最小値をいう。
【0033】
スラブ厚の最大値とは、スラブグループに含まれるスラブの厚み(スラブ厚)の最大値をいう。スラブ厚の最小値とは、スラブグループに含まれるスラブの厚み(スラブ厚)の最小値をいう。
スラブ重量とは、スラブグループに含まれるスラブの重量(スラブ重量)の合計値である。
コイル長さとは、スラブグループに含まれるスラブのコイル長さの合計値である。
スラブグループ作成部102は、以上のようなスラブグループ情報400を作成する。
【0034】
スラブグループ作成部102で作成されたスラブグループの集合をNIと表記し、スラブグループ(NIの要素)をiと表記する。本実施形態では、後述するロット(=キャスト)として成立するための制約条件(ロット成立制約)を満足する複数のスラブグループ(スラブグループ作成部102で作成されたスラブグループの全体集合の部分集合)を纏めて1つのキャストを構成する。以下の説明では、このキャストの候補となる複数のスラブグループの纏まり(スラブグループ作成部102で作成されたスラブグループの全体集合の部分集合)を、必要に応じて実現可能ロットと称する。実現可能ロットの集合をNJと表記し、実現可能ロット(NJの要素)をjと表記する。
【0035】
<初期列集合設定部103、初期列集合設定ステップS203>
初期列集合設定部103は、スラブグループ作成部102で作成されたスラブグループiの集合NI(={1,2,・・・,i,・・・,n})、即ち、スラブグループ作成部102で作成されたスラブグループiから、行列(2次元配列)Ai,jの初期値を設定する。行列Ai,jのi行j列の要素は、スラブグループiを実現可能ロットjに含むときに「1」の値を持ち、含まないときに「0」の値を持つ。このとき、初期列集合設定部103は、スラブグループ作成部102で作成されたスラブグループiを重複なく且つ漏れなく含み、更に、後述するロットとして成立するための制約条件(ロット成立制約)を満足するように、行列Ai,jの初期値を設定する。その一例として、本実施形態では、初期列集合設定部103は、i=jとなる要素jにだけ「1」を持ち、それ以外の要素は「0」となる行列Ai,jを初期値とする。即ち、それぞれの実現可能ロットjが、相互に異なる任意の1つのスラブグループiのみを要素として持つように、行列Ai,jの初期値を設定する。従って、スラブグループ作成部102で作成されたスラブグループiの数|NI|と、実現可能ロットjの数(行列Ai,jの列数)|NJ|は、行列Ai,jの初期値においては一致する(|NI|=|NJ|)。このように行列Ai,jの行番号は、スラブグループiを識別する番号になり、行列Ai,jの列番号は、実現可能ロットjを識別する番号になる。即ち、行列Ai,jの1つの列が、1つの実現可能ロットjに対応し、当該列において、「1」の値を持つ行に対応するスラブグループiが、当該実現可能ロットjに含まれるスラブグループとなる。
【0036】
ユーザは、キャスト編成装置100のユーザインターフェースを操作することにより、行列Ai,jの初期値の情報を入力し、初期列集合設定部103が、キャスト編成装置100内の記憶媒体に当該情報を記憶することにより、行列Ai,jの初期値を設定することができる。ただし、必ずしもこのようにする必要はなく、例えば、初期列集合設定部103は、予め定められたロジックにより、行列Ai,jの初期値を導出してもよい。
【0037】
<集合分割問題構築部104、集合分割問題構築ステップS204>
本実施形態では、集合分割問題MP(原問題)を解くことにより、行列Ai,jの各列に示される実現可能ロットjからキャストとして採用する実現可能ロットjを決定する。集合分割問題MPとは、要素の部分集合と、当該要素のコストとが与えられたときに、各要素をちょうど1つずつ含む(即ち、各要素を漏れなく且つ重複することなく含む)部分集合の組み合わせを、当該コストの総和を最小にするように決定する問題である。本実施形態では、集合分割問題MPは、実現可能ロットjと、当該実現可能ロットjのコストとが与えられたときに、各スラブグループiをちょうど1つずつ含む(即ち、各スラブグループiを漏れなく且つ重複することなく含む)実現可能ロットjの組み合わせを、当該コストの総和が最小となるように決定する問題になる。
【0038】
本実施形態における集合分割問題MPは、以下のように表される。
<<集合>>
・i∈NI:スラブグループ
・j∈NJ:実現可能ロット
<<決定変数>>
・zj={0,1}
決定変数zjは、実現可能ロットjをキャストとして採用する場合に「1」となり、そうでない場合に「0」となる0-1変数である。
<<定数>>
・行列Ai,j
前述したように行列Ai,jは、スラブグループiを実現可能ロットjに含める場合に「1」となり、そうでない場合に「0」となる要素からなる。
・コストcj
コストcjは、実現可能ロットjに含まれるスラブグループiを構成するスラブに応じて定まる。
【0039】
<<制約条件>>
前述したように、集合分割問題MPでは、各スラブグループiをちょうど1つずつ含む実現可能ロットjの組み合わせを求める。従って、行列Ai,jにおいて、任意のスラブグループiが属する実現可能ロットjの集合の中から、1つの実現可能ロットjだけが選択されなければならない。この制約条件は、以下の(1)式で表される。
【0040】
【数1】
【0041】
<<目的関数>>
前述したように、集合分割問題MPでは、実現可能ロットjのコストcjの総和が最小となるようにする。従って、目的関数は、以下の(2)式で表される。
【0042】
【数2】
【0043】
<<コストcjの具体例>>
本実施形態では、(2)式のコストcjを以下のようにする場合を例に挙げる。
・キャスト数
コストcjの総和は、基本的には、キャストの総数で表される。1つの実現可能ロットjは1つのキャストと対応する。そこで、キャストの数を評価するために、各実現可能ロットjについて製造コストCCASTが発生するものとする。各実現可能ロットjの製造コストCCASTは同じ値である。
【0044】
また、コストcjには、製造コストCCAST以外のコストを加えてもよい。本実施形態では、以下の余材量および鋼種数を、コストcjに加える場合を例に挙げる。
・余材量
余材とは、生産量が定まっているロットに注文を割り当てても当該生産量に満たない場合に、当該ロットにおいて生産される製品であって、生産時においては、どの注文に紐付けられるのかが未定である製品をいう。余材量とは、そのような製品の量をいう。
溶鋼の成分の作り込みは転炉および二次精錬工程において実施されることから、鋼種はチャージ単位で製造される。したがって、或る鋼種を割り当てたスラブの総重量がチャージ重量(1チャージの重量)に満たない部分については、注文と紐付かない余材として製造される。余材は注文と紐付けられるまでスラブとしてヤードに滞留することから、仕掛在庫量の増加を招く。このため、可能な限り余材量が減少するように、同一の鋼種を割り当てたスラブの総重量がチャージ重量に近づくようにすること(好ましくは一致すること)が望まれる。
【0045】
このように、製鋼工場では溶鋼の成分調整をチャージ単位で実施することから、或るキャストにおいて同一鋼種として製造するスラブの重量の合計が、チャージ重量(1チャージを構成する重量)の倍数に近づくようにすること(好ましくは一致すること)が望まれる。例えば、チャージ重量が200トンであり、実現可能ロットjに含まれるスラブのうち、或る鋼種で製造されるスラブの重量が500トンである場合には、当該鋼種のスラブとして3チャージ分のスラブを製造することになる。従って、余材量は、100(=3×200-500)トンとなる。
【0046】
実現可能ロットjに含まれるスラブの合計重量を製造するために必要なチャージ数をnj CHとし、チャージ重量をWCHとし、実現可能ロットjに属するスラブグループの重量をWj SGとすると、余材量Wj Yは、以下の(3)式で表される。
【0047】
【数3】
【0048】
実現可能ロットjには、異なる鋼種のスラブグループが含まれることがある。このように実現可能ロットjに異なる鋼種のスラブグループが含まれる場合には、鋼種毎に(3)式の計算を行い、それらの和を当該実現可能ロットjに対する余材量Wj Yとする。
【0049】
・鋼種数
同一の実現可能ロットj内において複数の異なる鋼種が共存する場合には、鋼種が切り替わるチャージ間においてタンディッシュ内にて溶鋼の混合部が発生する。このような実現可能ロットにおける異なる鋼種の接続部分を異鋼種継目と呼ぶ。この異鋼種継目部分の成分がスラブに求められる要求を満足しない場合にはスラブの一部を切断して破棄する。従って、異鋼種連々鋳による操業(即ち、異なる鋼種を連続して連続鋳造すること)を実施した場合には歩留が低下する。よって、同一の実現可能ロットj内における異鋼種継目の数は可能な限り少ない方が望ましい。即ち、実現可能ロットjに含まれる鋼種の数Nj Gは少ない方が望ましい。
以上より、実現可能ロットjのコストcjは、以下の(4)式で表される。
【0050】
【数4】
【0051】
(4)式において、CY、CGは、それぞれ、余材量、鋼種の数に対するコスト係数(重み係数)である。コスト係数CY、CGは、それぞれの評価項目をどの程度重視するかによって予め設定されるものであり、各評価項目間の評価のバランスを表す。尚、(4)式の右辺第1項の製造コストCCASTについて(2)式の積算を行った値は、集合分割問題MPの最適解として採用される実現可能ロットjの総数に、製造コストCCASTを掛けた値になる。従って、製造コストCCASTは、実現可能ロットjの数に対するコスト係数としての役割を有する。尚、製造コストCCASTを「1」とする場合、(4)式の右辺第1項の製造コストCCASTについて(2)式の積算を行った値は、集合分割問題MPの最適解として採用される実現可能ロットjの総数そのものになる。
集合分割問題構築部104は、行列Ai,jの現在値から、(4)式の計算を行うことにより、当該行列Ai,jに含まれる各列(各実現可能ロットj)のコストcjを導出する。前述したように、最初のステップS204の処理では、行列Ai,jの現在値は、初期値になる。2回目以降にステップS204の処理では、集合分割問題構築部104は、後述する列追加部109により新たに追加された列(実現可能ロットj)のコストcjを導出する。
【0052】
<線形緩和問題構成部105、線形緩和問題構成ステップS205>
線形緩和問題構成部105は、集合分割問題MPを線形緩和した線形緩和問題LPを構成する。即ち、線形緩和問題構成部105は、(1)式および(2)式に対し、0≦zj≦1の範囲の値をとり得るように決定変数zjを定義し直す。
【0053】
<双対解導出部106、双対解導出ステップS206>
双対解導出部106は、集合分割問題MP(原問題)の線形緩和問題LPを主問題とした場合の双対問題DLPの最適解である双対解を導出する。
集合分割問題MP(原問題)自体は0-1整数計画問題であるが、双対問題DLPは線形緩和問題(線形計画問題)になる。0-1整数計画問題である集合分割問題MP(原問題)の線形緩和問題を主問題とした場合の双対問題DLPは、元の集合分割問題MPで使用した記号を用いれば、以下の(5)式の目的関数と、以下の(6)式の制約式とで表される。
【0054】
【数5】
【0055】
前述したように双対変数λiは、双対問題DLPの決定変数であり、スラブグループiごとに定められる連続変数(-∞<λi<∞)である。(6)式のAj,iの行jは、実現可能ロットjに対応する。(6)式のAj,iの(1つの)行jは、当該行jに対応する実現可能ロットjがスラブグループiを含む場合に「1」となり、そうでない場合に「0」となる0-1変数を要素として含む。この要素は、<列生成部107、ステップS207>の項で説明する列生成子問題SPで導出される解(実現可能ロットaの要素であるロット構成製品有無変数ai(i∈NI)と同じ意味の変数である。ここで、実現可能ロットaは、a={a1,a2,・・・,ai,・・・aN}とする。Nは、スラブグループ作成部102で作成されたスラブグループの数である。実現可能ロットaの要素であるロット構成製品有無変数aiは、スラブグループiが当該実現可能ロットaに含まれる場合に「1」となり、そうでない場合に「0」となる0-1変数である。双対変数λiは、集合分割問題MP(原問題)の目的関数((2)式)の値の改善量に対応するので、できるだけ大きいΣλiを求めれば、集合分割問題MPの目的関数のより良い下限値が得られることになる。従って、双対問題DLPの目的関数((5)式)は、最大化問題となる。
【0056】
双対解導出部106は、CPLEX(登録商標)等の公知のソルバーを用いて線形計画法による最適化計算を行うことにより、(6)式の制約式を満足する範囲で(5)式の目的関数の値を最大にする双対変数λiを、双対変数λiの最適解(即ち、双対解)として導出する。尚、集合分割問題の線形緩和問題を主問題とする双対問題自体は、非特許文献1に記載されているように公知の技術で実現できるので、ここでは、その詳細な説明を省略する。
【0057】
<列生成部107、列生成ステップS207>
集合分割問題MPにおいて、全ての実現可能ロットjを列挙することは困難である。そこで、本実施形態では、行列Ai,jに含める実現可能ロットjを限定して、集合分割問題MPを構成する。列生成部107は、双対解導出部106により導出された双対解(即ち、双対変数λiの最適解)を用いて、集合分割問題MP(即ち、行列Ai,j)に追加する新たな実現可能ロット(列)を生成する。以下では、新たに追加する実現可能ロットを、必要に応じて、実現可能ロットaと称する。
【0058】
新たな実現可能ロットaは、どのようなスラブグループiの集まりでも良い訳ではない。即ち、新たな実現可能ロットaは、ロット(=キャスト)として成立するための制約条件を満足することと、集合分割問題MP(原問題)の目的関数((2)式)の値の改善に寄与することとの双方を満足する実現可能ロットaでなければならない。
【0059】
そこで、集合分割問題MP(原問題)の最適解の候補、即ち新たに追加する列(新たな実現可能ロットa)を求める列生成子問題SPを、例えば、c-Σi∈NIλi×aiが最小になる要素(ロット構成製品有無変数)aiを求める最適化問題とすることが考えられる。ここで、cは、実現可能ロットaのコストである。しかしながら、このようにすると、1回の列生成部107(列生成ステップS207)の処理に時間を要する。また、このようにすると、1回の列生成部107(列生成ステップS207)の処理で実現可能ロットaが1つしか導出されない。従って、より多くの実現可能ロットaを探索しようとすれば列生成部107(列生成ステップS207)を繰り返し計算しなければならず時間がかかる。そこで、本実施形態では、列生成部107は、以下のようにして、列生成子問題SPの解(実現可能ロットa)を導出する。
【0060】
図5は、列生成子問題SPの解を求める際に用いるグラフG(V,E)の一例を説明する図である。図5において、一点鎖線で示す領域501は、スラブ情報300に含まれる全ての鋼種のスラブグループiの集合NIを含む領域である。領域501内に示す頂点521~527(○で示すもの)は、それぞれ1つのスラブグループiに対応する。領域501外に示す2つの点のうちの一方(○の中にsが付されているもの)は始点511であり、他方(○の中にeが付されているもの)は終点512である。始点511および終点512は、スラブグループ情報400に含まれるどのスラブグループにも対応しない。G(V,E)のVは、これら始点511、終点512、および頂点521~527の集合を表す。
【0061】
始点511と、領域501内の全ての頂点521~527とがそれぞれ枝で相互に接続される。終点512と、領域501内の全ての頂点521~527とがそれぞれ枝で相互に接続される。領域501内の任意の2つの頂点のうち、連続して製造することができるスラブグループiに対応する2つの頂点が枝で接続される。一方、領域501内の任意の2つの頂点のうち、連続して製造することができないスラブグループiに対応する2つの頂点は枝で接続されない。例えば、頂点521に対応するスラブグループiと、頂点522に対応するスラブグループiとは連続して製造することができないスラブグループiであるので、頂点521、522は枝で接続されない。一方、頂点522に対応するスラブグループiと、頂点523に対応するスラブグループiとは連続して製造することができるので、頂点522、523は枝で接続される。
【0062】
本実施形態では、任意の2つのスラブグループi、i'において、スラブグループiのスラブ幅の最小値が、スラブグループi'のスラブ幅の最大値以下であり、スラブグループiのスラブ幅の最大値が、スラブグループi'のスラブ幅の最小値以上である場合に、当該2つのスラブグループi、i'に対応する頂点を枝で接続する。G(V,E)のEは、これらの枝の集合を表す。
【0063】
また、領域531内の頂点521~524は、鋼種Aのスラブグループに対応する頂点を示す。領域532内の頂点525~526は、鋼種Bのスラブグループに対応する頂点を示す。領域533内の頂点527は、鋼種Cのスラブグループに対応する頂点を示す。尚、図5では、表記の都合上、スラブグループの集合NIを示す領域501の中に鋼種A~Cのみを示すが、実際には、スラブ情報300に含まれる全ての鋼種がスラブグループの集合NIを示す領域501の中に含まれる。また、スラブグループの集合NIを示す領域501内に7つの頂点521~527のみを示すが、スラブグループの集合NIを示す領域501内に、スラブ情報300に含まれるスラブグループの総数と同じ数の頂点が含まれる。また、本実施形態では、説明を簡単にするために、1つのスラブグループに対する鋼種が定まっている場合を例に挙げて示す。即ち、1つのスラブグループに対し、複数の鋼種の中から、製造する鋼種を選択することができることはないものとする(例えば、鋼種Aと鋼種Bの双方で製造することが可能なスラブグループはないものとする)。
【0064】
また、枝をeと表記すると、枝eで相互に接続される2つのスラブグループiの鋼種が異なる場合、当該枝eに対しコストCe(e)が設定される。本実施形態では、前述した鋼種の数に対するコスト係数CGがコストCe(e)として設定される((4)式を参照)。図5に示す例では、頂点523、527を接続する枝と、頂点524、525を接続する枝eに対しコストCe(e)が設定される。一方、その他の枝eに対してコストCe(e)は設定されない(コストCe(e)は0(ゼロ)になる)。本実施形態では、グラフG(V,E)が無向グラフである場合を例に挙げて説明する。尚、枝eで接続される2つの頂点に対するスラブグループの製造順でコストCe(e)を異ならせる場合には、グラフG(V,E)を有向グラフとする。
【0065】
列生成部107は、以上のようなグラフG(V,E)を作成する。本実施形態では、列生成部107は、始点511から終点512(または頂点521~527)に至る経路に含まれるスラブグループiに対する双対変数λiの最適解(双対解)と、当該経路に含まれる枝eのコストCe(e)と、当該経路に含まれるスラブグループiがキャストとして成立するための条件を示すロット成立制約と、を用いて、当該経路が、集合分割問題MP(原問題)の最適解の候補となる列(実現可能ロットa)に対応する経路であるか否かを判定する。本実施形態では、ロット成立制約として、スラブ重量の合計値が、予め設定される上限値である最大ロット重量MaxW以下であるという制約を用いる。列生成部107は、このようなロット成立制約を満たし、且つ、当該経路に含まれる枝eのコストCe(e)の総和から、当該経路に含まれるスラブグループiに対する双対変数λiの最適解(双対解)の総和を減算した値が最小になる経路を、当該経路に含まれるスラブグループiの数毎(後述するステップ数h毎)に探索する。以下の説明では、このような経路を、必要に応じて最短経路と称する。列生成部107は、このような最短経路に含まれる全てのスラブグループを、列生成子問題SPの解(実現可能ロットa)の1つとする。
【0066】
また、本実施形態では、列生成部107は、最短経路を探索する際に、先行点(始点511または頂点521~527)と当該先行点と枝eを介して接続される後行点(終点512または頂点521~527)との2つの点において、ロット成立制約を満たすか否かと、これら2つの点が(暫定的な)最短経路になるか否かとを、始点511を初期の第1の点として判定する。そのために、列生成部107は、始点511から先行点を経由して後行点に至る(暫定的な)最短経路に含まれる枝eのコストCe(e)の総和から、当該(暫定的な)最短経路に含まれるスラブグループiに対する双対変数λiの最適解(双対解)の総和を減算した値を記憶する。また、列生成部107は、始点511から先行点を経由して後行点に至る(暫定的な)最短経路に含まれるスラブグループiにおけるスラブ重量の総和を記憶する。
【0067】
以上のようにすることにより、列生成部107は、当該後行点を先行点とし、当該先行点と枝eを介して接続される点を後行点として先行点および後行点を更新した場合に、更新後の先行点が更新前に後行点であるときに記憶した情報を用いて、始点511から当該更新後の先行点を経由して当該更新後の後行点に至る経路が(暫定的な)最短経路であるか否かの判定と、当該経路に含まれるスラブグループiがロット成立制約を満たすか否かの判定と、を行うことができる。即ち、列生成部107は、始点511から先行点に至る経路が(暫定的な)最短経路であるか否かをその都度判定する必要はない。尚、先行点が始点511(初期の点)である場合、列生成部107は、始点511から後行点に至る経路において、ロット成立制約を満たすか否かの判定と、最短経路の候補であるか否かの判定とを行う。
【0068】
ここで、始点511から別の点(頂点521~527または終点512)に至るまでに経由した枝eの数をステップ数hと定義する。例えば、始点511から頂点521に至る経路のステップ数hは「1」であり、始点511から頂点521を経由して終点512に至る経路のステップ数hは「2」である。本実施形態では、1つの経路において同じ頂点が2つ含まれることはないものとする。同様に、本実施形態では、1つの経路において始点511、終点512が、それぞれ2つ含まれることはないものとする。
【0069】
図6は、グラフG(V,E)を用いて、列生成子問題SPの解(実現可能ロットa)を導出する方法の一例を説明するフローチャートである。図7は、図6のフローチャートの処理を補足説明するためのグラフG(V,E)を示す図である。図7は、説明が煩雑になることを避けるために、図5に示すグラフG(V,E)のうち、始点511、終点512、および頂点521~524のみを示した図である。
【0070】
また、図7に示すグラフG(V,E)において、始点511、終点512、および頂点521~524を示す○の中に付されている数字は、当該スラブグループiのスラブグループNo.を表す。ただし、始点511および終点512に対応するスラブグループiはダミーのスラブグループi(スラブグループ情報400には含まれない架空のスラブグループ)とする。点511従って、図7に示す頂点521~524に対応するスラブグループiのスラブグループNo.(「2」~「5」)は、例えば、実際のスラブグループNo.に「1」を加算したものとする。なお、始点511および終点512に対応するスラブグループiのスラブ重量は0(ゼロ)とし、始点511または終点512に接続する枝eに対するコストCe(e)は0(ゼロ)とする。
以下、図7を参照しながら、図6のフローチャートによる処理を説明する。列生成部107は、図2の列生成ステップS207において、図5図7)のようなグラフGを作成した後に、図6のフローチャートの処理を開始する。
【0071】
まず、ステップS601において、列生成部107は、ループ回数lの現在値を「1」に設定する。ループ回数lは、ステップS602~S616の処理の繰り返し数に対応する。ループ回数lを設定する意味については、ステップS615の処理の説明の際に併せて説明する。また、列生成部107は、先行点i1のスラブグループNo.の現在値を「1」に設定する(l=1、i1=1)。ここでは、始点511が設定される。
【0072】
次に、ステップS602において、列生成部107は、ステップS601またはS614において現在設定されている先行点i1に枝eを介して接続される点(頂点または終点)の集合である後行点集合I2(i1)から後行点i2の1つを選択する。また、列生成部107は、ステップS601またはS614において現在設定されている先行点i1に接続される枝eの集合である枝集合E(i1)から、当該先行点i1と当該後行点i2とを接続する枝eとを選択する。図7において、始点511が先行点i1として選択された場合、後行点集合I2(1)の要素は、スラブグループNo.が「2」、「3」、「4」、「5」のスラブグループiに対応する頂点521~524である。枝集合E(1)の要素は、始点511と、頂点521~524とを接続する枝eである。例えば、これらの頂点521~524から、スラブグループNo.が「2」のスラブグループiに対応する頂点523が後行点i2として選択され、始点511および頂点523を接続する枝eが選択される。
【0073】
次に、ステップS603において、列生成部107は、ステップ数hの現在値を「1」に設定する。これにより、始点511から先行点i1を経由して後行点i2にステップ数hが「1」(1ステップ)で到達する経路が設定される。尚、先行点i1が始点511である場合には、始点511(先行点i1)から後行点i2にステップ数hが「1」で到達する経路が指定される。例えば、始点511が先行点i1として設定され、頂点523が後行点i2として選択された場合、始点511から頂点523まで至る経路のうちステップ数hが「1」の経路が設定される。このような経路は、始点511から頂点523に直接到達する経路1つである。一方、始点511から頂点523まで至る経路のうちステップ数hが「2」の経路には、始点511から頂点522を経由して頂点523に至る経路と、始点511から頂点524を経由して頂点523に至る経路と、始点511から頂点521を経由して頂点523に至る経路と、の3つの経路がある。
【0074】
次に、ステップS604において、列生成部107は、現在選択されている後行点i2が、(暫定的な)最短経路path(i1,h-1)に含まれるか否かを判定する。(暫定的な)最短経路path(i1,h-1)は、始点511から先行点i1にステップ数h-1で至る(暫定的な)最短経路を示す。ステップ数hが「1」のときは、ステップ数h-1は「0」になるため、後行点i2が、(暫定的な)最短経路path(i1,h-1)に含まれることはない。
【0075】
一方、後行点i2が、(暫定的な)最短経路path(i1,h-1)に含まれる例について説明する。例えば、先行点i1が頂点524であり、ステップ数hが「3」であるとする。この場合、(暫定的な)最短経路path(i1,h-1)は、path(4,2)になる。このとき、(暫定的な)最短経路path(2,1)が始点511から頂点523に至る経路であるとすると、後行点i2として頂点523を更に選択することは、(暫定的な)最短経路に、頂点523を2回含めることになる。これは、同じスラブグループiのスラブを同一のキャストで2回製造することを示す。このような製造は行われないため、(暫定的な)最短経路に同じ頂点が複数回含まれないようにする必要がある。
【0076】
そこで、本実施形態では、ステップS604において、列生成部107は、後行点i2が、(暫定的な)最短経路path(i1,h-1)に含まれると判定した場合(ステップS604でYESの場合)には、ステップS605以降で行う、ステップS603またはS610において現在設定されている経路が(暫定的な)最短経路であるか否かの確認を行わずに、後述するステップS610に処理を進める。
【0077】
一方、ステップS604の判定の結果、後行点i2が、(暫定的な)最短経路path(i1,h-1)に含まれない場合(ステップS604でNOの場合)、処理は、ステップS605に進む。処理がステップS605に進むと、列生成部107は、ステップS603またはS610において現在設定されている経路に含まれるスラブグループiがロット成立制約を満たすか否かを判定する。前述したように本実施形態では、ロット成立制約として、スラブ重量の合計値が、最大ロット重量MaxW以下であるという制約を用いる。
【0078】
従って、ステップS605では、列生成部107は、ステップS603またはS610において現在設定されている経路に含まれるスラブグループiのスラブ重量の合計値が、最大ロット重量MaxW以下である場合に、当該経路に含まれるスラブグループiはロット成立制約を満たすと判定し、そうでない場合に、当該経路に含まれるスラブグループiはロット成立制約を満たさないと判定する。
【0079】
このとき、列生成部107は、現在設定されている経路に含まれるスラブグループiのスラブ重量の合計値を以下の計算を行うことにより求める。即ち、列生成部107は、始点511から先行点i1にステップ数が「h-1」で至る(暫定的な)最短経路に含まれるスラブグループiのスラブ重量の合計値であるロット重量w(i1,h-1)に、後行点i2に対応するスラブグループiのスラブ重量W(i2)を加算する。ここで、ロット重量w(i1,h-1)は、後述するステップS608で導出されているものである。尚、ステップ数hが「1」である場合、(ステップ数h-1(=0)は、スラブ重量が「0(ゼロ)」である始点511を示すものであるため)ロット重量w(i1,h-1)は「0(ゼロ)」になる。
【0080】
以上のステップS605の判定の結果、現在設定されている経路に含まれるスラブグループiがロット成立制約を満たさない場合(ステップS605でNOの場合)、当該経路を最短経路とすることはできない。この場合、ステップS606以降で行う、現在設定されている経路が(暫定的な)最短経路であるか否かの確認を行わずに、後述するステップS610に処理を進める。一方、現在設定されている経路に含まれるスラブグループiがロット成立制約を満たす場合(ステップS605でYESの場合)、処理はステップS606に進む。
【0081】
処理がステップS606に進むと、列生成部107は、ステップS603またはS610において現在設定されている経路を、始点511から先行点i1を経由して後行点i2にステップ数が「h」で至る(暫定的な)最短経路とし、以下の(7)式により、列追加判定用のコストcalcostを算出する。
calcost=cost[i1,h-1]+Ce(e)-λi2 ・・・(7)
コストcost[i1,h-1]は、始点511からステップ数が「h-1」で先行点i1に至る(暫定的な)最短経路に含まれるスラブグループiで構成される実現可能ロットaに対するコスト(tmp_cost)である。λi2は、後行点i2に対応するスラブグループiに対する双対変数λiの最適解(双対解)である。Ce(e)は、先行点i1と後行点i2とを接続する枝eに対して設定されているコストである。尚、(暫定的な)最短経路に含まれる枝eに対するコストC(e)の総和が、当該(暫定的な)最短経路に含まれる実現可能ロットaのコストになる。当該経路に含まれる枝eの集合をEcostとすると、実現可能ロットaのコストは、Σe∈EcostCe(e)となる。
【0082】
そして、列生成部107は、コストcalcostを、現在設定されている経路に含まれるスラブグループiで構成される実現可能ロットaに対する列追加判定用のコストtmp_costとする。
尚、ステップ数hが「1」である場合、(7)式のcost[i1,h-1]は0(ゼロ)である。例えば、始点511が先行点i1として選択され、頂点523が後行点i2として選択され、ステップ数hが「1」である場合、始点511と頂点523とを接続する枝eに対して設定されているコストCe(e)から、頂点523に対応するスラブグループNo.が「2」のスラブグループiに対する双対変数λ2の最適解(双対解)を引いた値がコストcalcost(=tmp_cost)として算出される。
【0083】
また、頂点522が先行点i1として選択され、頂点523が後行点i2として選択され、ステップ数hの現在値が「2」であるとする。また、ステップ数hが「1」であったときの(暫定的な)最短経路が先行点i1(始点511)から頂点522に至る経路であるとする。この場合、コストcost[i1,h-1](=cost[3,1])は、始点511と頂点522とを接続する枝eに対して設定されているコストCe(e)から、頂点522に対応するスラブグループNo.が「3」のスラブグループ3に対する双対変数λ3の最適解(双対解)を引いた値である。この場合、コストcalcost(=tmp_cost)は、(7)式より、このコストcost[i1,h-1](=cost[3,1])と、頂点522と頂点523とを接続する枝eに対して設定されているコストCe(e)との和から、頂点702に対応するスラブグループNo.が「2」のスラブグループiに対する双対変数λ2の最適解(双対解)を引いた値である。
【0084】
また、(暫定的な)最短経路path(i1,h-1)が存在せず、コストcost[i1,h-1]が存在しない場合、(7)式のコストcost[i1,h-1]には、列追加判定用のコストtmp_costとしてとり得る値よりもはるかに大きな値が設定される。このようにすることで、コストcost[i1,h-1]が存在しない場合には、列追加判定用のコストtmp_costが極めて大きな値となる。従って、当該列追加判定用のコストtmp_costが後述するステップS608で最終的にコストcost(i2,h)として残らないようになる。
【0085】
次に、ステップS607において、列生成部107は、ステップS606で設定された列追加判定用のコストtmp_costが、既導出の列追加判定用のコストcost(i2,h)よりも小さいか否かを判定する。列追加判定用のコストcost(i2,h)は、後述するステップS608で導出(更新)されるものである。既導出の列追加判定用のコストcost(i2,h)は、ステップS603またはS610において現在設定されている経路と後行点i2およびステップ数hが同じである場合の値として既に導出されている列追加判定用のコストの最小値である。尚、既導出の列追加判定用のコストcost(i2、h)が存在しない場合には、列追加判定用のコストtmp_costは、既導出の列追加判定用のコストcost(i2、h)よりも小さいと無条件で判定される(ステップS607でYESと判定される)ものとする。ステップS607の判定を行っているのは、ステップS606で設定された列追加判定用のコストtmp_costが、既導出の列追加判定用のコストcost(i2,h)よりも小さくない場合には、ステップS603またはS610において現在設定されている経路を(暫定的な)最短経路とすることはできないからである。
【0086】
例えば、頂点523におけるステップ数hが「2」であるときの(暫定的な)最短経路として、始点511から頂点524を経由して後行点i2(頂点523)に至る経路が既に得られているとする。この場合、既導出の列追加判定用のコストcost(i2,h)(=cost[2,2])として、当該経路に含まれるスラブグループiで構成される実現可能ロットaに対する列追加判定用のコストが得られていることになる。
【0087】
このような列追加判定用のコストcost(i2、h)が設定されている状態で、ステップS606で算出したコストcalcost(=tmp_cost)として、始点511から頂点522を経由してステップ数hが「2」で頂点523に至る経路に含まれるスラブグループiで構成される実現可能ロットaに対する列追加判定用のコストが導出されたとする。
この場合、ステップS607においては、始点511から頂点524を経由してステップ数hが「2」で頂点523に至る経路に含まれるスラブグループiで構成される実現可能ロットaに対する列追加判定用のコストよりも、始点511から頂点522を経由してステップ数hが「2」で頂点523に至る経路に含まれるスラブグループiで構成される実現可能ロットaに対する列追加判定用のコストが小さいか否かが判定される。
【0088】
以上のようにして行われるステップS607の判定の結果、ステップS606で設定された列追加判定用のコストtmp_costが、既導出の列追加判定用のコストcost(i2,h)よりも小さくない場合(ステップS607でNOの場合)、現在設定されている経路を(暫定的な)最短経路とすることはできない。この場合、ステップS608で行う、始点511から先行点i1を経由して後行点i2にステップ数が「h」で至る(暫定的な)最短経路の更新を行わずに、後述するステップS610に処理を進める。
【0089】
一方、ステップS606で設定された列追加判定用のコストtmp_costが、既導出の列追加判定用のコストcost(i2,h)よりも小さい場合、処理はステップS608に進む。処理がステップS608に進むと、列生成部107は、既導出の列追加判定用のコストcost(i2,h)を直前のステップS606で設定された列追加判定用のコストtmp_costに変更して、既導出の列追加判定用のコストcost(i2,h)を更新する。
また、列生成部107は、始点511から先行点i1を経由して後行点i2にステップ数が「h」で至る(暫定的な)最短経路path(i2,h)を、ステップS603またはS610において現在設定されている経路に更新する。
【0090】
また、列生成部107は、点511から先行点i1を経由して後行点i2にステップ数が「h」で至る(暫定的な)最短経路に含まれるスラブグループiのスラブ重量の合計値であるロット重量w(i2,h)を、現在設定されている経路に含まれるスラブグループiのスラブ重量の合計値に変更してロット重量w(i2,h)を更新する。尚、ステップS605で使用されるロット重量w(i1,h-1)は、ステップS608で更新されるロット重量w(i2,h)の中から(i1と同じi2を持ちh-1と同じhを持つものが)選択される。
ステップS608では、ロット成立制約を満たす実現可能ロットaであって、且つ、列追加判定用のコストが既導出のものよりも小さくなる実現可能ロットaに基づく情報が記憶されるので、製造することができない実現可能ロットaや、集合分割問題の解の候補とならない実現可能ロットa(列)が後述するステップS209で追加されることを抑制することができる。
【0091】
前述したステップS607における具体例で、始点511から頂点524を経由してステップ数hが「2」で頂点523に至る経路に含まれるスラブグループiで構成される実現可能ロットaに対する列追加判定用のコストよりも、始点511から頂点522を経由してステップ数hが「2」で頂点523に至る経路に含まれるスラブグループiで構成される実現可能ロットaに対する列追加判定用のコストが小さい場合(ステップS607でYESの場合)、ステップS608では、以下の処理が行われる。
【0092】
まず、列生成部107は、始点511から頂点524を経由してステップ数hが「2」で頂点523に至る経路に含まれるスラブグループiで構成される実現可能ロットaに対する列追加判定用コストから、始点511から頂点522を経由してステップ数hが「2」で頂点523に至る経路に含まれるスラブグループiで構成される実現可能ロットaに対する列追加判定用のコストに、コストcost(i2,h)(=cost(2,2))を変更する。また、列生成部107は、始点511から頂点524を経由してステップ数hが「2」で頂点523に至る経路から、始点511から頂点522を経由してステップ数hが「2」で頂点523に至る経路に、(暫定的な)最短経路path(i2,h)(=path(2,2))を変更する。また、列生成部107は、始点511から頂点524を経由してステップ数hが「2」で頂点523に至る経路に含まれるスラブグループiのスラブ重量の合計値から、始点511から頂点522を経由してステップ数hが「2」で頂点523に至る経路に含まれるスラブグループiのスラブ重量の合計値に、ロット重量w(i2,h)(=w(2,2))を変更する。
【0093】
次に、ステップS609において、列生成部107は、ステップ数hが上限値hmax以下であるか否かを判定する。上限値hmaxとして、例えば、ステップ数hとしてとり得る最大値を採用することができる。例えば、全ての頂点が枝eで接続される場合、上限値hmaxとして、スラブグループNo.の最大値(図7に示す例では「6」)を用いることができる。
この判定の結果、ステップ数hが上限値hmax以下である場合(ステップS609でYESの場合)、処理はステップS610に進む。
【0094】
処理がステップS610に進むと、列生成部107は、ステップ数hに「1」を加算してステップ数hを更新する。これにより、始点511から先行点i1を経由して後行点i2にステップ数hが「h+1」(h+1ステップ)で到達する経路が設定される。そして、処理はステップS604に戻る。例えば、先行点i1が始点511であり、後行点i2が頂点523であり、更新前のステップ数hが「1」である場合、始点511から頂点523にステップ数hが「2」で至る経路について、ステップS604~S608の処理が行われる。以上のようにして、ステップ数hが上限値hmax以下でなくなるまで、ステップS604~S610の処理が繰り返し実行される。
【0095】
そして、ステップS609において、ステップ数hが上限値hmax以下でないと判定されると(ステップS609でYESと判定されると)、処理はステップS611に進む。処理がステップS611に進むと、列生成部107は、ステップS601またはS614において現在設定されている先行点i1に枝eを介して接続される点(頂点または終点)の集合である後行点集合I2(i1)が空集合φであるか否かを判定する。即ち、列生成部107は、現在設定されている先行点i1に枝eを介して接続される点(頂点または終点)の全てについて、ステップS602~S610の処理を実行したか否かを判定する。例えば、先行点i1が始点511である場合、列生成部107は、始点511に枝eを介して接続される頂点52~524の全てについて、ステップS602~S610の処理を実行したか否かを判定する。
【0096】
この判定の結果、ステップS601またはS614において現在設定されている先行点i1に枝eを介して接続される点(頂点または終点)の集合である後行点集合I2(i1)が空集合φでない場合(ステップS611でNOの場合)、処理はステップS612に進む。処理がステップS612に進むと、列生成部107は、後行点集合I2(i1)から、直近のステップS602で選択した後行点i2を除く。また、列生成部107は、現在設定されている先行点i1と直近のステップS602で選択した後行点i2を接続する枝eを枝集合E(i1)から除く。列生成部107は、以上のようにして、後行点集合I2(i1)および枝集合E(i1)を更新する。そして、処理はステップS602に戻り、更新後の後行点集合I2(i1)および枝集合E(i1)について、ステップS602~S610の処理が実行される。
【0097】
例えば、先行点i1が始点511である場合、後行点集合I2(i1)(=I2(1))の要素は、頂点521~524である。この状況においてステップS602で後行点i2として頂点521が選択された場合、その後のステップS612において、後行点集合I2(i1)の要素は、頂点522~524に更新される。この場合、その後のステップS602では、後行点i2として、頂点522~524の何れか1つが選択される。
以上のように、ステップS601またはS614において現在設定されている先行点i1に枝eを介して接続される点の全てについてステップS602~S609の処理が実行されるまで、ステップS602~S611の処理が繰り返し実行される。
【0098】
そして、ステップS611において、ステップS601またはS614において現在設定されている先行点i1に枝eを介して接続される点(頂点または終点)の集合である後行点集合I2(i1)が空集合φであると判定されると(ステップS611でYESと判定されると)、処理はステップS613に進む。処理がステップS613に進むと、列生成部107は、先行点i1(のスラブグループNo.)が上限値imax以下であるか否かを判定する。上限値imaxとして、例えば、スラブグループNo.の最大値から「1」を減算した値(図7に示す例では「5」)を採用することができる。
【0099】
この判定の結果、先行点i1(のスラブグループNo.)が上限値imax以下である場合(ステップS613でYESの場合)、処理はステップS614に進む。処理がステップS614に進むと、列生成部107は、先行点i1(のスラブグループNo.)に「1」を加算して先行点i1(のスラブグループNo.)を更新する。そして、処理はステップS602に戻り、更新後の先行点i1について、ステップS602~S612の処理が実行される。
【0100】
例えば、更新前の先行点i1が始点511である場合、ステップS614では、先行点i1として頂点523が設定される。この場合、その後のステップS602では、頂点523に枝eを介して接続される点の集合である後行点集合I2(i2)が設定される。尚、頂点523に接続される点の集合には始点511も含まれる。しかしながら、始点511が後行点i2である場合、始点511は必ず最短経路に含まれる。従って、この場合、ステップS604では、当該後行点i2(始点511)は、(暫定的な)最短経路path(i1,h-1)に含まれている(YES)と判定される。
【0101】
以上のように、始点511および全ての頂点521~524を先行点i1としてステップS602~S612の処理が実行されるまで、ステップS602~S614の処理が繰り返し実行される。
そして、ステップS613において、先行点i1(のスラブグループNo.)が上限値imax以下でないと判定されると(ステップS613でYESと判定されると)、処理はステップS615に進む。処理がステップS615に進むと、列生成部107は、ループ回数lとして、上限値lmax以下であるか否かを判定する。上限値lmaxは、例えば、ループ回数lとしてとり得る最大値を採用することができる。例えば、算出し得る全てのコストcalcost(tmp_cost)が導出されると、ループ回数lが上限値lmaxを超えたと判定することができる。例えば、全ての頂点が枝eで接続される場合、上限値lmaxとして、スラブグループNo.の最大値(図7に示す例では「7」)を用いることができる。
【0102】
ここで、ループ回数lを設定する必要がある理由の一例を説明する。
例えば、先行点i1が始点511であり、後行点i2が頂点523であり、ステップ数hが「1」である場合、ステップS606においては、スラブグループNo.が「2」のスラブグループで構成される実現可能ロットaに対する列追加判定用のコストcalcost(tmp_cost)として計算される。そして、ステップS608においては、当該コストcalcost(tmp_cost)がcost(i2,h)(=cost(2,1))として設定される。また、(暫定的な)最短経路path(i2,h)(=path(2,1))として、始点511からステップ数hが「1」で頂点523に至る経路が設定される。
【0103】
その後、ステップS609において、ステップ数hが上限値hmax以下であると判定され(YESと判定され)、ステップS610において、ステップ数hが「2」に更新される。この場合、先行点i1である始点511から後行点i2である頂点523にステップ数hが「2」で至る経路は、始点511から頂点522を経由して頂点523に至る経路と、始点511から頂点524を経由して頂点523に至る経路と、始点511から頂点521を経由して頂点523に至る経路との3つの経路がある。しかしながら、コストcost[i1,h-1](=cost[3,1]、cost[4,1]、cost[5,1]))が得られていないため、これら3つの経路のうち、どの経路が(暫定的な)最短経路path(i1,1)であるのかが不明である。このため、ステップS606において、(7)式のcost[i1,1]として、列追加判定用のコストtmp_costとしてとり得る値よりもはるかに大きな値が設定される。従って、ステップS608において、cost(i2,h)(=cost(2,2))として極めて大きな値が設定される。このため、後行点i2が頂点523であり、ステップ数hが「2」である場合の経路が最短経路であるか否かの探索が実質的に行われない。
【0104】
その後、ステップS609において、ステップ数hが上限値hmax以下でないと判定されると(NOと判定されると)、後行点i2が頂点522である場合の処理がステップS602~S612で行われる。そうすると、先行点i1を始点511とし、後行点i2を頂点522とし、ステップ数hを「1」としたときのコストが求められる。そうすると、始点511から、ステップ数hが「1」で先行点i1(頂点522)に至る(暫定的な)最短経路に含まれるスラブグループiで構成される実現可能ロットaに対する列追加判定用のコストcost[i1,h-1](=cost[i1,1])が求められる。従って、この情報を使って(7)式の計算を行うことにより、後行点i2が「2」であり、ステップ数hが「2」である場合に、ステップS608において、cost(i2,h)(=cost(2,2))として極めて大きな値が設定されない。即ち、後行点i2が頂点523であり、ステップ数hが「2」である場合の経路が最短経路であるか否かの探索を行える。しかしながら、スラブグループNo.iを「1」に戻したうえで、ステップS602~S614の処理をもう一度行わないと、先行点i1が始点511であり、後行点が頂点523であり、ステップ数hが「2」である場合の処理を行うことができない。従って、スラブグループNo.iを「1」に戻したうえで、ステップS602~S614の処理を繰り返す必要がある。このため、ループ回数lを設定して、スラブグループNo.iを「1」に戻したうえで、ステップS602~S614の処理を繰り返すことができるようにする。
【0105】
図6の説明に戻り、ステップS615の判定の結果、ループ回数lが上限値lmax以下である場合(ステップS615でYESの場合)、処理はステップS616に進む。処理がステップS616に進むと、列生成部107は、スラブグループNo.iを「1」に初期化すると共に、ループ回数lに「1」を加算してループ回数lを更新する。そして、処理はステップS602に戻り、前述したステップS602~S614の処理が実行される。前述したように、ループ回数lが「1」の場合には、先行点i1が始点511であり、後行点が頂点523であり、ステップ数hが「2」である場合において、(暫定的な)最短経路path(i1,h-1)(=path(i1,1))が求められていない。しかしながら、このようなループ回数lの更新による繰り返し処理により、先行点i1が始点511であり、後行点が頂点523であり、ステップ数hが「2」である場合において、(暫定的な)最短経路path(i1,h-1)(=path(i1,1))として、始点511から頂点522を経由して頂点523に至る経路、始点511から頂点524を経由して頂点523に至る経路、または、始点511から頂点521を経由して頂点523に至る経路が求められている状態になる。
【0106】
以上のようにステップS602~S616の処理が、lmax回繰り返されると、処理はステップS617に進む。処理がステップS617に進むと、列生成部107は、ステップS608において得られた最新の(暫定的な)最短経路path(6,h)を、始点511からステップ数hで終点512に至る最短経路として決定する。そして、列生成部107は、当該最短経路に含まれるスラブグループiの集合を1つの実現可能ロットaとして決定することを、ステップ数h毎に行う。また、列生成部107は、ステップS608において得られた最新のロット重量w(6,h)に基づいて、各実現可能ロットaに含まれるスラブグループiのスラブ重量の合計値を決定することを、ステップ数h毎に実行する。また、列生成部107は、ステップS608において得られた最新の実現可能ロットaに対する列追加判定用のコストcost(6,h)に基づいて、各実現可能ロットaに対する列追加判定用のコストcostを決定することを、ステップ数h毎に実行する。
【0107】
図7に示す例では、スラブグループiの数は「4」である。例えば、ステップ数hが「2」のときの最短経路path(6,2)が、始点511から頂点523を経由して終点512に至る経路である場合(path(6,2)={1,2,6}である場合)、ステップ数hが「2」である場合の実現可能ロットaの要素は、スラブグループNo.が「2」のスラブグループiのみとなる。ここでは、実現可能ロットaを示す列の要素の値として、当該実現可能ロットaに含まれるスラブグループNo.のスラブグループiに対する要素には「1」が設定され、当該実現可能ロットaに含まれないスラブグループNo.のスラブグループiに対する要素には「0」が設定されるものとする。また、実現可能ロットaを示す列において、スラブグループNo.が小さいスラブグループiの値であるほど、前の要素(上の行)として設定されるものとする。図7に示す例では、スラブグループNo.が「2」、「3」、「4」、「5」のスラブグループiに対する要素が、列の1行目、2行目、3行目、4行目に設定される。従って、ステップ数hが「2」である場合の実現可能ロットaはa={1,0,0,0}と表される。
また、ステップ数hが「2」である場合の実現可能ロットaに含まれるスラブグループiのスラブ重量の合計値は、スラブグループNo.が「2」のスラブグループiのスラブ重量になる。
また、ステップ数hが「2」である場合の実現可能ロットaのコストcostは、コストcost(6,2)になる。
【0108】
列生成部107は、以上のようにして集合分割問題に追加する実現可能ロットaを表す列と当該実現可能ロットaに対する列追加判定用のコストcostを、ステップ数h毎に生成する。本実施形態では、図6に示すような繰り返し計算により、始点511から終点512に至る経路から、可及的に多くの実現可能ロットaを生成することができる。
【0109】
<判定部108、ステップS208>
新たな実現可能ロットaに対する列追加判定用のコストcostが負である場合、即ち、当該新たな実現可能ロットaのコストcostを得たときに設定されている経路に含まれる枝eのコストCe(e)の総和(Σe∈EcostCe(e))が、当該経路に含まれるスラブグループiに対する双対変数λiの最適解(双対解)の総和(双対コスト(=Σi∈NIλi×ai))を下回る(Σe∈EcostCe(e)<Σi∈NIλi×ai)場合には、双対問題DLPの双対解は、双対問題DLPの真の最適解となっていない。即ち、この場合には、実現可能ロットj(列)が行列Ai,jに十分に追加されていないことになる。よって、新たな実現可能ロットaに対する列追加判定用のコストcostが負である場合には、当該新たな実現可能ロットaは、原問題である集合分割問題MPの最適解の候補となり、行列Ai,jに追加される必要がある。
【0110】
本実施形態では、そこで、判定部108は、列生成部107により求められた新たな実現可能ロットaに対する列追加判定用のコストcost(i2,h)の少なくとも1つが負の値を持つかを判定する。以下の説明では、新たな実現可能ロットaに対する列追加判定用のコストcost(i2,h)の少なくとも1つが負の値を持つことを必要に応じて列追加要件と称する。
【0111】
この判定の結果、列追加要件を満足する場合には、列生成部107により求められた新たな実現可能ロットaを、行列Ai,jに追加する必要がある。一方、列追加要件を満足しない場合には、新たな実現可能ロットaをこれ以上行列Ai,jに追加しても、当該新たな実現可能ロットaは、原問題である集合分割問題MPの最適解の候補になることはないと見なせる。
【0112】
<列追加部109、ステップS209>
列追加部109は、判定部108により列追加要件を満足すると判定されると、列生成部107により導出された新たな実現可能ロットaを、行列Ai,jに追加する。例えば、列追加部109は、現在の行列Ai,jの最後の列の次の列に、列生成部107により導出された新たな実現可能ロットaを追加する。これにより、行列Ai,j(即ち、集合分割問題MPにおける部分集合)が更新される。
【0113】
<新たな実現可能ロットaを追加した後の繰り返し計算>
以上のようにして列追加部109により新たな実現可能ロットaが行列Ai,jに追加されることにより、行列Ai,jの現在値が更新される。この場合、処理はステップS205に戻り、集合分割問題構築部104は、新たに追加された実現可能ロットaのコストcjを導出する((4)式を参照)。そして、ステップSプ206において、双対解導出部106は、更新後の行列Ai,jを用いて、(6)式の制約式を満足する範囲で(5)式の目的関数の値を最大にする双対変数λiを、双対解として導出する。
【0114】
更に、ステップS207において、列生成部107は、このようにして導出された双対変数λiとグラフG(V,E)とを用いて、新たな実現可能ロットaに対する列追加判定用のコストcost(i2,h)を導出する。
そして、ステップ208において、判定部108は、このようにして導出された新たな実現可能ロットaに対する列追加判定用のコストcost(i2,h)の少なくとも1つが負であるか否か(列追加要件を満足するか否か)を判定する。この判定の結果、列追加要件を満足する場合には、ステップS209において、列生成部107により導出された新たな実現可能ロットaを行列Ai,jに追加する。
【0115】
以上の処理を、判定部108により、列追加要件を満足しないと判定されるまで繰り返し行う。尚、以上の説明において、判定部108は、列生成部107により導出された新たな実現可能ロットaが既に行列Ai,jに含まれている場合にも、列生成要件を満足しないと判定するものとする。
【0116】
<最適解導出部110、ステップS210>
最適解導出部110は、判定部108により、列追加要件を満足しないと判定されると、前述した集合分割問題MPの求解を行う。具体的に説明すると最適解導出部110は、判定部108により、列追加要件を満足しないと判定された時点で得られている(最新の)行列Ai,jを用いて、CPLEX(登録商標)等の公知のソルバーを用いて0-1整数計画法による最適化計算を行うことにより、(1)式の制約式を満足する範囲で(2)式の目的関数Jの値を最小にする決定変数zjを導出し、実現可能ロットj群の最適解を導出する。
【0117】
本実施形態では、キャスト編成の対象となるスラブグループiの全体集合NIから全ての実現可能ロットjを生成したものを実現可能ロットjの集合として、集合分割問題MPを解くのではなく、実現可能ロットjの初期値と、列追加部109により追加された新たな実現可能ロットaとを実現可能ロットjの集合として、集合分割問題MPを解く。前述したように、本実施形態では、新たな実現可能ロットaに対する列追加判定用のコストcostが負である場合に、列追加部109による新たな実現可能ロットaの追加が行われる。そして、実現可能ロットjの集合(行列Ai,j)が収束し、新たな実現可能ロットaが集合分割問題MPの最適解の候補になることはないと見なせる場合には、列追加部109による新たな実現可能ロットaの追加は行われない。従って、計算精度を大きく落とすことなく、実現可能ロットjの列挙数を少なくすることができる。その結果、主として計算機の主メモリが不足することにより、実現可能ロットjの列挙ができないことや、列挙出来たとしてもその後の集合分割問題を解くことが出来ないこと等により、キャスト計画を作成することができないという事態が生じることを抑制することができる。また、1回の列生成部107の処理で、実現可能ロットaに対する列追加判定用のコストcost(i2,h)がステップ数h毎に求められる(即ち、実現可能ロットaに対する列追加判定用のコストcost(i2,h)が複数求められる)。このため、列追加部109により1回に追加される新たな実現可能ロットaの数を複数にすることが可能になる。
【0118】
<出力部111、ステップS211>
各実現可能ロットjは、それぞれキャストに対応する。出力部111は、最適解導出部110により導出された実現可能ロットj群の最適解に基づいて、各実現可能ロットjに含まれるスラブグループiを構成するスラブの情報をキャスト計画の立案結果として出力する。出力部111は、例えば、コンピュータディスプレイへの表示、外部装置への送信、および、内部または外部の記憶媒体への記憶の少なくとも何れか1つを行うことにより、それぞれのキャストに含まれるスラブの情報を出力する。例えば、出力部111は、図3に示したスラブ情報300の項目として、キャストを識別する番号であるキャストNo.を追加した情報を、それぞれのキャストに含まれるスラブの情報として出力することができる。
【0119】
(まとめ)
以上のように本実施形態では、キャスト編成装置100は、集合分割問題MPを線形緩和した線形緩和問題LPを主問題とした場合の双対問題DLPの最適解である双対解(双対変数λiの最適解)を導出する。そして、キャスト編成装置100は、当該双対解を用いて、双対変数λiの最適解と、グラフG(V,E)とを用いて、列生成子問題SPの解として新たな実現可能ロットaを導出する。即ち、キャスト編成装置100は、グラフG(V,E)において、始点511から終点512に至る経路の中から、ロット成立制約を満たし、且つ、当該経路に含まれる枝eのコストCe(e)の総和から、当該経路に含まれるスラブグループiに対する双対変数λiの最適解(双対解)の総和を減算した値が最小になる経路を探索する。そして、キャスト編成装置100は、当該新たな実現可能ロットaのコスト(Σe∈EcostCe(e))から当該新たな実現可能ロットaに対する双対コスト(=Σi∈NIλi×ai)を減算した値が負である(即ち、列追加要件を満足する)場合に、当該新たな実現可能ロットaを、集合分割問題MPにおける部分集合を示す行列Ai,jに追加する。キャスト編成装置100は、かかる新たな実現可能ロットaの追加を、列追加要件を満足しなくなるまで繰り返し行う。キャスト編成装置100は、このようにして得られた行列Ai,jを用いて集合分割問題MPを解いて決定変数zjを導出し、それぞれの実現可能ロットjに含まれるスラブグループiの最適解を導出する。
【0120】
従って、キャスト編成問題に列生成法を適用することができるようになり、可及的に過不足なく実現可能ロットの候補を列挙することができる(即ち、全ての実現可能ロットを列挙する必要がなくなる)。このとき、列生成子問題SPの最適化問題の最適解を解くのではなく、当該最適化問題の近似解を解く。従って、キャスト計画を、集合分割問題を用いて立案するに際し、当該集合分割問題の最適解の候補となる部分集合(キャスト)を効率よく抽出することができる。よって、キャスト計画を、立案結果の精度を大きく落とすことなく短時間で立案することができる。
【0121】
更に、本実施形態では、キャスト編成装置100は、始点511から終点512に至る経路の中から、ロット成立制約を満たし、且つ、当該経路に含まれる枝eのコストCe(e)の総和から、当該経路に含まれるスラブグループiに対する双対変数λiの最適解(双対解)の総和を減算した値が最小になる経路を、ステップ数h毎に導出する。そして、キャスト編成装置100は、各経路に対応する実現可能ロットaが列追加要件を満たすか否かを判定する。このように判定することで、1回の列生成部107(列生成ステップS207)の処理で、実現可能ロットaを複数個導出できるため、列生成部107(列生成ステップS207)の計算の繰り返し回数を減らすことができる。その結果、キャスト計画を、より短時間で立案することができる。
【0122】
(変形例)
<変形例1>
本実施形態では、列生成部107において、実現可能ロットaのコストが、鋼種のみから定まる場合を例に挙げて説明した。しかしながら、必ずしもこのようにする必要はない。例えば、(4)式と同様に製造コストおよび余材量を考慮してもよい。
【0123】
<変形例2>
本実施形態では、始点から終点に至る経路の中から、ロット成立制約を満たし、且つ、当該経路に含まれる枝eのコストCe(e)の総和から、当該経路に含まれるスラブグループiに対する双対変数λiの最適解(双対解)の総和を減算した値が最小になる経路を探索する場合を例に挙げて説明した。しかしながら、必ずしもこのようにする必要はない。例えば、当該経路に含まれるスラブグループiに対する双対変数λiの最適解(双対解)の総和から、当該経路に含まれる枝eのコストCe(e)の総和を減算した値が最大になる経路を探索してもよい。
【0124】
<変形例3>
本実施形態では、各ステップ数hにおいて列追加判定用のコストcost(i2,h)を1つずつ導出する場合を例に挙げて説明した。しかしながら、各ステップ数hにおいて列追加判定用のコストcost(i2,h)を2つ以上導出してもよい。例えば、各ステップ数hにおいて列追加判定用のコストcost(i2,h)が負の値を示すものを、2個以上導出してもよい。
【0125】
<変形例4>
本実施形態では、複数の鋼種のスラブに対するキャスト計画を作成する場合を例に挙げて説明した。しかしながら、単一鋼種のスラブに対するキャスト計画を作成してもよい。このようにする場合、鋼種kを1種類とすればよい。この場合、コストの内容に応じて、グラフG(V,E)の枝eに対してではなく、頂点に対してコストを設定することができる。
【0126】
<変形例5>
本実施形態では、スラブ情報300に含まれるスラブをスラブグループiに集約する場合を例に挙げて説明した。このようにすれば、計算時間をより短縮することができるので好ましい(この効果はスラブ情報300に含まれるスラブの数が多い場合に顕著になる)。しかしながら、必ずしも、このようにする必要はない。例えば、スラブ情報300に含まれるスラブの数が少ない場合には、スラブグループiを作成せずに、実現可能ロットを構成するスラブを直接求めるようにしてもよい。このようにする場合、変数iは、スラブグループではなく、個々のスラブを示す変数になる。
【0127】
<変形例6>
本実施形態では、キャスト計画を作成する場合を例に挙げて説明した。しかしながら、本実施形態で説明した手法は、キャスト計画以外の、ロットに複数の製品を纏めてロットの単位で生産される複数の製品の生産計画に適用することができる。
例えば、本実施形態で説明した手法を厚板生産計画(板取り問題)に適用してもよい。スラブを目標の板厚に圧延した後、圧延後のスラブを注文に応じて剪断し厚板を得る。よって、どのスラブからどの厚板を切り出すのかを決める必要がある。かかる内容を厚板生産計画として作成する。この場合、「厚板」が「製品」に対応し、「スラブ」が「ロット」に対応し、「剪断(切り出し)」が「製造」に対応し、剪断の次工程である「精整工程」が「選択の自由度がある製造条件」に対応し、切り出したスラブの「余剰部分」が「余材量」に対応する。また、本実施形態で説明した手法を熱延計画(チャンス編成問題)に適用してもよい。連続して熱間圧延する複数のスラブを決定する必要がある。この複数のスラブの単位をチャンスと呼ぶ。この場合、「熱延板(コイル)」が「製品」に対応し、「チャンス」が「ロット」に対応し、「圧延」が「製造」に対応する。
また、本実施形態で説明した手法の適用対象は、ロットの単位で纏めて複数の製品を生産するための計画に限定されず、ロットの単位で纏めて複数の製品を処理するための計画であってもよい。
【0128】
<その他の変形例>
以上説明した本発明の実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、前記プログラムを記録したコンピュータ読み取り可能な記録媒体及び前記プログラム等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、以上説明した本発明の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0130】
100:キャスト編成装置、101:スラブ情報取得部、102:スラブグループ作成部、103:初期列集合設定部、104:集合分割問題構築部、105:線形緩和問題構成部、106:双対解導出部、107:列生成部、108:判定部、109:列追加部、110:最適解導出部、111:出力部
図1
図2
図3
図4
図5
図6
図7