JP6954218B2 - 鋼材の山分け計画作成装置、鋼材の山分け計画作成方法、およびプログラム - Google Patents

鋼材の山分け計画作成装置、鋼材の山分け計画作成方法、およびプログラム Download PDF

Info

Publication number
JP6954218B2
JP6954218B2 JP2018073916A JP2018073916A JP6954218B2 JP 6954218 B2 JP6954218 B2 JP 6954218B2 JP 2018073916 A JP2018073916 A JP 2018073916A JP 2018073916 A JP2018073916 A JP 2018073916A JP 6954218 B2 JP6954218 B2 JP 6954218B2
Authority
JP
Japan
Prior art keywords
value
feasible
column
optimum
mountain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018073916A
Other languages
English (en)
Other versions
JP2019185303A (ja
Inventor
哲明 黒川
哲明 黒川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Steel Corp
Original Assignee
Nippon Steel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Steel Corp filed Critical Nippon Steel Corp
Priority to JP2018073916A priority Critical patent/JP6954218B2/ja
Publication of JP2019185303A publication Critical patent/JP2019185303A/ja
Application granted granted Critical
Publication of JP6954218B2 publication Critical patent/JP6954218B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • General Factory Administration (AREA)
  • Complex Calculations (AREA)

Description

本発明は、鋼材の山分け計画作成装置、鋼材の山分け計画作成方法、およびプログラムに関し、特に、ヤードにおける鋼材の山分け計画を作成するために用いて好適なものである。
鉄鋼プロセスにおいて、例えば製鋼工程から次工程の圧延工程へスラブ等の鋼材を搬送する際、鋼材は、一旦ヤードと呼ばれる一時保管場所に搬入されて置かれた後、次工程である圧延工程(加熱炉)の処理時刻に合わせてヤードから搬出される。そのヤードのレイアウトの一例を図4に示す。ヤードとは、図4に示すように、上流工程より払い出された鋼材などの鋼材を、下流工程に供給するためのバッファーエリアとして、縦横に区画された置場401〜404である。縦方向の分割区分を"棟"、横方向の分割区分を"列"と称することが多い。クレーン(1A、1B、2A、2B)は棟内を移動可能であり、同一棟内での異なる列の間で鋼材の移送を行う。また搬送テーブルにより棟間の鋼材の移送を行う。搬送指令を作成する際は"棟"及び"列"を指定することにより、どこへ鋼材を搬送するかを示す(図4の置場401〜404に括弧書きで付されている番号(11)、(12)、(21)、(22)を参照)。
図4を例にヤードでの基本的な作業の流れを示す。まず、前工程である製鋼工程の連鋳機410から搬出された鋼材は、パイラー411を経由して受入テーブルXでヤードまで搬入され、クレーン1A、1B、2A、2Bにより、区画された置場401〜404の何れかに搬送され、山積みして置かれる。そして、次工程である圧延工程の製造スケジュールに合わせ、再びクレーン1A、1B、2A、2Bにより払出テーブルZに載せられ、圧延工程へと搬送される。一般に、ヤードにおいて鋼材は、前記の様に山積みされた状態で置かれる。これは、限られたヤード面積を有効に活用するためである。一方、鋼材を積み上げる際、次工程へ供給し易いよう、次工程の処理順番に鋼材が上から積まれている必要がある。さらに、積み姿が不安定な逆ピラミッド状に鋼材を積まないようにする必要がある。このように、鋼材を複数の最適山(=払出山:次工程へ払い出す最終的な山姿となった山)に分けることを山分けと呼ぶ。
ここで、次工程である圧延工程の加熱炉の燃料原単位を削減するため、可及的に高い温度の鋼材を加熱炉に払い出す(装入する)ことが求められる。このため、昨今、ヤード内に保温設備を設置し、保温設備の中に前述したようにして鋼材を山積みした状態で保管することが行われている。このように保温設備を用いる場合でも、置場401〜404に直接鋼材を山積みする場合と同様に、保温設備を有効に活用するため、保温設備の中において、可及的に高さの高い払出山を作成することが必要である。
一方、鋼材を積み上げる際には、次工程へ供給しやすいよう、次工程の処理順番に鋼材が上から積まれていること、および積み形状が不安定な逆ピラミッド状に鋼材を積めないことなどの制約(これを「積姿制約」と称する)がある。更に、山立てを行う際の作業負荷も見逃せない要素である。すなわち、山分けを行う上で、作業スペースの問題や作業を行うクレーン等の搬送機器の能力の兼ね合いから、山積みを行うための搬送作業数ができるだけ少ないことが求められる。山分けの場合には、ヤードに到着する順に鋼材を積んでいくことが出来れば理想的である。一方で、圧延工程への払出時の仮置き(山繰り)を無くし、払出作業を迅速に行うために、払出山においては、圧延工程の加熱炉への払出が早いものを上に積むのが基本である。従って、現実的には、ヤードへの到着順と払出山における積順とが食い違う場合がある。すなわち、ヤードへの到着順が早い方の鋼材を遅い方の鋼材よりも同一の払出山の上の段に積まなければならない場合がある。その場合には、相対的に下段に積まれる鋼材がヤードに到着するまで、先にヤードに到着した鋼材を一旦仮置き場に仮置きし、相対的に下段に積まれる鋼材がヤードに到着し山積みされてから、その鋼材の上に、仮置き場の鋼材を積む作業が必要となる。したがって、この様な作業ができるだけ少なくなるような山立てをすることが望まれる。
以上のように、ヤード管制では、前記制約の下で可及的に少ない作業負荷で、可及的に高い山立てを行う作業計画を策定することが望まれる。
鋼材置き場でサイズや次工程(圧延工程の加熱炉)での処理順序が異なる複数枚の鋼材を複数の山に分けて山積みする山分け問題を解決するには、対象鋼材により生成可能な全ての山分け候補の中から、ヤードへの受入時の山分け負荷や圧延工程の加熱炉への払出時の作業負荷などの評価関数を最適化する山分けの組み合わせを求めることが不可欠である。
このような大規模問題への対処方法として、特許文献1には、何れの対象鋼材も複数の山に重複使用されてはならず、且つ、何れかの山にて使用されねばならないという制約と、山の総数および山繰りの負荷を最小化する目的関数との下で、集合分割問題として最適な実現可能山の組み合わせを求めることにより山分け計画を作成する手法が開示されている。ここで、実現可能山とは、対象鋼材を要素とする全体集合に対する部分集合であって、山積み制約を満たす部分集合である。山積み制約は、鋼材を山積みする際に課せられる制約である。払出順が早い鋼材の方が山の上側に配置されなければならないという制約等が山積み制約に含まれる。
特許文献1に記載の方法は厳密解法であることから、目的関数として設定した山の総数および山繰り負荷に対する最適な山分け計画を作成することが期待できる。また、特許文献1では、実現可能の見込みのない部分集合のチェックを効率的に省略できるよう、最下段から順次上段に向かって実現可能な鋼材のみを積み上げる(分岐する)方式により実現可能山のみを生成する。
しかしながら、特許文献1に記載の技術を、山分け計画の作成対象となる鋼材要素数が50〜80程度となる大規模問題に適用すると、実現可能山の数が1億個を超えることも頻繁に起こり、その場合には、計算機資源(主に主メモリ)の容量制限に掛かり、実現可能山を列挙できない事態が起こる。また、そこまでの規模にはならず、かろうじて実現可能山の列挙まではできた場合でも、その後の集合分割問題を最適計算する際、決定変数の数が実現可能山の数となるため、計算途中でメモリ容量を超えるか実用時間内では求解できない状況となる。
この様な実行可能解が列挙不能となるような大規模な問題に対し、集合分割問題を適用し最適解を得る方法として特許文献2には、自然言語処理におけるアライメント問題(二つの系列が与えられたときに片方の系列のどの要素がもう片方の系列のどの要素に対応するかを求める問題)に列生成法を用いる手法が開示されている。列生成法は大規模な線形計画問題を一括で解く代わりに、逐次的に変数を追加しながら元の問題の部分問題を解くことで元の問題の最適解を求める手法である。従って、ヤードにおける山分け問題に対してもこの手法を適用することが考えられる。
特開2016−81186号公報 特開2015−170131号公報 特開2011−105483号公報 特開2007−137612号公報
久保幹雄、田村明久、松井知己編、「応用数理計画ハンドブック」、株式会社朝倉書店、2002年5月、p.133、337、621、634
しかしながら、特許文献2に記載の技術では、あくまでも解法の枠組みを提供しているのみで解法そのものを提供していない。従って、適用対象に応じて、適用方法を考案する必要がある。また、特許文献2に記載の技術では、アライメント問題を前提としているため、特許文献2に記載の技術を山分け問題に適用することは容易ではない。
本発明は、以上の問題点に鑑みてなされたものであり、山分け対象の鋼材が多い場合であっても、山分け計画を確実に作成することができるようにすることを目的とする。
本発明の鋼材の山分け計画作成装置は、鉄鋼プロセスにおける工程間の置場として鋼材を配置するヤードに搬入される複数の鋼材を、所定の山積み制約を満たすように山積みして、次工程に払い出す最終的な山姿となった複数の払出山に山分けするための山分け計画を作成する問題を集合分割問題とし、当該集合分割問題を、列生成法を用いて解くことにより山分け計画を作成する鋼材の山分け計画作成装置であって、前記鋼材を、前記山積み制約を満たす様に積んだ山である複数の実現可能山のそれぞれについて、当該実現可能山を解として採用する場合に「1」となり、当該実現可能山を解として採用しない場合に「0」となる0−1変数を決定変数として、当該実現可能山に対する前記鋼材の山立てについての評価値である列コストと、初期解として与えられた実現可能山の集合とを用いて、前記決定変数および前記列コストを含む目的関数の値が最小または最大になる前記決定変数を求めることにより、前記複数の鋼材を重複することなく且つ漏れなく含む前記実現可能山の最適な組み合わせを求める問題を原問題とし、前記原問題の線形緩和問題を主問題とした場合の双対問題の最適解である双対解を導出する双対解導出手段と、前記原問題の最適解を構成する実現可能山の候補である候補山を生成する列生成子問題の最適解を導出する列生成手段と、前記列生成手段により導出された前記候補山が、収束要件を満足するか否かの判定である列判定を行う列判定手段と、前記列判定手段により、前記列生成手段により導出された前記候補山が、前記収束要件を満足しないと判定されると、前記列生成手段により生成された前記候補山を前記実現可能山の集合に追加する列追加手段と、前記列判定手段により、前記列生成手段により導出された前記候補山が、前記収束要件を満足すると判定されると、その時点で前記双対解導出手段により導出されている前記双対解である双対最適解と、当該双対最適解が得られたときの当該双対問題の目的関数の値である双対最適値とを取得する双対最適解・最適値取得手段と、前記実現可能山を新たに抽出するための条件である閾値および仮想最適値であって、前記実現可能山ごとの評価値に対して設定される閾値の初期値と、抽出された当該実現可能山の前記原問題の最適解としての適否を判定する指標となる値である仮想最適値の初期値とを、前記双対最適値に基づいて設定する閾値・仮想最適値設定手段と、前記閾値と前記実現可能山ごとの評価値とを用いて表現される列列挙条件を満たす前記実現可能山を抽出する最適列抽出手段と、前記最適列抽出手段により抽出された前記実現可能山の集合に対する前記原問題の部分問題を解くことにより、前記複数の鋼材を重複することなく且つ漏れなく含む前記実現可能山の最適な組み合わせと、そのときの当該部分問題の目的関数の値である部分問題の最適値とを導出する部分問題最適値導出手段と、前記部分問題最適値導出手段により前記部分問題の実行可能な解が導出されたか否かを判定する実行可能解有無判定手段と、前記実行可能解有無判定手段により、前記部分問題の実行可能な解が導出されたと判定されると、前記部分問題最適値導出手段により導出された前記部分問題の最適値と、前記仮想最適値の現在値とに基づいて、前記部分問題の最適値が前記原問題の最適値となるか否かの判定である最適値判定を行う最適値判定手段と、前記実行可能解有無判定手段により、前記部分問題の実行可能な解が導出されなかったと判定された場合と、前記最適値判定手段により、前記部分問題の最適値が前記原問題の最適値にならないと判定された場合に、前記閾値の現在値と前記仮想最適値の現在値とを更新する閾値・仮想最適値更新手段と、前記最適値判定手段により、前記部分問題の最適値が前記原問題の最適値になると判定されると、当該部分問題の最適値に対応する前記実現可能山の組み合わせを示す情報を、前記原問題の最適解を示す情報として出力する出力手段と、を有し、前記列判定手段は、前記双対解導出手段による前記双対解の導出と、前記列生成手段による前記列生成子問題の最適解の導出と、前記列判定と、前記列追加手段による前記候補山の追加と、を繰り返す収束計算を、前記収束要件を満足すると判定するまで実行し、前記列生成子問題は、前記双対解と、前記山積み制約とを用いて、前記実現可能山の集合に追加する前記候補山を求める問題であり、前記実現可能山ごとの評価値は、前記原問題の最適解と前記双対最適解との差を前記実現可能山ごとに評価した値であり、前記最適列抽出手段による前記実現可能山の抽出と、前記部分問題最適値導出手段による前記部分問題の最適値の導出と、前記実行可能解有無判定手段による前記判定と、前記最適値判定とを繰り返す計算は、前記最適値判定手段により、前記部分問題の最適値が前記原問題の最適値となると判定されるまで実行され、前記部分問題は、前記列コストと、前記最適列抽出手段により抽出された前記実現可能山の集合とを用いて、前記決定変数および前記列コストを含む前記目的関数の値が最小または最大になるときの前記決定変数を求める問題であることを特徴とする。
本発明の鋼材の山分け計画作成方法は、鉄鋼プロセスにおける工程間の置場として鋼材を配置するヤードに搬入される複数の鋼材を、所定の山積み制約を満たすように山積みして、次工程に払い出す最終的な山姿となった複数の払出山に山分けするための山分け計画を作成する問題を集合分割問題とし、当該集合分割問題を、列生成法を用いて解くことにより山分け計画を作成する鋼材の山分け計画作成方法であって、前記鋼材を、前記山積み制約を満たす様に積んだ山である複数の実現可能山のそれぞれについて、当該実現可能山を解として採用する場合に「1」となり、当該実現可能山を解として採用しない場合に「0」となる0−1変数を決定変数として、当該実現可能山に対する前記鋼材の山立てについての評価値である列コストと、初期解として与えられた実現可能山の集合とを用いて、前記決定変数および前記列コストを含む目的関数の値が最小または最大になる前記決定変数を求めることにより、前記複数の鋼材を重複することなく且つ漏れなく含む前記実現可能山の最適な組み合わせを求める問題を原問題とし、前記原問題の線形緩和問題を主問題とした場合の双対問題の最適解である双対解を導出する双対解導出工程と、前記原問題の最適解を構成する実現可能山の候補である候補山を生成する列生成子問題の最適解を導出する列生成工程と、前記列生成工程により導出された前記候補山が、収束要件を満足するか否かの判定である列判定を行う列判定工程と、前記列判定工程により、前記列生成工程により導出された前記候補山が、前記収束要件を満足しないと判定されると、前記列生成工程により生成された前記候補山を前記実現可能山の集合に追加する列追加工程と、前記列判定工程により、前記列生成工程により導出された前記候補山が、前記収束要件を満足すると判定されると、その時点で前記双対解導出工程により導出されている前記双対解である双対最適解と、当該双対最適解が得られたときの当該双対問題の目的関数の値である双対最適値とを取得する双対最適解・最適値取得工程と、前記実現可能山を新たに抽出するための条件である閾値および仮想最適値であって、前記実現可能山ごとの評価値に対して設定される閾値の初期値と、抽出された当該実現可能山の前記原問題の最適解としての適否を判定する指標となる値である仮想最適値の初期値とを、前記双対最適値に基づいて設定する閾値・仮想最適値設定工程と、前記閾値と前記実現可能山ごとの評価値とを用いて表現される列列挙条件を満たす前記実現可能山を抽出する最適列抽出工程と、前記最適列抽出工程により抽出された前記実現可能山の集合に対する前記原問題の部分問題を解くことにより、前記複数の鋼材を重複することなく且つ漏れなく含む前記実現可能山の最適な組み合わせと、そのときの当該部分問題の目的関数の値である部分問題の最適値とを導出する部分問題最適値導出工程と、前記部分問題最適値導出工程により前記部分問題の実行可能な解が導出されたか否かを判定する実行可能解有無判定工程と、前記実行可能解有無判定工程により、前記部分問題の実行可能な解が導出されたと判定されると、前記部分問題最適値導出工程により導出された前記部分問題の最適値と、前記仮想最適値の現在値とに基づいて、前記部分問題の最適値が前記原問題の最適値となるか否かの判定である最適値判定を行う最適値判定工程と、前記実行可能解有無判定工程により、前記部分問題の実行可能な解が導出されなかったと判定された場合と、前記最適値判定工程により、前記部分問題の最適値が前記原問題の最適値にならないと判定された場合に、前記閾値の現在値と前記仮想最適値の現在値とを更新する閾値・仮想最適値更新工程と、前記最適値判定工程により、前記部分問題の最適値が前記原問題の最適値になると判定されると、当該部分問題の最適値に対応する前記実現可能山の組み合わせを示す情報を、前記原問題の最適解を示す情報として出力する出力工程と、を有し、前記列判定工程は、前記双対解導出工程による前記双対解の導出と、前記列生成工程による前記列生成子問題の最適解の導出と、前記列判定と、前記列追加工程による前記候補山の追加と、を繰り返す収束計算を、前記収束要件を満足すると判定するまで実行し、前記列生成子問題は、前記双対解と、前記山積み制約とを用いて、前記実現可能山の集合に追加する前記候補山を求める問題であり、前記実現可能山ごとの評価値は、前記原問題の最適解と前記双対最適解との差を前記実現可能山ごとに評価した値であり、前記最適列抽出工程による前記実現可能山の抽出と、前記部分問題最適値導出工程による前記部分問題の最適値の導出と、前記実行可能解有無判定工程による前記判定と、前記最適値判定とを繰り返す計算は、前記最適値判定工程により、前記部分問題の最適値が前記原問題の最適値となると判定されるまで実行され、前記部分問題は、前記列コストと、前記最適列抽出工程により抽出された前記実現可能山の集合とを用いて、前記決定変数および前記列コストを含む前記目的関数の値が最小または最大になるときの前記決定変数を求める問題であることを特徴とする。
本発明のプログラムは、前記鋼材の山分け計画作成装置の各手段としてコンピュータを機能させることを特徴とする。
本発明によれば、山分け対象の鋼材が多い場合であっても、山分け計画を確実に作成することができる。
図1は、鋼材の山分け計画作成装置の機能的な構成の一例を示す図である。 図2−1は、鋼材の山分け計画作成方法の一例を説明するフローチャートである。 図2−2は、図2−1に続くフローチャートである。 図3は、山分け計画の作成結果の一例を示す図である。 図4は、ヤードのレイアウトの一例を示す図である。
以下、図面を参照しながら、本発明の一実施形態を説明する。
(原問題P)
まず、本実施形態で解くべき問題である原問題Pについて説明する。本実施形態では、原問題Pを集合分割問題とする。集合分割問題は、全体集合Nの任意の部分集合Sjが、その列コストcjを持つという前提で、以下の(1)式に示すように、全体集合Nの要素iを、重複なく且つ漏れなく部分集合m1,m2,・・・,mkに分割する問題である。このとき、部分集合m1,m2,・・・,mkに対する列コストc1,c2,・・・,ckの総和が最小となるようにする。以下の(1)式は、全体集合Nの要素iを重複なく且つ漏れなく部分集合m1,m2,・・・,mkに分割することを表す。
Figure 0006954218
要素の数がn個の全体集合N={1,2,・・・,n}の部分集合の集合(集合族)C={m1,・・・,mj,・・・,mk}(mj⊆N)の要素mjのコストをcjとする。i行j列の行列Aにおいて、行を要素i(∈N)に、列を部分集合mj(∈C)にそれぞれ対応させると共に、要素iを鋼材とし、部分集合mjを実現可能山とする。そうすると、以下のようにして山立て問題を0−1整数計画問題として定式化することができる。
<決定変数>
原問題Pの決定変数x[j]は、実現可能山mjを採用する場合に「1」、そうでない場合に「0(ゼロ)」となる0−1変数である。
<制約式>
原問題Pの制約式は、鋼材i∈Nのそれぞれについて、当該鋼材iを含む集合族(部分集合mjの集合)Mj(i)⊆Cの中から、一つの部分集合mjだけが選択されなければならないことを表す制約式であり、以下の(2)式で表される。
尚、鋼材iは、1つの鋼材であっても、1つの搬送機器(クレーン1A、1B、2A、2B)で搬送することができる鋼材の纏まり(搬送ロット)であってもよい。搬送ロットを決定する方法は、例えば、特許文献3に記載されているので、ここでは、その詳細な説明を省略する。
Figure 0006954218
ここで、行列Aの要素aij(i行j列の要素)を、実現可能山mjが鋼材iを含む場合にaij=1、含まない場合にaij=0と定義する。この場合、行列Aの或る列jにおいて、「1」の値を持つ行に対応する鋼材iが、当該列jに対応する実現可能山を構成する鋼材であり、当該列jにおいて、「0」の値を持つ行に対応する鋼材iは、当該列jに対応する実現可能山を構成しない。このようにして行列Aの要素aijを定義すると、(2)式は、行列Aにより、以下の(2−1)式のように表記できる。ここで、(2−1)式の右辺は、全ての要素が「1」となるベクトルである。尚、各数式において、太字で示すものはベクトルを表す。
Figure 0006954218
<目的関数>
原問題Pの目的関数は、列コストcjの総和が最小になるように実現可能山mjを選択することを目的とする関数であり、以下の(3)式で表される。
Figure 0006954218
列コストcjは、実現可能山mjを原問題Pの最適解として選択するか否かを判断するための評価値であり、実現可能山mjに対する鋼材iの山立てを評価する1つまたは複数の評価指標に基づいて定められる。(3)式をベクトル表記すると、以下の(3−1)式のようになる。
Figure 0006954218
本実施形態では、実現可能山(払出山)の山数c1j即ち1と、逆転対数c2jに対しそれぞれ重み係数k1、k2を掛けたものが列コストcjとなる(逆転対の詳細については後述する)。そうすると、原問題Pの目的関数は、以下の(4)式で表される。尚、実現可能山mj(mj∈C)の列コストcjと、山数c1jおよび逆転対数c2jとの関係は、以下の(4−1)式のようになる。
Figure 0006954218
ここで、「1」の値を有する決定変数x[j]の数が総山数になるので、何れの実現可能山mjにおいても山数c1jの値は「1」になる。よって、(4)式では、山数c1jを評価する項(右辺第1項)を、その他のコストである逆転対数c2jを評価する項(右辺第2項)と分離して表記している。k1、k2は、重み係数であり、各評価指標(山数c1j、逆転対数c2j)のバランスをとるためのものである。重み係数k1、k2により、各評価指標(山数c1j、逆転対数c2j)の相対的な重みを決定することができる。例えば、山数c1jを逆転対数c2jよりも重要な評価指標(優先して評価する評価指標)とする場合には、山数c1jに対する重み係数k1の値を大きくすることと、逆転対数c2jに対する重み係数k2の値を小さくすることとの少なくとも何れか一方を採用する。以上のように本実施形態では、山数c1jを評価する項と、逆転対数c2jを評価する項との重み付き線形和で原問題Pの目的関数を表す場合を例に挙げる。
ここで、逆転対数について説明する。背景技術の欄で説明したように、払出山において相対的に下段に積まれる鋼材がヤードに到着するまで、先にヤードに到着した鋼材を一旦仮置き場に仮置きし、相対的に下段に積まれる鋼材がヤードに到着し山積みされてから、その鋼材の上に、仮置き場の鋼材を積む作業ができるだけ少なくなるように山立てをすることが望まれる。尚、この作業を山繰りと称する。このような仮置きの発生数は、数学的には「逆転数または転倒数(inversion number)」として表現することができる。この様に、任意の鋼材の対(i1,i2)⊆N2について、同一の払出山に積むことは可能で、同一の払出山に積む際には、到着順と積み順とを入れ替える必要のある鋼材対を逆転対とし、この集合R(逆転対集合)を、以下の(4−2)式のように定義する。
Figure 0006954218
その際、実現可能山mjに含まれる逆転対の数がc2jに対応する。このように逆転対とは、同一の払出山においてヤードへの到着順が早い方の鋼材i1が遅い方の鋼材i2よりも上に積まれる逆転の関係にある鋼材対をいい、その数を逆転対数と定義する。逆転対が1つあると、この例では、到着順が早い方の鋼材i1が前述した仮置きが必要な鋼材となる。仮置きを行うために1回の山繰りが発生するので、逆転対数は、仮置きの数の目安となる。尚、逆転対集合Rを抽出するには、任意の鋼材iのヤードへの到着順と、払出山での積み順(即ち、払出順)とを判定するための情報が必要となる。仮置き数は実現可能山mjに含まれる鋼材対(i1,i2)の内、(i1,i2)∈Rに対し、同じ鋼材を二重に計数しないよう考慮して鋼材i1を計数したものとなる。
以上のように本実施形態では、(2)式の制約式を満足する範囲で(4)式の目的関数Jの値を最小にする決定変数x[j]を求める問題を原問題Pとする。特許文献1に記載の技術では、山分け計画の対象となる鋼材iの全体集合Nから、全ての実現可能山mjを生成したものを実現可能山mjの集合Cとして、原問題Pを解く。これに対し、本実施形態では、後述するように列生成法を用いて、山分け計画の対象となる鋼材iの全体集合Nから実現可能山mjを生成したものを実現可能山mjの集合Cとして、原問題Pを解く。従って、本実施形態では、(通常は)実現可能山mjの集合Cに全ての実現可能山mjは含まれず、最適な実現可能山mjを得るために必要な実現可能山mjの候補だけを列生成法により生成する。
尚、本実施形態では、列コストcjが、山数c1jと逆転対数c2jである場合を例に挙げて説明する。しかしながら、列コストcjは、鋼材iの山立て(実現可能山mj)を評価する評価指標であれば、山数や逆転対数あるいは仮置き数に限定されない。例えば、ヤード受入れ時・次工程への払出時の鋼材iの放熱量を列コストcjに更に含めてもよい。
(鋼材の山分け計画作成装置100)
次に、鋼材の山分け計画作成装置の一例について説明する。図1は、鋼材の山分け計画作成装置100の機能的な構成の一例を示す図である。鋼材の山分け計画作成装置100のハードウェアは、例えば、CPU、ROM、RAM、HDD、および各種のインターフェースを備える情報処理装置や、専用のハードウェアを用いることにより実現される。
図1に示すように、鋼材の山分け計画作成装置100は、鋼材情報取得部110と、前処理部120と、本処理部130と、出力部140とを有する。
((鋼材情報取得部110))
鋼材情報取得部110は、山分け計画の作成対象となる鋼材i∈Nのそれぞれの情報を取得する。以下の説明では、この情報を必要に応じて鋼材情報と称する。鋼材情報には、例えば、鋼材のID(識別情報)と、当該鋼材のサイズ(幅、長さ)と、当該鋼材のヤードへの到着順と、当該鋼材の次工程への払出順とが含まれる。尚、到着順および払出順は、鋼材情報に含まれる鋼材の中での相対的な順序である。
鋼材情報取得部110は、例えば、鋼材管理装置から鋼材情報を取得する。ただし、必ずしもこのようにする必要はなく、鋼材情報取得部110は、鋼材の山分け計画作成装置100のユーザインターフェースに対するユーザの操作により入力された鋼材情報を取得してもよい。鋼材情報取得部110は、例えば、CPU、ROM、RAM、および通信インターフェース(またはユーザインターフェース)を用いることにより実現される。
((前処理部120))
前処理部120では、原問題Pである0−1計画問題として定式化された集合分割問題の線形緩和問題の双対問題を、列生成法を用いて解く。そこで、まず、列生成法の概要を説明する。
<<双対問題の最適解の導出>>
列生成法では、原問題P(集合分割問題)の最適解の候補となる実現可能山mjの集合Cの初期値に基づいて、当該原問題Pの線形緩和問題を主問題とした場合の双対問題Dの最適解を導出する(以下の説明では、この双対問題Dの最適解を必要に応じて双対解と称する)。
<<列生成子問題の最適解の導出>>
そして、当該双対解を使って列生成子問題Sの最適解を導出して、原問題Pの最適解の候補となる実現可能山mjを生成する。
<<収束要件の判定>>
そして、生成した実現可能山mjが収束要件を満足するか否かを判定する。ここでの収束要件とは、生成した実現可能山mjに対する前記列コストcjと当該実現可能山mjに含まれる鋼材に対する後述の双対変数の値の総和(以下、必要に応じて双対コストと称する)とを比較し、双対コストが列コストcjを超える、或いは生成した実現可能山mjが既に実現可能山mjの集合Cに含まれておれば収束と判定するものである。
<<列の追加>>
この判定の結果、実現可能山mjが収束要件を満足しない場合には、生成した実現可能山mjを実現可能山mjの集合Cに追加し、前記<<双対問題の最適解の導出>>に戻る。収束要件を満足する場合には、繰り返し処理を終了し、前処理が終了する。
尚、列生成法と総称される技術には幾つかの異なる手法があり、以上の手法はその一つであるが、当該列生成法自体は、非特許文献1に記載されているように公知の技術である。
以下、前処理部120が有する機能の一例を説明する。
<初期列集合設定部121>
初期列集合設定部121は、山分け計画の作成対象となる鋼材iの全体集合N={1,2,・・・,i,・・・,n}、即ち、鋼材情報に含まれる鋼材iから、実現可能山mjの集合Cの初期値を設定する。このとき、初期列集合設定部121は、鋼材情報に含まれる鋼材iを重複なく且つ漏れなく含み、更に、後述する上載せ禁止制約((16)式を参照)および山高さ制約((17)式を参照)を満足するように、実現可能山mjの集合Cの初期値を設定する。その一例として、本実施形態では、初期列集合設定部121は、以下の(5)式のように、それぞれの実現可能山mjが、相互に異なる任意の1つの鋼材iのみを要素として持つように、実現可能山mjの集合Cの初期値を設定する。
Figure 0006954218
例えば、ユーザは、鋼材の山分け計画作成装置100のユーザインターフェースを操作することにより、実現可能山mjの集合Cの初期値の情報を入力し、初期列集合設定部121が、鋼材の山分け計画作成装置100内の記憶媒体に当該情報を記憶することにより、実現可能山mjの集合Cの初期値を設定することができる。ただし、必ずしもこのようにする必要はなく、例えば、初期列集合設定部121は、予め定められたロジックにより、実現可能山mjの集合Cの初期値を導出してもよい。初期列集合設定部121は、例えば、CPU、ROM、RAM、およびユーザインターフェースを用いることにより実現される。
<双対解導出部122>
双対解導出部122は、前述した原問題P(集合分割問題)の線形緩和問題を主問題とした場合の双対問題Dの最適解である双対解を導出する。原問題P自体は0−1整数計画問題であるが、双対問題Dは線形緩和問題(線形計画問題)になる。0−1整数計画問題である原問題Pの線形緩和問題を主問題とした場合の双対問題Dは、主問題と双対問題との関係から、以下のように定式化できる。
原問題Pは最小化問題なので、(3−1)式に示す目的関数Jの最適な下限値を求める問題を考察することにより双対問題Dが得られる。そこで、以下の(6)式を満足する変数pTを考える(pTはベクトルである)。
Figure 0006954218
(6)式の両辺にx(≧0)を右から掛けると、以下の(7)式が成り立つ((3−1)式に示したようにxはベクトルである)。
Figure 0006954218
つまり(7)式の左辺(=pTAx)が原問題Pの目的関数Jの下限となる。原問題Pの目的関数Jのより良い下限値を与えるには、(6)式(=pTA≦c)の条件下で、(7)式の左辺(=pTAx)を最大化する問題を考えればよい。ここで、原問題Pの制約式である(2−1)式より、以下の(8)式が成り立つ。
Figure 0006954218
従って、以下のようにして双対問題Dが定式化される。尚、集合分割問題の線形緩和問題を主問題とする双対問題自体は、非特許文献1に記載されているように公知の技術で実現できるので、ここでは、その詳細な説明を省略する。
[決定変数]
本実施形態では、双対変数p[i]を双対問題Dの決定変数とする。
双対変数p[i]は、鋼材i毎に定められる連続変数(−∞<p[i]<∞)である。双対変数p[i]の数は、n個(鋼材情報に含まれる鋼材iの数)である。
[制約式]
双対問題Dの制約式は、前述した(6)式で表される。ここで、行列Aは、双対解導出部122の計算の際に生成されている実現可能山mjの集合Cに対応する。双対解導出部122の最初の計算においては、行列Aは、初期列集合設定部121により設定された実現可能山mjの集合Cの初期値に対応する。
(6)式を要素毎に表記すると、双対問題Dの制約式は、以下の(9)式で表される。尚、(9)式の左辺(Σp[i]・mj[i](=Pj))は前述の「双対コスト」と同じものである。(9)式に示すように、双対コストPjは、鋼材iに対する双対変数p[i]の値と、行列Aの列jの値であって、該鋼材iに対応する行iにおける値(「0」または「1」)との積の、鋼材情報に含まれる鋼材iについての総和で表される。
Figure 0006954218
(9)式において、mj[i]は、行列Aのj列そのものであり、j列に対応する実現可能山mjが鋼材iを含めば「1」、そうでなければ「0」となる0−1変数である。従って、(9)式の制約式の数は、双対解導出部122の計算の際に生成されている実現可能山mj(列)の数(即ち、集合Cの要素数)となる。
[目的関数]
(6)式の条件下では、(7)式および(8)式より以下の(10)式が成り立つので、(8)式のΣp[i]は、cxの下限値となる((3−1)式に示したようにc、xはベクトルである)。できるだけ大きいΣp[i]を求めれば、原問題Pの目的関数Jのより良い下限値が得られることになる。従って、双対問題Dの目的関数Jは最大化問題となり、以下の(11)式のようになる。
Figure 0006954218
以上のように本実施形態では、(9)式の制約式を満足する範囲で(11)式の目的関数Jの値を最大にする双対変数p[i]を求める問題を双対問題Dとする。従って、双対解導出部122は、例えば、CPLEX(登録商標)等の公知のソルバーを用いて線形計画法による最適化計算を行うことにより、(9)式の制約式を満足する範囲で(11)式の目的関数Jの値を最大にする双対変数p[i]を、双対問題Dの最適解として導出する。
双対解導出部122は、例えば、CPU、ROM、RAM、およびHDDを用いることにより実現される。
<列生成部123>
列生成部123は、列生成子問題Sを解くことにより、原問題Pの最適解の候補、即ち、実現可能山mjの集合Cに追加される実現可能山mjの候補を導出する。前述したように行列Aの列jが実現可能山mjに対応するので、列生成部123は、行列Aに追加される列jの要素を導出することになる。
本実施形態において列生成子問題Sは、山積み制約を満たす範囲で、実現可能山mjの列コストcjから当該実現可能山mjに対する双対コストPj(=Σp[i]・mj[i])を減算した値(以下の(12)式を参照)が最小となる実現可能山mjを求める問題である。
Figure 0006954218
[決定変数]
本実施形態では、山構成鋼材有無変数mj[i]と鋼材上下関係変数y[i1][i2]を列生成子問題Sの決定変数とする。
山構成鋼材有無変数mj[i]は、(9)式に示すmj[i]と同じ変数である。山構成鋼材有無変数mj[i]は、鋼材i毎に定められ、実現可能山mjに鋼材iが含まれる場合に「1」となり、そうでない場合に「0」となる0−1変数である。
鋼材上下関係変数y[i1][i2]は、同一の実現可能山mj(払出山)において、鋼材i1を相対的に下に配置し、鋼材i2を相対的に上に配置する場合に「1」となり、そうでない場合に「0」となる0−1変数である。
[制約式]
本実施形態では、鋼材上下関係変数定義制約式、上載せ禁止制約式、および山高さ制約式を列生成子問題Sの制約式とする。
鋼材上下関係変数定義制約式は、鋼材上下関係変数y[i1][i2]を定義するための制約式であり、以下の(13)式〜(15)式で表される。
Figure 0006954218
上載せ禁止制約式は、山積み制約の一例であり、同一の実現可能山mj(払出山)において、鋼材iの上に配置することができない鋼材を規定する制約式である。同一の実現可能山mj(払出山)において鋼材iの上に配置することができない鋼材の集合をU(i)−とし、その要素をiUとすると、上載せ禁止制約式は、以下の(16)式で表される。尚、U(i)−は、(16)式において、U(i)の上に−を引いたもの(同一の実現可能山mj(払出山)において鋼材iの上に配置することができない鋼材の集合)である。以下の説明では、同一の実現可能山mj(払出山)において鋼材iの上に配置することができない鋼材の集合を必要に応じて上載せ禁止集合と称する。
Figure 0006954218
上載せ禁止集合U(i)−は、ヤード管理方法等に応じて定めることができるが、例えば、以下のようにして定めることができる。ヤードにおける山立てでは、鋼材iの次工程への払い出しをスムーズに行うために、同一の実現可能山mj(払出山)において払出順が早い鋼材iであるほど上に積まれる必要がある。また、実現可能山mj(払出山)の積姿を安定にするために、極端な逆ピラミッド形状になるように山積みすることを避ける必要がある。即ち、同一の実現可能山mj(払出山)において相対的に上に配置される鋼材iの幅・長さから、相対的に下に積まれる鋼材iの幅・長さを減算した値が、規定値よりも大きくならないようにする必要がある。これらの要件により、同一の実現可能山mj(払出山)において鋼材iの上に他の鋼材を配置することができるか否かが一意に定められる。列生成部123は、鋼材情報に含まれる鋼材のサイズおよび払出順に基づいて、鋼材情報に含まれるそれぞれの鋼材iについて、これらの要件を満たさない鋼材の集合を上載せ禁止集合U(i)−として導出する。
山高さ制約式は、山積み制約の一例であり、一つの実現可能山mj(払出山)の高さの最大値を規定する制約式であり、以下の(17)式で表される。
Figure 0006954218
(17)式において、nmb[i]は、鋼材iの数である。前述したように本実施形態では、鋼材iは、1つの鋼材であっても、1つの搬送機器(クレーン1A、1B、2A、2B)で搬送することができる鋼材の纏まり(複数の鋼材)であってもよい。1つの搬送機器(クレーン1A、1B、2A、2B)が2以上の鋼材を搬送することができず、鋼材iを1つ1つの鋼材に対応させる場合、(17)式においてnmb[i]は、「1」になる。また、山積上限数(一つの実現可能山mj(払出山)に積むことができる鋼材の上限数)をhmaxとする。ただし、山高さ制約式は、必ずしも(17)式のようにする必要はない。例えば、各鋼材iの厚みが異なる場合には、以下のようにすればよい。まず、鋼材情報に、鋼材iの厚みを含め、当該鋼材iに対する山構成鋼材有無変数mj[i]に、当該鋼材iの厚みを掛けたものの、鋼材情報に含まれる全ての鋼材iについての和が、一つの実現可能山mj(払出山)の高さの最大値以下であることを示す山高さ制約式を用いてもよい。
[目的関数]
主問題と双対問題の関係(弱双対定理)から、本来は、主問題の目的関数の値は、主問題が最小化問題の場合、双対問題の目的関数の値以上になる。本実施形態では、主問題の目的関数は(3)式であり、双対問題の目的関数は(11)式である。従って、本来は、実現可能山mjの列コストcjは、当該実現可能山mjに対する双対コストPj以上(cj≧Pj)になる。また、実現可能山mjの列コストcjと、当該実現可能山mjに対する双対コストPjとが等しい(cj=Pj)ときの主問題および双対問題の解はそれぞれ最適解となる。
よって、実現可能山mjの列コストcjが、当該実現可能山mjに対する双対コストPjを下回る(cj<Pj)場合には、双対問題Dの双対解は、双対問題Dの最適解となっていない。即ち、この場合には、実現可能山mjの集合C(行列A)に実現可能山mjが十分に追加されていないことになる。よって、実現可能山mjの列コストcjが、当該実現可能山mjに対する双対コストPj以下(cj≦Pj)になるときの実現可能山mj(山構成鋼材有無変数mj[i])は、原問題Pの最適解の候補となり、実現可能山mjの集合C(行列A)に追加される必要がある。
以上のことから本実施形態の列生成子問題Sでは、実現可能山mjの列コストcjが、当該実現可能山mjに対する双対コストPj以下(cj≦Pj)になる実現可能山mj(山構成鋼材有無変数mj[i])を求めることを主目的とする。そこで、本実施形態では、実現可能山mjの列コストcjから、当該実現可能山mjに対する双対コストPjを減算した値(=cj−Pj)が最小となるときの実現可能山mj(山構成鋼材有無変数mj[i])を、原問題Pの最適解の候補として求める問題を、列生成子問題Sとする。当該値(=cj−Pj)の最小値が「0」以下(即ち、cj≦Pj)であるか否かを判定することにより、当該実現可能山mj(山構成鋼材有無変数mj[i])を、実現可能山mjの集合C(行列A)に追加すべきか否かを判定することができるからである。
列生成子問題Sの決定変数である山構成鋼材有無変数mj[i]により定まる実現可能山mjの列コストcjは、鋼材上下関係変数y[i1][i2]を用いると、(4−1)式より、以下の(18)式で表される。
Figure 0006954218
ここで、Rは、(4−2)式で定義した逆転対集合である。(18)式の右辺第2項は、実現可能山mjにおける逆転対数に対応する。
また、前述したように双対コストPjは、(9)式の左辺で表されるので、以下の(19)式のようになる。
Figure 0006954218
前述したように本実施形態では、列生成子問題Sは、実現可能山mjの列コストcjから、当該実現可能山mjに対する双対コストPjを減算した値(=cj−Pj)が最小となるときの実現可能山mj(山構成鋼材有無変数mj[i])を求める問題である。従って、列生成子問題Sの目的関数JSは、(18)式から(19)式を減算することにより得られるが、(18)式の右辺第1項は定数であるので、これを除外して表記すると、以下の(20)式のようになる。
Figure 0006954218
以上のように、(13)式〜(17)式の制約式を満足する範囲で(20)式の目的関数JSの値を最小にする決定変数(山構成鋼材有無変数mj[i]および鋼材上下関係変数y[i1][i2])を、列生成子問題Sの最適解として導出すればよい。
ところで、列生成子問題Sは0−1整数計画問題であり、且つ、繰り返し解かれるものである。従って、列生成子問題Sの計算時間が全体の計算時間に大きく依存することになる。そこで、列生成子問題Sの高速化を行うために、本実施形態では、以下の手法を採用する。
前述したように列生成子問題Sは、実現可能山mjの列コストcjが、当該実現可能山mjに対する双対コストPj以下(cj≦Pj)になる実現可能山mj(山構成鋼材有無変数mj[i])を求めることを主目的とする。従って、この主目的を達成していれば、必ずしも、実現可能山mjの列コストcjから、当該実現可能山mjに対する双対コストPjを減算した値(=cj−Pj)の最小値を求める必要はないと考えられる。
そこで、本実施形態では、(13)式〜(17)式の制約式に、実現可能山mjの列コストcjが、当該実現可能山mjに対する双対コストPj以下(cj≦Pj)であるという制約式を更に追加する。即ち、以下の(21)式の制約式を追加する。
Figure 0006954218
(21)式の制約式を追加する場合には、実行可能解が得られさえすればよいことにするので、実行可能解が求まり次第、計算を終了させる。
従って、本実施形態では、列生成部123は、CPLEX(登録商標)等の公知のソルバーを用いて0−1整数計画法による最適化計算を行うことにより、(13)式〜(17)式、(21)式の制約式を満足する範囲で(20)式の目的関数JSの値を最小にする決定変数(山構成鋼材有無変数mj[i]および鋼材上下関係変数y[i1][i2])を導出する。そして、列生成部123は、導出した決定変数(山構成鋼材有無変数mj[i]および鋼材上下関係変数y[i1][i2])から、(18)式および(19)式により、実現可能山mjの列コストcjと、当該実現可能山mjに対する双対コストPjとを導出する。尚、実行可能解が求まり次第、計算を終了させることにより、実質的に(20)式の目的関数JSは考慮されることなく、実行可能解が導出されることになる。
列生成部123は、例えば、CPU、ROM、RAM、およびHDDを用いることにより実現される。
<列判定部124>
前述したように、実現可能山mjの列コストcjが、当該実現可能山mjに対する双対コストPj以下(cj≦Pj)である場合には、実現可能山mjの集合C(行列A)に実現可能山mjが十分に追加されていない。そこで、列判定部124は、列生成部123で導出された、実現可能山mjの列コストcjから、当該実現可能山mjに対する双対コストPjを減算した値(=cj−Pj)が「0」以下であるか否かを判定する。(21)式の制約がある場合には、実行可能解が得られておれば、実現可能山mjの列コストcjから、当該実現可能山mjに対する双対コストPjを減算した値(=cj−Pj)は「0」以下であることになるので、実行可能解が得られたか否かが前記判定条件と一致する。
この判定の結果、実現可能山mjの列コストcjから、当該実現可能山mjに対する双対コストPjを減算した値(=cj−Pj)が「0」以下である場合、列判定部124は、山構成鋼材有無変数mj[i]に基づく実現可能山mjが、実現可能山mjの集合C(行列A)に含まれているか否かを判定する。この判定の結果、山構成鋼材有無変数mj[i]に基づく実現可能山mjが、実現可能山mjの集合Cに含まれていない場合には、列生成部123により導出された(最新の)山構成鋼材有無変数mj[i]に基づく実現可能山mjを、実現可能山mjの集合C(行列A)に追加する必要がある。一方、実現可能山mjの列コストcjから、当該実現可能山mjに対する双対コストPjを減算した値(=cj−Pj)が「0」を上回る場合と、山構成鋼材有無変数mj[i]に基づく実現可能山mjが、実現可能山mjの集合Cに含まれている場合には、実現可能山mjをこれ以上実現可能山mjの集合C(行列A)に追加しても、当該実現可能山mjが原問題Pの最適解の候補になることはないと見なせる。
列判定部124は、例えば、CPU、ROM、RAM、およびHDDを用いることにより実現される。
<列追加部125>
列追加部125は、列判定部124により、実現可能山mjの列コストcjから、当該実現可能山mjに対する双対コストPjを減算した値(=cj−Pj)が「0」以下であると判定されると、列生成部123により導出された(最新の)山構成鋼材有無変数mj[i]に基づく実現可能山mjを、実現可能山mjの集合C(行列A)に追加する。例えば、列追加部125は、現在の行列Aの最後の列の次の列に、列生成部123により導出された(最新の)山構成鋼材有無変数mj[i]に基づく実現可能山mjの情報を追加する。
列追加部125は、例えば、CPU、ROM、RAM、およびHDDを用いることにより実現される。
<実現可能山mjを追加した後の繰り返し計算>
以上のようにして列追加部125により実現可能山mjが追加されると、(6)式の行列Aの列が増える。そこで、双対解導出部122は、新たな行列Aを用いて、(6)式または(9)式の制約式を満足する範囲で(11)式の目的関数Jの値を最大にする双対変数p[i]を導出する。
更に、列生成部123は、このようにして導出された双対変数p[i]を用いて、(13)式〜(17)式、(21)式の制約式を満足する範囲で(20)式の目的関数JSの値を最小にする決定変数(山構成鋼材有無変数mj[i]および鋼材上下関係変数y[i1][i2])を導出する。そして、列生成部123は、導出した決定変数(山構成鋼材有無変数mj[i]および鋼材上下関係変数y[i1][i2])から、(18)式および(19)式により、実現可能山mjの列コストcjと、当該実現可能山mjに対する双対コストPjとを導出する。
そして、列判定部124は、このようにして導出された、実現可能山mjの列コストcjから、当該実現可能山mjに対する双対コストPjを減算した値(=cj−Pj)が「0」以下であるか否かを判定する。この判定の結果、実現可能山mjの列コストcjから、当該実現可能山mjに対する双対コストPjを減算した値(=cj−Pj)が「0」以下である場合には、列生成部123により導出された(最新の)山構成鋼材有無変数mj[i]に基づく実現可能山mjが、実現可能山mjの集合C(行列A)に含まれているか否かを判定し、含まれていない場合には列追加部125は、列生成部123により導出された(最新の)山構成鋼材有無変数mj[i]に基づく実現可能山mjを、実現可能山mjの集合C(行列Aの列)に追加する。
以上の処理を、列判定部124により、実現可能山mjの列コストcjから、当該実現可能山mjに対する双対コストPjを減算した値(=cj−Pj)が「0」を上回ると判定するまで、或いは実現可能山mjがその時点での集合C(行列A)に既に含まれていると判定するまで繰り返し行う。以下の説明では、列判定部124にて実現可能山mjを行列Aの列に追加不要と判定される直前に双対解導出部122により導出された双対問題Dの最適解p[i]を、必要に応じて、双対最適解p[i]と称する。また、当該双対問題Dの最適解p[i]を得たときの(11)式の目的関数Jの値を、必要に応じて、双対最適値JDと称する。
((本処理部130))
本処理部130は、前処理部120で得られた双対最適解p[i]および双対最適値JDを用いて、最適解の構成要素となり得る列(実現可能山)を隈なく抽出し、抽出した列に対する集合分割問題(原問題Pの部分問題)を解くことにより、双対ギャップのない原問題Pの最適解を得る。ここで、双対ギャップは、上界値JUから下界値JLを減算した値(=JU−JL)である。上界値JUは、原問題Pの最適解(実現可能山群の最適解{mj_opt})に対応する原問題Pの目的関数J((4)式)の値(前処理部120で導出された列群に対し(処理としては不要であるが)集合分割問題を解いた際の最適値)である。下界値JLは、双対最適値JDである。
列生成法を用いることで線形計画問題の最適解が得られることは保証されているが、本実施形態で扱う集合分割問題のような0−1計画問題に対しては、解の下限は求まるものの、最適解が得られることは必ずしも保証されていない(特許文献2に記載の技術でも、この課題は残されたままである)。これに対し、本実施形態では、本処理部130により、原問題Pが集合分割問題(0−1計画問題)であるのにも関わらず、双対ギャップのない解を求めることができる。そこで、まず、このようにして双対ギャップのない解を求めるために本発明者らが導いた定理について説明し、当該定理を用いたアルゴリズムの概要を説明する。
<<双対ギャップを解消するための基本方針>>
列生成法で双対ギャップが残る理由を説明する。列生成の初期段階では、双対解p[i](i∈N)が最適値から離れた状態で列生成子問題Sを解いているので、そこで得られた最適解となる列mj[i](i∈N)は、列双対ギャップz[j]が残った状態(z[j]>0)であると推察される。ここで、列双対ギャップz[j]は、列j毎の双対ギャップを表し、本実施形態では、以下の(22)式で定められる。
Figure 0006954218
従って、列生成部123により生成された列群(列生成部123により原問題Pの最適解の候補として導出された実現可能山mj群)には、列双対ギャップz[j]を残した列が数多く含まれていることになる。つまり、列双対ギャップz[j]が0(ゼロ)の近傍の列が密に生成されたわけでなく、列双対ギャップz[j]が0(ゼロ)の近傍の列は、前述した前処理部120における繰り返し処理の後半に生成され、極めて疎に生成されている。それ故、たまたまこうして生成された列群が被覆条件(集合分割問題において重複なく且つ漏れなく全体集合の全ての要素を抽出すること)を満たす場合に、当該列群が最適解である可能性は低い。本発明者らが例題を基に調査したところ、列双対ギャップz[j]=0の列が列生成部123により生成される割合は大凡1割程度に留まった。原理的 には(双対定理によれば)、p[i](i∈N)が最適解に収束した状態では、列生成子問題Sの最適値(列双対ギャップ)が0(ゼロ)未満となることはない。従って、最適値として0(ゼロ)を持つ解が例えば数千個あっても、列生成子問題Sでそれら全てを列挙する以前に同じ解が繰り返し算出される結果となる。
そこで、本処理部130は、実行可能な列を何らかの方法で基本的には全数列挙しながら、列挙された各列が持つ列双対ギャップz[j]を、前処理部120で導出された双対最適解p[i](i∈N)を使って(22)式により算出する。そして、本処理部130は、列双対ギャップz[j]が、定められた閾値(TH:threshold)以下であれば、当該列双対ギャップz[j]を有する列j(実現可能山)は、最適解の構成要素の列となり得る可能性があるとする。逆に言うと、本処理部130は、列双対ギャップz[j]が閾値THを上回る列jは、最適解の構成要素の列とはなり得ないと判断する。このような列の列挙法が、実行可能な列を全て列挙できる方法であれば、当該列挙法により列双対ギャップz[j]が0(ゼロ)近傍の列を隈なく抽出できることになる。そうなれば、当該列挙法により得られた列群CTHに基づく部分問題P(TH)の最適解は、閾値THを徐々に大きくすることにより、いずれかの閾値THの際には、原問題Pの最適解と一致するはずである。尚、列群CTH、部分問題P(TH)は、ベクトルである。ここで、部分問題P(TH)とは、列群CTHをMj(i)として、(2)式〜(4)式により定式化された原問題Pを指す。"部分"としているのは、全ての実行可能解(列)を対象とするのでなく、前述した列挙法で抽出された列群CTHのみを対象としているからである。
前述した閾値THに基づき、以下の(23)式の条件より抽出された列jによる列群CTHに対する部分問題P(TH)の最適解が、原問題Pの最適解と一致する十分条件は、以下の定理により与えられる。ここで、前処理部120で導出された双対最適値JDと、当該双対最適値JD以上の整数値のうち最小の整数値ceil(JD)との差分をfD(=ceil(JD)−JD)とする。また、原問題Pは最小化問題であり、その目的関数Jの値は整数値をとるものとする((3)式を参照)。
Figure 0006954218
[定理I]
『閾値THがn+fD(n:0(ゼロ)以上の整数)のとき、列双対ギャップz[j]が当該閾値TH以下の列jによる列群CTHにより得られた部分問題P(n+fD)の最適値J(n+fDoptがceil(JD)+n+1以下なら、当該最適値J(n+fDoptは、原問題Pの最適値Joptである』
ここで、ceil(x)は、天井関数(実数xに対してx以上の最小の整数を対応付ける関数)である。
[証明]
閾値THをn+fDとして得られた部分問題P(TH)の最適値J(n+fDoptがceil(JD)+n+1であるとし、これが原問題Pの最適値ではないとする。即ち、原問題Pの最適値Joptは、ceil(JD)+n以下であり、それを得るために最適解の構成要素となり得る列を抽出するための閾値THを、n+fDよりも拡張する(大きくする)必要があると仮定する。
そこで、閾値THをn+fD+α(0<α≦1の正数)とする。ここで、拡張した部分問題P(n+fD+α)において新たに加わる列の中には、列双対ギャップz[j]が以下の(24)式を満たす列jが少なくとも一つは必ず追加される。閾値THを拡張した後の列jの拡張範囲から列jが抽出されなければ解の改善はあり得ないからである。
Figure 0006954218
この閾値THの拡張により新たに追加される列jの列双対ギャップz[j]を以下の(25)式とする。
Figure 0006954218
そうすると、拡張した部分問題P(n+fD+α)の最適値J(n+fD+α)optは、JD+n+fD+β以上の整数値となる。つまり、以下の(26)式が成り立つ。
Figure 0006954218
従って、閾値THを拡張しても、拡張した部分問題P(n+fD+α)の最適値J(n+fD+α)optは、ceil(JD)+nを上回り、原問題Pの最適値Joptの下限値はceil(JD)+n+1となる。これは、原問題Pの最適値Joptをceil(JD)+n以下と仮定したことに矛盾する。従って、前述した仮定に誤りがあり、閾値THがn+fDであるときに得られた部分問題P(n+fD)の最適値J(n+fDoptがceil(JD)+n+1以下なら、当該最適値J(n+fDoptは、原問題Pの最適値Joptであることが証明された。(Q.E.D.)
定理Iのn+fDをTHで言い換えると、『列双対ギャップz[j]が閾値TH以下の列jからなる列群CTHによる部分問題P(TH)の最適値J(TH)optが、TH+JD+1以下ならば、当該部分問題P(TH)の最適解は、原問題Pの最適解である』となる。従って、閾値THを徐々に大きくしながら定理Iが成立するまで部分問題P(TH)を繰り返し解けば、適当な閾値THのときに原問題Pの最適解が得られることになる。
<<定理Iを応用した双対ギャップを解消するための最適な列の抽出の考え方>>
列生成法を整数計画問題に適用した場合、最適解を構成する最適列集合には、(線形問題ではあり得ない)列双対ギャップz[j](誤差)が非0(正)の列の要素が含まれることが想定される。その際、どの程度の列双対ギャップz[j]を持つ列までが最適解の構成要素の候補となり得るかを見極めることが望ましい。メモリの超過をより確実に防ぎ、最適化計算をより効率化することができるからである。この指針を定理Iによって与える。つまり、本処理部130は、閾値THを0(ゼロ)から順次に大きくしながら、その際に得られる部分問題P(TH)の最適解と原問題Pの最適解との一致の有無を、定理Iに従い判断する。この計算過程において、以下の<1>および<2>が要請される。
<1>指定された閾値TH以下となる全ての実行可能な列jの抽出
<2>閾値THを順次増加させる際の、計算上有効なステップ幅ST(TH=TH+ST)の設定
まず、<1>について説明する。
任意の実行可能な列j(山構成鋼材有無変数mj[i])を隈なく列挙(生成)することと、それが生成された場合、その列jの列双対ギャップz[j]を算出することとができれば、z[j]≦THとなる列のみを抽出すればよい。本実施形態では、原問題Pが山分け問題であるので、このような列の列挙法としては、例えば、特許文献1の実現可能山抽出工程に記載の方法を用いればよい。また、列双対ギャップz[j](誤差)を計算するには、前処理部120で導出された双対最適解p[i]を利用する。
次に、<2>について説明する。
まず、ステップ幅STの計算に対する影響について述べる。ステップ幅STが大き過ぎる場合には、閾値THを拡張することにより抽出される列jの数が増えるので、部分問題P(TH)が解きにくくなる。一方、ステップ幅STが小さ過ぎると、閾値THを拡張することにより新たに抽出される列jの数が少なく、列jの抽出(閾値THの変更)の繰り返し回数が増える。この様にステップ幅STは、計算の効率性を高める上で重要となる。そこで、本実施形態では、想定される原問題Pの双対ギャップに同期して閾値THを定める。ここでは、整数計画問題の目的関数の値は整数となることを前提としているので、その最小変動量は1とみなせる。よって、双対ギャップは、n+fD(n=0,1,2,・・・)となる。従って、閾値THを、fD,1+fD,2+fD,3+fD,・・・のようにして順次大きくする方法、即ち、ステップ幅STを「1」(ST=1)とする方法を採用するのが好ましい。閾値THをfDから徐々に(1ずつ)大きくし、部分問題P(TH)を拡張しながら求解する際、定理Iによると、閾値TH(=n+fD)が大きくなるに従い、その部分問題P(TH)の最適値J(TH)optを原問題Pの最適値Joptと判定できる条件が緩和されることを意味する。このような条件の緩和を、部分問題P(TH)の最適値が原問題Pの最適値Joptと一致すると判断されるまで行う。
<<本処理部130の機能>>
次に、本処理部130が有する機能の一例を説明する。
前提として、本処理部130が起動する前に、前処理部120において、双対最適解p[i]および双対最適値JDが導出されていることとする。即ち、本処理部130は、前処理部120において、双対最適解p[i]および双対最適値JDが導出されると起動する。また、本処理部130は、実行可能な列を列挙するアルゴリズムを有しているものとする。実行可能な列を列挙する方法として、本実施形態では、特許文献1の実現可能山抽出工程に記載の方法を用いる場合を例に挙げて説明する。尚、以下の説明では、実行可能列を列挙するアルゴリズムを必要に応じて実行可能列列挙アルゴリズムと称する。
特許文献1では、最下段から順次上段に向かって実現可能な鋼材のみを積み上げる(分岐する)樹形図により、実現可能山を抽出する。或る鋼材に対して山積み制約を満たす鋼材を鋼材ペアとすることを、鋼材情報に含まれる各鋼材について行う。最下段に設定した鋼材を要素とするノードを設定し、当該鋼材に対して山積み制約を満たす別の鋼材を2段目の鋼材として当該2段目の鋼材を要素とするノードを設定し、これらのノード間を枝で結ぶ。このようなノードおよび枝の生成を、3段目以降に積まれる鋼材についても行う。そして、このようなノードおよび枝の生成を、上に積める鋼材がなくなるか、山高さ制約を満たさなくなるまで行うことにより、或る鋼材を最下段にした場合の樹形図が得られる。鋼材情報に含まれる鋼材のそれぞれを最下段に設定した場合のそれぞれについて、このような樹形図を作成する。尚、樹形図の作成方法の詳細は、特許文献1に記載されているので、ここでは、その詳細な説明を省略する。また、実行可能な列を列挙する方法は、特許文献1に記載の方法に限定されない。例えば、特許文献4に記載の方法を用いてもよい。
以上のことを前提として、本処理部130が有する機能の一例を説明する。
図1において、本処理部130は、双対最適解・最適値取得部131、閾値・仮想最適値設定部132、最適列抽出部133、部分問題最適値導出部134、実行可能解有無判定部135、最適値判定部136、および閾値・仮想最適値更新部137を有する。
<双対最適解・最適値取得部131>
双対最適解・最適値取得部131は、双対最適解p[i]および双対最適値JDを取得する。前述したように、双対最適解p[i]は、前記列判定部124にて実現可能山mjを行列Aの列に追加不要と判定される直前に双対解導出部122により導出された双対問題Dの最適解p[i]である。また、双対最適値JDは、双対最適解p[i]を得たときの(11)式の目的関数Jの値である。
<閾値・仮想最適値設定部132>
閾値・仮想最適値設定部132は、前記列コストcjと前記双対最適解p[i]による前記双対コストとの差を実現可能山mjごとに評価した値である列双対ギャップz[j]に対する閾値THと、原問題Pの最適解としての適否を判定する指標となる値である仮想最適値JVとを設定する。本実施形態では、閾値・仮想最適値設定部132は、以下の(27)式、(28)式により、閾値THの初期値、仮想最適値JVの初期値を算出する。
Figure 0006954218
整数(0−1)計画主問題(原問題P)を線形緩和した線形主問題に対する双対問題の最適値である双対最適値JDは、通常小数値を持つが、整数(0−1)計画主問題の最適値は、目的関数の係数を整数値とすれば整数値となるので、その値は必ずceil(JD)以上となる。従って、本実施形態では、閾値THの初期値は、(27)式の様に、fDとする。また、ここで定義する仮想最適値JVは、[定理I]に基づく閾値THの際に想定される原問題Pの最適値Joptの上限に相当する。つまり、ここで定義する仮想最適値JVは、部分問題P(TH)の最適値J(TH)optが仮想最適値JV以下であれば、部分問題P(TH)の最適値J(TH)optが原問題Pの最適値Joptであると判定できるとする場合の、原問題Pの最適値Joptの上限値である。なおここでの「目的関数の係数を整数値とする」仮定は、当該係数が評価項目間での相対的な重みを表し、その係数比が本質的であることから一般性を失うものではない。
<最適列抽出部133>
最適列抽出部133は、実行可能列列挙アルゴリズムに従って列j(実現可能山mj[i])を列挙する毎に、当該実現可能山mj[i]と、当該実現可能山mj[i]の列コストcj((18)式を参照)と、双対最適解・最適値取得部131により取得された双対最適解p[i]と、閾値THの現在値とを用いて、以下の(29)式を満たすか否かを判定する(尚、以下の(29)式は、前述した(23)式と同じであるが、説明の便宜のため改めて示す)。そして、最適列抽出部133は、(29)式を満たす列j(実現可能山mj[i])のみを抽出し、最適列候補列群CTHに加える。このように、最適列抽出部133の処理によって、最適列候補列群CTHには、実行可能列列挙アルゴリズムに従い列挙し得る全ての列j(実現可能山mj[i])ではなく、列j(実現可能山mj[i])のうちで、(29)式を満たすもののみが含まれる。
Figure 0006954218
列j(実現可能山mj[i])のうちで(29)式を満たすものが、原問題Pの最適解に含まれる列jの候補となる。
通常の列生成法では、全体集合Nの各要素のみを部分集合とする列を初期抽出列として抽出するが、(29)式の条件のみで列を抽出すると、例えば、集合分割問題の場合の(2)式の条件などを満たすことができず、抽出した列から最適解を求める際に求解不能(infeasible)となることがあり得る。しかしながら、以下の理由で、(29)式の条件のみで列を抽出しても問題はない。
即ち、求解不能となったとすれば、それ自体が求解するための貴重な情報となる。つまり、列j(実現可能山mj[i])を抽出するか否かの判定条件((29)式)における閾値THの現在値では解がないということになる。従って、求解不能であることは、原問題Pの最適解には、列双対ギャップz[j]が閾値THを上回る列を含める必要があることを意味する。従って、最適列抽出部133は、(29)式の条件のみで列を抽出しても問題はない。
<部分問題最適値導出部134>
部分問題最適値導出部134は、最適列抽出部133により得られた最適列候補列群CTHを用いて、部分問題P(TH)を解き、部分問題P(TH)の最適値J(TH)optを求める。具体的には、(2)式のMj(i)⊆CのCを最適列候補列群CTHとしたうえで、(2)式の制約式を満足する範囲で(4)式の目的関数Jの値を最小にする決定変数x[j]を求める。この最小となる目的関数Jの値が、部分問題P(TH)の最適値J(TH)optとなる。
<実行可能解有無判定部135>
実行可能解有無判定部135は、部分問題最適値導出部134により実行可能解が求められたか否かを判定する。
<最適値判定部136>
最適値判定部136は、部分問題最適値導出部134により実行可能解が求められたことが実行可能解有無判定部135により判定されると、部分問題最適値導出部134で導出された部分問題P(TH)の最適値J(TH)optが、仮想最適値JVの現在値以下(J(TH)opt≦JV)であるか否かを判定する。
<閾値・仮想最適値更新部137>
<最適列抽出部133>の項で説明したように、部分問題最適値導出部134により実行可能解が求められない場合(例えば(2)式を満たさない場合)には、閾値THおよび仮想最適値JVを現在値よりも大きくする必要がある。そこで、閾値・仮想最適値更新部137は、部分問題最適値導出部134により実行可能解が求められなかったことが実行可能解有無判定部135により判定されると、閾値THおよび仮想最適値JVの現在値に対し、それぞれ「1」を加算する。ここでは、(4)式の目的関数Jの係数を整数としているので、その最小変動量は「1」である。尚、ここでの閾値THおよび仮想最適値JVの更新に際しても、それらの初期値を設定する場合と同様に、定理Iに従い、部分問題P(TH)の最適値J(TH)optが仮想最適値JV以下であれば、部分問題P(TH)の最適値J(TH)optが原問題Pの最適値Joptであるという条件(JV=TH+JD+1)を保持させる。
また、部分問題P(TH)の最適値J(TH)optが、仮想最適値JVの現在値以下(J(TH)opt≦JV)でない場合には、定理Iより、閾値THおよび仮想最適値JVを現在値よりも大きくする必要がある。そこで、閾値・仮想最適値更新部137は、部分問題最適値導出部134で導出された部分問題P(TH)の最適値J(TH)optが、仮想最適値JVの現在値以下(J(TH)opt≦JV)でないことが最適値判定部136により判定されると、閾値THおよび仮想最適値JVの現在値に対し、それぞれ「1」を加算する。
部分問題最適値導出部134で導出された部分問題P(TH)の最適値J(TH)optが、仮想最適値JVの現在値以下(J(TH)opt≦JV)であることが最適値判定部136により判定されるまで、前述した最適列抽出部133、部分問題最適値導出部134、実行可能解有無判定部135、最適値判定部136、および閾値・仮想最適値更新部137の処理が繰り返し実行される。
((出力部140))
部分問題最適値導出部134で導出された部分問題P(TH)の最適値J(TH)optが、仮想最適値JVの現在値以下(J(TH)opt≦JV)であることが最適値判定部136により判定されると、その判定の直前に部分問題最適値導出部134で導出された部分問題P(TH)の最適値J(TH)optが原問題Pの最適解Joptとなる。そこで、出力部140は、当該部分問題P(TH)の最適値J(TH)optを得たときの決定変数x[j]の値が「1」となる実現可能山mjを特定し、特定した実現可能山mjの情報を山分け計画の情報として出力する。出力部140は、例えば、実現可能山のIDと、当該IDの実現可能山に属する鋼材のIDとを含む情報を山分け計画の情報とすることができる。ここで、鋼材のIDは、鋼材情報に含まれるIDである。また、出力部140は、鋼材情報に含まれる鋼材のサイズと、上載せ禁止制約式とに基づいて、実現可能山に属する鋼材の当該実現可能山における積順を導出し、当該積順の情報を山分け計画の情報に含めて出力してもよい。
山分け計画の情報の出力の形態としては、例えば、外部装置への送信と、鋼材の山分け計画作成装置100の内部または外部の記憶媒体の記憶との少なくとも何れか1つを採用することができる。また、出力部140は、山分け計画の情報と、鋼材情報に含まれる鋼材の到着順と、ヤードの置場401〜404および搬送機器(クレーン1A、1B、2A、2B)の情報に基づいて、どのタイミングでどの搬送機器によりどの鋼材をどの場所に搬送するのかを特定し、特定した内容に基づいて、搬送機器に対する動作指令を行うことができる。この場合には、山分け計画の情報を出力しなくてもよい。出力部140は、例えば、CPU、ROM、RAM、および通信インターフェース(または記憶媒体とのインターフェース)を用いることにより実現される。
(動作フローチャート)
次に、図2−1および図2−2のフローチャートを参照しながら、本実施形態の鋼材の山分け計画作成方法の一例を説明する。
まず、ステップS201において、鋼材情報取得部110は、鋼材情報を取得する。
次に、ステップS202において、初期列集合設定部121は、実現可能山mjの集合Cの初期値を設定する。
次に、ステップS203において、双対解導出部122は、実現可能山mjの集合Cの現在値に基づいて、(9)式の制約式を満足する範囲で(11)式の目的関数Jの値を最大にする双対変数p[i]を、双対問題Dの最適解(双対解psol[i])として導出する。最初にステップS203を行うときには、実現可能山mjの集合Cの現在値は、ステップS202で設定された実現可能山mjの集合Cの初期値である。
次に、ステップS204において、列生成部123は、ステップS203で導出された(最新の)双対解psol[i]を用いて、(13)式〜(17)式、(21)式の制約式を満足する範囲で(20)式の目的関数JSの値を最小にする決定変数(山構成鋼材有無変数mj[i]および鋼材上下関係変数y[i1][i2])を導出する。そして、列生成部123は、導出した決定変数(山構成鋼材有無変数mj[i]および鋼材上下関係変数y[i1][i2])から、(18)式および(19)式により、実現可能山mjの列コストcjと、当該実現可能山mjに対する双対コストPjとを導出する。
次に、ステップS205において、列判定部124は、実現可能山mjの列コストcjから、当該実現可能山mjに対する双対コストPjを減算した値(=cj−Pj)が「0」以下であるか否かを判定する。この判定の結果、実現可能山mjの列コストcjから、当該実現可能山mjに対する双対コストPjを減算した値(=cj−Pj)が「0」以下である場合には、ステップS206に進む。
ステップS206に進むと、列判定部124は、ステップS204で導出された(最新の)山構成鋼材有無変数mj[i]に基づく実現可能山mjが、実現可能山mjの集合Cに含まれているか否かを判定する。この判定の結果、ステップS204で導出された(最新の)山構成鋼材有無変数mj[i]に基づく実現可能山mjが、実現可能山mjの集合Cに含まれている場合には、後述する図2−2のステップS211に進む。一方、ステップS204で導出された(最新の)山構成鋼材有無変数mj[i]に基づく実現可能山mjが、実現可能山mjの集合Cに含まれていない場合には、ステップS207に進む。
ステップS207に進むと、列追加部125は、ステップS204で導出された(最新の)山構成鋼材有無変数mj[i]に基づく実現可能山mjを、実現可能山mjの集合Cに追加し、実現可能山mjの集合Cの現在値を更新する。そして、ステップS203に戻り、ステップS205において、実現可能山mjの列コストcjから、当該実現可能山mjに対する双対コストPjを減算した値(=cj−Pj)が「0」を超えると判定されるか、または、ステップS206において、ステップS204で導出された(最新の)山構成鋼材有無変数mj[i]に基づく実現可能山mjが、実現可能山mjの集合Cに含まれていると判定されるまで、ステップS203〜S207の処理を繰り返し行う。
以上のようにしてステップS205において、実現可能山mjの列コストcjから、当該実現可能山mjに対する双対コストPjを減算した値(=cj−Pj)が「0」以下でないと判定されるか、または、ステップS206において、ステップS204で導出された(最新の)山構成鋼材有無変数mj[i]に基づく実現可能山mjが、実現可能山mjの集合Cに含まれていると判定されると、図2−2のステップS211に進む。
ステップS211に進むと、双対最適解・最適値取得部131は、双対最適解p[i]と、双対最適値JDとを取得する。双対最適解p[i]は、ステップS205またはS206にて実現可能山mjを行列Aの列に追加不要と判定される直前にステップS203で導出された双対問題Dの最適解(双対解psol[i])である。双対最適値JDは、双対最適解p[i]を得たときの(11)式の目的関数Jの値である。
次に、ステップS212において、閾値・仮想最適値設定部132は、列双対ギャップz[j]に対する閾値THの初期値と、仮想最適値JVの初期値を設定する。
次に、ステップS213において、最適列抽出部133は、最適列候補列群CTHを抽出する。最適列候補列群CTHには、実行可能列列挙アルゴリズムに従い列挙し得る全ての列j(実現可能山mj[i])ではなく、列j(実現可能山mj[i])のうちで(29)式を満たすもののみが含まれる。
次に、ステップS214において、部分問題最適値導出部134は、ステップS213で得られた最適列候補列群CTHを用いて部分問題P(TH)を解き、部分問題P(TH)の最適値J(TH)optを求める。
次に、ステップS215において、実行可能解有無判定部135は、ステップS214で実行可能解が求められたか否かを判定する。この判定の結果、ステップS214で実行可能解が求められなかった場合、処理は、ステップS216に進む。
ステップS216において、閾値・仮想最適値更新部137は、閾値THの現在値に対し「1」を加算する。
次に、ステップS217において、閾値・仮想最適値更新部137は、仮想最適値JVの現在値に対し閾値THへの加算と同じ値である「1」を加算する(尚、図2−2のS217の欄において、右辺に示すTHは、ステップS216において更新後のTHを示す)。
そして、処理は、ステップS213に戻り、ステップS216で変更された閾値THを用いて、ステップS213の処理が行われる。そして、ステップS215において、ステップS214で実行可能解が求められたと判定されるまで、ステップS213〜S217の処理が繰り返し実行される。そして、ステップS215において、ステップS214で実行可能解が求められたと判定されると、処理は、ステップS218に進む。
ステップS218において、最適値判定部136は、ステップS214で導出された部分問題P(TH)の最適値J(TH)optが、仮想最適値JVの現在値以下(J(TH)opt≦JV)であるか否かを判定する。この判定の結果、部分問題最適値導出部134で導出された部分問題P(TH)の最適値J(TH)optが、仮想最適値JVの現在値以下でない場合、処理は、前述したステップS216に進む。そして、ステップS218において、ステップS214で導出された部分問題P(TH)の最適値J(TH)optが、仮想最適値JVの現在値以下であると判定されるまで、ステップS213〜S218の処理が繰り返し実行される。そして、ステップS218において、ステップS214で導出された部分問題P(TH)の最適値J(TH)optが、仮想最適値JVの現在値以下であると判定されると、処理は、ステップS219に進む。
ステップS219において、出力部140は、ステップS214で導出された最新の部分問題P(TH)の最適値J(TH)optを得たときの決定変数x[j]の値が「1」となる実現可能山mjを特定し、特定した実現可能山mjの情報を山分け計画の情報として出力する。そして、図2−1および図2−2のフローチャートによる処理を終了する。
(実施例)
次に、実施例を説明する。本実施例では、特許文献1に記載の技術を用いた場合には、実現可能山を列挙できないような問題、および、実現可能山は列挙できるが、その後の集合分割問題が求解できないような問題について、本実施形態の手法を適用し、その効果を調べた。ここで、実現可能山を列挙できないとは、実現可能山を列挙する計算過程で主メモリの容量が上限に達し、計算続行が不可能になることを指す。また、集合分割問題が求解できないとは、最適解の計算過程で主メモリの容量が上限に達し、計算続行が不可能になることを指す。
本実施例では、以下の計算環境で計算を行った。
プロセッサ:Intel(登録商標)Xeon(登録商標)CPU E5-2687W@3.1GHz(2プロセッサ)
実装メモリ(RAM):128GB
OS:Windows7(登録商標) Professional 64ビットオペレーションシステム
最適計算ソフト:ILOG CPLEX(登録商標) Cplex11.0 Concert25
図3に、山分け計画の作成結果の一例を示す。図3において、「SL Gr数」は、鋼材iの数(搬送ロット(1つの搬送機器(クレーン1A、1B、2A、2B)で搬送することができる鋼材の纏まり)の数)である。「SL数」は、鋼材iを構成する(1つ1つの)鋼材の総数である。実現可能山数は、実現可能山を全数列挙する特許文献1の手法によって求めたものである。「全列挙計算」の「列挙MO」は、特許文献1の手法において主メモリの容量が上限に達し実現可能山を列挙できなかったことを示す(図3の「>108」を参照(「>108」は、実現可能山数が108個超であることを意味する))。「最適MO」は、特許文献1の手法において、主メモリの容量が上限に達し実現可能山を列挙することはできたが、集合分割問題が求解できなかったことを示す。
「前処理」は、本実施形態の前処理部120における処理を示す。「計算時間」は、前処理部120での計算時間を示す。「繰り返し数」は、図2−1のステップS203〜S207の繰り返しの回数である。「上界値/下界値」の「上界値」は、前処理部120で導出された列群に対し(処理としては不要であるが)集合分割問題を解いた際の最適値である。「下界値」は、双対最適値JDである。「双対Gap」は、上界値JUから下界値JLを減算した値を上界値JUで割った値に100を掛けた値(={(上界値JU−下界値JL)÷上界値JU}×100)である。
「本処理」は、本実施形態の本処理部130における処理を示す。「追加時間」は、本処理部130での計算時間を示す。また、「追加時間」の欄には、「総計算時間」に対する「追加時間」の割合を百分率で表した値を、実際の時間の後に示す。「繰り返し数」は、図2−2のステップS213〜S218の繰り返しの回数である。「Gap」は、双対ギャップを示す。「最適値」は、原問題Pの最適値Jopt(原問題Pの最適値Joptと一致する部分問題P(TH)の最適値J(TH)opt)である。
「総計算時間」は、前処理部120での計算時間と本処理部130での計算時間tの和である。
図3において、Data ID 04,10,12,15,22は、特許文献1による従来の方法では実現可能山の列挙途中で主メモリがオーバーフローするケースであり、Data ID 08,11,20は、実現可能山の列挙はできるが、その後の集合分割問題が求解できないケースの問題例である。これらの問題は、特許文献1ではいずれも解すら得られない難問題であったが、本実施形態では、いずれの問題も双対ギャップがなく厳密な最適解が得られていることが分かる。
(まとめ)
以上のように本実施形態では、前処理部120は、実現可能山mjの列コストcjから当該実現可能山mjに対する双対コストPiを減算した値が「0」以下である場合に、実現可能山mjの集合C(行列A)に実現可能山mjを追加する。かかる実現可能山mjの追加を、実現可能山mjの列コストcjから当該実現可能山mjに対する双対コストPiを減算した値が「0」を上回るまで繰り返し行う。
本処理部130は、実現可能山mjの列コストcjから当該実現可能山mjに対する双対コストPiを減算した値が「0」を上回ると判定される直前の双対問題Dの最適解p[i]である双対最適解p[i]と、当該双対問題Dの最適解p[i]を得たときの(11)式の目的関数Jの値である双対最適値JDを求める。次に、本処理部130は、双対最適値JDを用いて、列双対ギャップz[j]に対する閾値THおよび仮想最適値JVを設定し、列j(実現可能山mj)のうち、列双対ギャップz[j]が閾値TH以下となる列j(実現可能山mj)を最適列候補群CTHとして抽出する。次に、本処理部130は、最適列候補群CTHを用いて部分問題P(TH)の最適値J(TH)optを求め、求めた最適値J(TH)optが仮想最適値JV以下になるまで、閾値THおよび仮想最適値JVをインクリメントする。そして、本処理部130は、仮想最適値JV以下になったときの最適値J(TH)optを原問題Pの最適値Joptとする。
従って、山分け問題に列生成法を適用することができるようになり、実現可能山の候補として可及的に過不足なく実現可能山の候補を列挙することができる(即ち、全ての実現可能山を列挙する必要がなくなる)。従って、特許文献1に記載の技術では、実現化の山を列挙すらできないような大規模な問題であっても、双対ギャップ(離散誤差)がなく厳密に適切な山分け計画を確実に作成することができる。
また、列生成法は、これを用いることで線形計画問題の最適解を得られることは保証されているが、集合分割問題の様な0-1整数計画問題に対しては、解の下限は求まるものの、最適解を得られることは必ずしも保証されていない。特許文献2に記載の技術でもこの点は課題として残されたままである。これに対し本実施形態では、本処理部130により、原問題Pの最適解Joptを導出することができる。
また、列生成法は、繰り返し計算となることから計算時間を要する方法である。このため、山分け計画をリアルタイム制御に利用するには可及的に計算時間を短縮する方法が必要となる場合がある。しかし、特許文献2では、2つの異なる文書に含まれる文の対応関係を求めるようなオフラインで使用する用途を前提としているため、この課題については触れられていない。これに対し本実施形態では、列生成子問題Sを解く際に、(21)式のように、実現可能山mjの列コストcjが、当該実現可能山mjに対する双対コストPj以下(cj≦Pj)であるという制約を追加する。従って、計算時間のかかる列生成子問題Sの計算時間を短縮することができる。
(変形例)
<変形例1>
本実施形態では、列生成子問題Sを解く際に、(21)式の制約式を追加することにより、列生成子問題Sの計算時間を短縮する場合を例に挙げて説明した。しかしながら、列生成子問題Sの計算時間を短縮する手法は、このような手法に限定されない。例えば、列生成子問題Sの計算の打ち切りの条件となる双対ギャップを、列生成子問題S(ステップS204)を実行する度に調整してもよい。
即ち、列生成部123による列j(実現可能山mj)の繰り返し計算が進行すると、実現可能山mjの集合Cに追加される実現可能山mjが増えるので、双対解を計算する実現可能山mjも増える。従って、双対解が双対問題Dの真の最適解に近づき、それに伴い、列生成子問題Sの最適解(山構成鋼材有無変数mj[i]および鋼材上下関係変数y[i1][i2])に基づいて得られる、実現可能山mjの列コストcjおよび当該実現可能山mjに対する双対コストPjは、cj<Pjの状態で双対コストPjが実現可能山mjの列コストcjに徐々に近づいてくる。
つまり、列生成部123による実現可能山mjの繰り返し計算が進行するほど、列生成部123で計算される最適解(山構成鋼材有無変数mj[i])から得られる実現可能山mjが、原問題Pの真の最適解の構成要素となる可能性が高まるので、計算精度を高めることが求められる。従って、前回の計算において列生成部123で列生成子問題Sの最適解に基づいて得られる、実現可能山mjの列コストcjから当該実現可能山mjに対する双対コストPjを減算した値(=cj−Pj)に応じて、列生成子問題Sの計算の打ち切りの条件となる双対ギャップを設定すればよい。
この場合、例えば、列生成部123は、列生成子問題Sの計算の打ち切りの条件となる双対ギャップGap[%]を、以下の(30)式に従って設定する。
Figure 0006954218
ここで、βは、0を上回る係数であり、予め設定される。係数βの値が大きくなるほど計算時間は早くなるが計算精度が低下するので、計算時間と計算精度との兼ね合いから係数βの値を決めるのが好ましい。例えば、係数βを「1」にすることができる。Vopt_prvは、前回のステップS204の計算において導出される値であり、実現可能山mjの列コストcjから当該実現可能山mjに対する双対コストPiを減算した値(=cj−Pj)である。尚、(30)式の右辺にマイナスがついているのは、列生成子問題Sの繰り返し計算が行われている間(図2−1のステップS205でYesとなる場合)には、実現可能山mjの列コストcjから当該実現可能山mjに対する双対コストPjを減算した値(=cj−Pj)はマイナスの値になるからである。このように、実現可能山mjの列コストcjから当該実現可能山mjに対する双対コストPiを減算した値(=cj−Pj=Vopt_prv)の絶対値が小さいほど、列生成子問題Sの計算の打ち切りの条件となる双対ギャップGap[%]は小さくなる。
また、双対ギャップは、以下の(31)式で定義されるものである。
Figure 0006954218
ここで、双対ギャップを規定する上界値・下界値は、列生成部123(図2のステップS204)で列生成子問題Sを解く際に得られる上界値・下界値である。上界値は、列生成子問題Sの実行可能解のうちの最良の解(最適解)を(20)式の目的関数JSに与えたときの当該目的関数JSの値である。下界値は、列生成子問題Sを分枝限定法等により解く際に使用する線形緩和問題の解のうち最も悪い解(最大値)を当該線形緩和問題の目的関数に与えたときの当該目的関数の値である。
列生成部123は、図2のステップS204で列生成子問題Sを解く際に、(31)式の計算を行うことにより、双対ギャップを導出する。また、列生成部123は、(30)式の計算を行うことにより、列生成子問題Sの計算の打ち切りの条件となる双対ギャップGapを導出して記憶する。列生成部123は、(31)式の計算を行うことにより導出した双対ギャップが、係数βを「1」にした場合には、前回の列生成子問題Sの計算時に導出した双対ギャップGap以下になった時点で、列生成子問題Sの計算を打ち切り、その時点で得られている解(山構成鋼材有無変数mj[i]および鋼材上下関係変数y[i1][i2])を最適解とする。
尚、(21)式の制約式を加えた上で、本変形例1で説明した処理を行ってもよい。
<変形例2>
本実施形態では、原問題Pが最小化問題である場合を例に挙げて説明した。しかしながら、原問題Pは、最大化問題であってもよい。原問題Pを最小化問題から最大化問題に変更することは、本実施形態の説明から容易に類推することができるが、以下に概要を説明する。
まず、原問題Pの目的関数は、列コストcjの総和が最大になるように実現可能山mjを選択することを目的とする関数であり、(3)式に代えて以下の(3´)式が用いられる。また、双対問題Dの制約式、目的関数として、(9)式、(11)式に代えて、それぞれ以下の(9´)式、(11´)式が用いられる。即ち、双対問題Dでは、(9´)式の制約式を満足する範囲で(11´)式の目的関数Jの値を最小にする双対変数p[i]を、双対問題Dの最適解として導出する。また、列生成子問題Sの目的関数として、(20)式に代えて以下の(20´)式が用いられる。即ち、列生成子問題Sでは、(13)式〜(17)式、(21)式の制約式を満足する範囲で(20´)式の目的関数JSの値を最大にする決定変数(山構成鋼材有無変数mj[i]および鋼材上下関係変数y[i1][i2])を導出する。そして、ステップS205では、列判定部124は、実現可能山mjに対する双対コストPjから、当該実現可能山mjの列コストcjを減算した値(=Pj−cj)が「0」以下であるか否かを判定することになる。尚、実現可能山mjの列コストcjも最大化問題に合わせて定式化される。
Figure 0006954218
次に、原問題Pを最大化問題とする場合の[定理I]に対応する[定理II]について説明する。
閾値THに基づき、以下の(23´)式の条件より抽出された列jによる列群CTHに対する部分問題P(TH)の最適解が、原問題Pの最適解と一致する十分条件は、以下の定理IIにより与えられる。ここで、前処理部120で導出された双対最適値JDと、当該双対最適値JD以下の整数値のうち最大の整数値floor(JD)との差分をfD(=JD−floor(JD))とする。また、ここでは、原問題Pを最大化問題であり、その目的関数Jの値は整数値をとるものとする((3´)式を参照)。
Figure 0006954218
[定理II]
『閾値THがn+fD(n:0(ゼロ)以上の整数)のとき、列双対ギャップz[j]が当該閾値TH以下の列jによる列群CTHにより得られた部分問題P(n+fD)の最適値J(n+fDoptがfloor(JD)−n−1以上なら、当該最適値J(n+fDoptは、原問題Pの最適値Joptである』
ここで、floor(x)は、床関数(実数xに対してx以下の最大の整数を対応付ける関数)である。
[証明]
閾値THをn+fDとして得られた部分問題P(TH)の最適値J(n+fDoptがfloor(JD)−n−1であるとし、これが原問題Pの最適値でないとする。即ち、原問題Pの最適値Joptは、floor(JD)−n以上であり、それを得るため最適解の構成要素となり得る列を抽出するための閾値THを、n+fDより拡張する(大きくする)必要があると仮定する。
そこで、閾値THをn+fD+α(0<α≦1の正数)とする。ここで、拡張した部分問題P(n+fD+α)において新たに加わる列の中には、必ず列双対ギャップz[j]が以下の(24´)式を満たす列jが少なくとも一つは追加される。閾値THを拡張した後の列jの拡張範囲から列jが抽出されなければ解の改善はあり得ないからである。
Figure 0006954218
この閾値THの拡張により新たに追加される列jの列双対ギャップz[j]を以下の(25´)式とする。
Figure 0006954218
そうすると、拡張した部分問題P(n+fD+α)の最適値J(n+fD+α)optは、JD−(n+fD+β)以下の整数値となる。つまり、以下の(26´)式が成り立つ。
Figure 0006954218
従って、閾値THを拡張しても、拡張した部分問題P(n+fD+α)の最適値J(n+fD+α)optは、floor(JD)−n未満となり、原問題Pの最適値Joptの上限値はfloor(JD)−n−1となる。これは、原問題Pの最適値Joptをfloor(JD)−n以上と仮定したことに矛盾する。従って、前述した仮定に誤りがあり、閾値THがn+fDであるときに得られた部分問題P(n+fD)の最適値J(n+fDoptがfloor(JD)−n−1以上なら、当該最適値J(n+fDoptは、原問題Pの最適値Joptであることが証明された。(Q.E.D.)
この定理は、閾値TH=n+fD(n:0以上の整数)で、(23´)式により抽出した列群CTHにより得られた部分問題P(TH)の最適値JTHが、floor(JD)−n−1=JD−fD−n−1=JD−(n+fD)−1=JD−TH−1以上であれば、そのときの解が原問題Pの最適解と見なせることを保証するものである。
よって、ステップS212において、閾値・仮想最適値設定部132は、列双対ギャップz[j]に対する閾値THの初期値、仮想最適値JVの初期値として、以下の(27´)式、(28´)式で定まる値を設定する。
Figure 0006954218
また、ステップS213において、最適列抽出部133は、(23´)式を満たす列j(実現可能山mj[i])のみが含まれる最適列候補列群CTHを抽出する。また、ステップS216において、閾値・仮想最適値更新部137は、閾値THの現在値に対し「1」を減算する。また、ステップS217において、閾値・仮想最適値更新部137は、仮想最適値JVの現在値に対し「1」を減算する。そして、ステップS218において、最適値判定部136は、仮想最適値JVの現在値が、ステップS214で導出された部分問題P(TH)の最適値J(TH)opt以下(JV≦J(TH)opt)であるか否かを判定する。
<その他の変形例>
以上説明した本発明の実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、前記プログラムを記録したコンピュータ読み取り可能な記録媒体及び前記プログラム等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、以上説明した本発明の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
(請求項との関係)
以下に、請求項と実施形態との対応関係の一例について説明する。請求項の記載が実施形態の記載に限定されないことは、変形例等において説明した通りである。
<請求項1、5〜7>
決定変数は、例えば、決定変数x[j]により実現される。
実現可能山に対する前記鋼材の山立てについての評価値である列コストは、例えば、列コストcj(山数c1j、逆転対数c2j)により実現される。
初期解として与えられた実現可能山の集合は、例えば、初期列集合設定部121により設定される実現可能山mjの集合Cの初期値により実現される。
双対解導出手段は、例えば、双対解導出部122により実現される。
列生成手段は、例えば、列生成部123により実現される。候補山は、例えば、列生成部123により導出される山構成鋼材有無変数mj[i]に基づく実現可能山mjにより実現される。
列判定手段は、例えば、列判定部124により実現される。
列追加手段は、例えば、列追加部125により実現される。
双対最適解・最適値取得手段は、例えば、双対最適解・最適値取得部131により実現される。
閾値・仮想最適値設定手段は、例えば、閾値・仮想最適値設定部132により実現される。
最適列抽出手段は、例えば、最適列抽出部133により実現される。
部分問題最適値導出手段は、例えば、部分問題最適値導出部134により実現される。
実行可能解有無判定手段は、例えば、実行可能解有無判定部135により実現される。
最適値判定手段は、例えば、最適値判定部136により実現される。
閾値・仮想最適値更新手段は、例えば、閾値・仮想最適値更新部137により実現される。
出力手段は、例えば、出力部140により実現される。
山積み制約は、例えば、(16)式、(17)式により実現される。
原問題の目的関数は、例えば、(4)式により実現される。
双対解は、例えば、双対解psol[i]により実現される。
双対問題の目的関数は、例えば、(11)式により実現される。
閾値の初期値は、例えば、(27)式または(27´)式により表される。また、仮想最適値の初期値は、例えば、(28)式または(28´)式により表される。
実現可能山ごとの評価値は、例えば、列双対ギャップz[j]により実現される。
列列挙条件は、例えば、(23)式((29)式)または(23´)式により実現される。
部分問題は、例えば、部分問題P(TH)に対応し、原問題Pに対し(2)式のMj(i)⊆CのCを最適列候補列群CTHとした問題により実現される。
部分問題の目的関数は、例えば、(4)式により実現される。
<請求項2>
制約式は、例えば、(2)式の制約式により実現される。
目的関数は、例えば、(3)式により実現される。
実現可能山の列コストは、例えば、列コストcjにより実現され、実現可能山の数は、例えば、山数c1jにより実現され、逆転対の数は、例えば、逆転対数c2jにより実現される。
<請求項3>
制約式は、例えば、(9)式により実現される。
目的関数は、例えば、(11)式により実現される。
前記実現可能山に対する双対コストは、例えば、双対コストPjにより実現される((9)式の左辺も参照のこと)。
該鋼材と該実現可能山に対応する山構成鋼材有無変数は、例えば、山構成鋼材有無変数mj[i]により実現される。
双対変数は、例えば、p[i]により実現される。
<請求項4>
制約式は、例えば、(13)式〜(17)式により実現される。
目的関数は、例えば、(20)式により実現される。
鋼材上下関係変数は、例えば、y[i1][i2]により実現される。
100:鋼材の山分け計画作成装置、110:鋼材情報取得部、120:前処理部、121:初期列集合設定部、122:双対解導出部、123:列生成部、124:列判定部、125:列追加部、130:本処理部、131:双対最適解・最適値取得部、132:閾値・仮想最適値設定部、133:最適列抽出部、134:部分問題最適値導出部、135:実行可能解有無判定部、136:最適値判定部、137:閾値・仮想最適値更新部、140:出力部

Claims (9)

  1. 鉄鋼プロセスにおける工程間の置場として鋼材を配置するヤードに搬入される複数の鋼材を、所定の山積み制約を満たすように山積みして、次工程に払い出す最終的な山姿となった複数の払出山に山分けするための山分け計画を作成する問題を集合分割問題とし、当該集合分割問題を、列生成法を用いて解くことにより山分け計画を作成する鋼材の山分け計画作成装置であって、
    前記鋼材を、前記山積み制約を満たす様に積んだ山である複数の実現可能山のそれぞれについて、当該実現可能山を解として採用する場合に「1」となり、当該実現可能山を解として採用しない場合に「0」となる0−1変数を決定変数として、当該実現可能山に対する前記鋼材の山立てについての評価値である列コストと、初期解として与えられた実現可能山の集合とを用いて、前記決定変数および前記列コストを含む目的関数の値が最小または最大になる前記決定変数を求めることにより、前記複数の鋼材を重複することなく且つ漏れなく含む前記実現可能山の最適な組み合わせを求める問題を原問題とし、
    前記原問題の線形緩和問題を主問題とした場合の双対問題の最適解である双対解を導出する双対解導出手段と、
    前記原問題の最適解を構成する実現可能山の候補である候補山を生成する列生成子問題の最適解を導出する列生成手段と、
    前記列生成手段により導出された前記候補山が、収束要件を満足するか否かの判定である列判定を行う列判定手段と、
    前記列判定手段により、前記列生成手段により導出された前記候補山が、前記収束要件を満足しないと判定されると、前記列生成手段により生成された前記候補山を前記実現可能山の集合に追加する列追加手段と、
    前記列判定手段により、前記列生成手段により導出された前記候補山が、前記収束要件を満足すると判定されると、その時点で前記双対解導出手段により導出されている前記双対解である双対最適解と、当該双対最適解が得られたときの当該双対問題の目的関数の値である双対最適値とを取得する双対最適解・最適値取得手段と、
    前記実現可能山を新たに抽出するための条件である閾値および仮想最適値であって、前記実現可能山ごとの評価値に対して設定される閾値の初期値と、抽出された当該実現可能山の前記原問題の最適解としての適否を判定する指標となる値である仮想最適値の初期値とを、前記双対最適値に基づいて設定する閾値・仮想最適値設定手段と、
    前記閾値と前記実現可能山ごとの評価値とを用いて表現される列列挙条件を満たす前記実現可能山を抽出する最適列抽出手段と、
    前記最適列抽出手段により抽出された前記実現可能山の集合に対する前記原問題の部分問題を解くことにより、前記複数の鋼材を重複することなく且つ漏れなく含む前記実現可能山の最適な組み合わせと、そのときの当該部分問題の目的関数の値である部分問題の最適値とを導出する部分問題最適値導出手段と、
    前記部分問題最適値導出手段により前記部分問題の実行可能な解が導出されたか否かを判定する実行可能解有無判定手段と、
    前記実行可能解有無判定手段により、前記部分問題の実行可能な解が導出されたと判定されると、前記部分問題最適値導出手段により導出された前記部分問題の最適値と、前記仮想最適値の現在値とに基づいて、前記部分問題の最適値が前記原問題の最適値となるか否かの判定である最適値判定を行う最適値判定手段と、
    前記実行可能解有無判定手段により、前記部分問題の実行可能な解が導出されなかったと判定された場合と、前記最適値判定手段により、前記部分問題の最適値が前記原問題の最適値にならないと判定された場合に、前記閾値の現在値と前記仮想最適値の現在値とを更新する閾値・仮想最適値更新手段と、
    前記最適値判定手段により、前記部分問題の最適値が前記原問題の最適値になると判定されると、当該部分問題の最適値に対応する前記実現可能山の組み合わせを示す情報を、前記原問題の最適解を示す情報として出力する出力手段と、を有し、
    前記列判定手段は、前記双対解導出手段による前記双対解の導出と、前記列生成手段による前記列生成子問題の最適解の導出と、前記列判定と、前記列追加手段による前記候補山の追加と、を繰り返す収束計算を、前記収束要件を満足すると判定するまで実行し、
    前記列生成子問題は、前記双対解と、前記山積み制約とを用いて、前記実現可能山の集合に追加する前記候補山を求める問題であり、
    前記実現可能山ごとの評価値は、前記原問題の最適解と前記双対最適解との差を前記実現可能山ごとに評価した値であり、
    前記最適列抽出手段による前記実現可能山の抽出と、前記部分問題最適値導出手段による前記部分問題の最適値の導出と、前記実行可能解有無判定手段による前記判定と、前記最適値判定とを繰り返す計算は、前記最適値判定手段により、前記部分問題の最適値が前記原問題の最適値となると判定されるまで実行され、
    前記部分問題は、前記列コストと、前記最適列抽出手段により抽出された前記実現可能山の集合とを用いて、前記決定変数および前記列コストを含む前記目的関数の値が最小または最大になるときの前記決定変数を求める問題であることを特徴とする鋼材の山分け計画作成装置。
  2. 前記原問題は、前記複数の鋼材のそれぞれについて、前記実現可能山の集合の中から、当該鋼材を含む前記実現可能山が必ず1つ選択されるという制約を表す制約式であって、前記決定変数を用いて表される制約式と、当該原問題の前記目的関数と、を用いて、当該制約式を満足する範囲で当該目的関数の値が最小になる前記決定変数を決定する0−1整数計画問題であり、
    前記原問題の前記目的関数は、前記実現可能山の集合に含まれる前記実現可能山の前記列コストの総和を求める目的関数であって、前記決定変数および前記実現可能山の列コストを用いて表される目的関数であり、
    前記実現可能山の列コストは、当該実現可能山の数および逆転対の数を含み、
    前記逆転対は、同一の前記実現可能山において前記ヤードへの到着順が早い方の前記鋼材が遅い方の前記鋼材よりも上に積まれる逆転の関係にある前記鋼材の対であることを特徴とする請求項1に記載の鋼材の山分け計画作成装置。
  3. 前記双対問題は、前記実現可能山の集合に含まれる前記実現可能山のそれぞれのコストが、当該実現可能山に対する双対コスト以上であるという制約を表す制約式であって、当該実現可能山の列コスト、当該実現可能山に対応する山構成鋼材有無変数、および双対変数を用いて表される制約式と、当該双対問題の前記目的関数と、を用いて、当該制約式を満足する範囲で当該目的関数の値が最大になる当該双対変数の値を前記双対解として決定する線形計画問題であり、
    前記双対問題の目的関数は、前記複数の鋼材についての当該双対変数の総和を求める目的関数であって、当該双対変数を用いて表される目的関数であり、
    前記双対変数は、前記鋼材毎に定められる変数であり、
    前記実現可能山に対する双対コストは、前記鋼材に対する前記双対変数の値と、当該鋼材と当該実現可能山に対応する山構成鋼材有無変数との積の、前記複数の鋼材についての総和で表され、
    前記山構成鋼材有無変数は、前記鋼材毎に定められる0−1変数であって、前記実現可能山に前記鋼材が含まれる場合に「1」となり、そうでない場合に「0」となる0−1変数であることを特徴とする請求項2に記載の鋼材の山分け計画作成装置。
  4. 前記列生成子問題は、前記山積み制約を表す制約式であって、前記山構成鋼材有無変数および鋼材上下関係変数を用いて表される制約式と、前記候補山となる前記実現可能山の列コストから、当該実現可能山に対する前記双対コストを減算した値を求める目的関数であって、前記双対変数、当該山構成鋼材有無変数、および当該鋼材上下関係変数を用いて表される目的関数と、を用いて、当該制約式を満足する範囲で当該目的関数の値が最小になる当該山構成鋼材有無変数および当該鋼材上下関係変数を決定する0−1整数計画問題であり、
    前記鋼材上下関係変数は、2つの前記鋼材の組み合わせにより定まる0−1変数であって、同一の前記払出山における2つの前記鋼材の上下関係を表す0−1変数であることを特徴とする請求項3に記載の鋼材の山分け計画作成装置。
  5. 前記実現可能山ごとの評価値は、当該実現可能山の列コストと、当該実現可能山に対する前記双対コストであって、前記鋼材に対する前記双対変数の値が前記双対最適解であるときの前記双対コストとの差分であり、
    前記列列挙条件は、前記実現可能山ごとの評価値が、前記閾値以下であるという条件であり、
    前記最適値判定手段は、前記部分問題最適値導出手段により導出された前記部分問題の最適値が、前記仮想最適値の現在値以下であるか否かを判定することを特徴とする請求項3または4に記載の鋼材の山分け計画作成装置。
  6. 前記閾値・仮想最適値更新手段は、前記実行可能解有無判定手段により、前記部分問題の実行可能な解が導出されなかったと判定された場合と、前記最適値判定手段により、前記部分問題の最適値が前記原問題の最適値にならないと判定された場合に、前記閾値の現在値と前記仮想最適値の現在値とを、前記原問題の目的関数の値の最小変動量だけ増加させることを特徴とする請求項2〜5の何れか1項に記載の鋼材の山分け計画作成装置。
  7. 前記閾値・仮想最適値設定手段は、前記双対最適値以上の最小の整数値から前記双対最適値を減算した値を、前記閾値の初期値として設定すると共に、前記双対最適値以上の最小の整数値に1を加算した値を前記仮想最適値の初期値として設定することを特徴とする請求項2〜6の何れか1項に記載の鋼材の山分け計画作成装置。
  8. 鉄鋼プロセスにおける工程間の置場として鋼材を配置するヤードに搬入される複数の鋼材を、所定の山積み制約を満たすように山積みして、次工程に払い出す最終的な山姿となった複数の払出山に山分けするための山分け計画を作成する問題を集合分割問題とし、当該集合分割問題を、列生成法を用いて解くことにより山分け計画を作成する鋼材の山分け計画作成方法であって、
    前記鋼材を、前記山積み制約を満たす様に積んだ山である複数の実現可能山のそれぞれについて、当該実現可能山を解として採用する場合に「1」となり、当該実現可能山を解として採用しない場合に「0」となる0−1変数を決定変数として、当該実現可能山に対する前記鋼材の山立てについての評価値である列コストと、初期解として与えられた実現可能山の集合とを用いて、前記決定変数および前記列コストを含む目的関数の値が最小または最大になる前記決定変数を求めることにより、前記複数の鋼材を重複することなく且つ漏れなく含む前記実現可能山の最適な組み合わせを求める問題を原問題とし、
    前記原問題の線形緩和問題を主問題とした場合の双対問題の最適解である双対解を導出する双対解導出工程と、
    前記原問題の最適解を構成する実現可能山の候補である候補山を生成する列生成子問題の最適解を導出する列生成工程と、
    前記列生成工程により導出された前記候補山が、収束要件を満足するか否かの判定である列判定を行う列判定工程と、
    前記列判定工程により、前記列生成工程により導出された前記候補山が、前記収束要件を満足しないと判定されると、前記列生成工程により生成された前記候補山を前記実現可能山の集合に追加する列追加工程と、
    前記列判定工程により、前記列生成工程により導出された前記候補山が、前記収束要件を満足すると判定されると、その時点で前記双対解導出工程により導出されている前記双対解である双対最適解と、当該双対最適解が得られたときの当該双対問題の目的関数の値である双対最適値とを取得する双対最適解・最適値取得工程と、
    前記実現可能山を新たに抽出するための条件である閾値および仮想最適値であって、前記実現可能山ごとの評価値に対して設定される閾値の初期値と、抽出された当該実現可能山の前記原問題の最適解としての適否を判定する指標となる値である仮想最適値の初期値とを、前記双対最適値に基づいて設定する閾値・仮想最適値設定工程と、
    前記閾値と前記実現可能山ごとの評価値とを用いて表現される列列挙条件を満たす前記実現可能山を抽出する最適列抽出工程と、
    前記最適列抽出工程により抽出された前記実現可能山の集合に対する前記原問題の部分問題を解くことにより、前記複数の鋼材を重複することなく且つ漏れなく含む前記実現可能山の最適な組み合わせと、そのときの当該部分問題の目的関数の値である部分問題の最適値とを導出する部分問題最適値導出工程と、
    前記部分問題最適値導出工程により前記部分問題の実行可能な解が導出されたか否かを判定する実行可能解有無判定工程と、
    前記実行可能解有無判定工程により、前記部分問題の実行可能な解が導出されたと判定されると、前記部分問題最適値導出工程により導出された前記部分問題の最適値と、前記仮想最適値の現在値とに基づいて、前記部分問題の最適値が前記原問題の最適値となるか否かの判定である最適値判定を行う最適値判定工程と、
    前記実行可能解有無判定工程により、前記部分問題の実行可能な解が導出されなかったと判定された場合と、前記最適値判定工程により、前記部分問題の最適値が前記原問題の最適値にならないと判定された場合に、前記閾値の現在値と前記仮想最適値の現在値とを更新する閾値・仮想最適値更新工程と、
    前記最適値判定工程により、前記部分問題の最適値が前記原問題の最適値になると判定されると、当該部分問題の最適値に対応する前記実現可能山の組み合わせを示す情報を、前記原問題の最適解を示す情報として出力する出力工程と、を有し、
    前記列判定工程は、前記双対解導出工程による前記双対解の導出と、前記列生成工程による前記列生成子問題の最適解の導出と、前記列判定と、前記列追加工程による前記候補山の追加と、を繰り返す収束計算を、前記収束要件を満足すると判定するまで実行し、
    前記列生成子問題は、前記双対解と、前記山積み制約とを用いて、前記実現可能山の集合に追加する前記候補山を求める問題であり、
    前記実現可能山ごとの評価値は、前記原問題の最適解と前記双対最適解との差を前記実現可能山ごとに評価した値であり、
    前記最適列抽出工程による前記実現可能山の抽出と、前記部分問題最適値導出工程による前記部分問題の最適値の導出と、前記実行可能解有無判定工程による前記判定と、前記最適値判定とを繰り返す計算は、前記最適値判定工程により、前記部分問題の最適値が前記原問題の最適値となると判定されるまで実行され、
    前記部分問題は、前記列コストと、前記最適列抽出工程により抽出された前記実現可能山の集合とを用いて、前記決定変数および前記列コストを含む前記目的関数の値が最小または最大になるときの前記決定変数を求める問題であることを特徴とする鋼材の山分け計画作成方法。
  9. 請求項1〜7の何れか1項に記載の鋼材の山分け計画作成装置の各手段としてコンピュータを機能させることを特徴とするプログラム。
JP2018073916A 2018-04-06 2018-04-06 鋼材の山分け計画作成装置、鋼材の山分け計画作成方法、およびプログラム Active JP6954218B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018073916A JP6954218B2 (ja) 2018-04-06 2018-04-06 鋼材の山分け計画作成装置、鋼材の山分け計画作成方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018073916A JP6954218B2 (ja) 2018-04-06 2018-04-06 鋼材の山分け計画作成装置、鋼材の山分け計画作成方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2019185303A JP2019185303A (ja) 2019-10-24
JP6954218B2 true JP6954218B2 (ja) 2021-10-27

Family

ID=68341272

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018073916A Active JP6954218B2 (ja) 2018-04-06 2018-04-06 鋼材の山分け計画作成装置、鋼材の山分け計画作成方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP6954218B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6540360B2 (ja) * 2015-08-17 2019-07-10 日本製鉄株式会社 鋼材の山分け計画立案装置、鋼材の山分け計画立案方法、およびプログラム
JP6515339B2 (ja) * 2015-08-17 2019-05-22 日本製鉄株式会社 鋼材の山分け計画立案装置およびプログラム
JP6838353B2 (ja) * 2016-10-31 2021-03-03 日本製鉄株式会社 鋼材の山分け計画作成装置、鋼材の山分け計画作成方法、およびプログラム

Also Published As

Publication number Publication date
JP2019185303A (ja) 2019-10-24

Similar Documents

Publication Publication Date Title
JP6838353B2 (ja) 鋼材の山分け計画作成装置、鋼材の山分け計画作成方法、およびプログラム
Li et al. Hybrid artificial bee colony algorithm with a rescheduling strategy for solving flexible job shop scheduling problems
Pothiya et al. Application of multiple tabu search algorithm to solve dynamic economic dispatch considering generator constraints
Azad et al. Guided stochastic search technique for discrete sizing optimization of steel trusses: A design-driven heuristic approach
US8887165B2 (en) Real time system task configuration optimization system for multi-core processors, and method and program
Aqil et al. Two efficient nature inspired meta-heuristics solving blocking hybrid flow shop manufacturing problem
JP6390331B2 (ja) 鋼材の山分け計画方法、装置及びプログラム
Zhang et al. Tree search procedures for the blocks relocation problem with batch moves
CN115437795A (zh) 一种异构gpu集群负载感知的显存重计算优化方法及系统
JP6954218B2 (ja) 鋼材の山分け計画作成装置、鋼材の山分け計画作成方法、およびプログラム
Priakhina et al. Data center simulation for the BM@ N experiment of the NICA project
US11409836B2 (en) Optimization problem arithmetic method and optimization problem arithmetic apparatus
Gholizadeh et al. Shape optimization of structures by modified harmony search
CN107038244A (zh) 一种数据挖掘方法和装置、一种可读介质和存储控制器
Grzybowska et al. Application of Machine Learning Method under IFRS 9 Approach to LGD Modeling.
ElWakil et al. On the integration of the parallel stack loading problem with the block relocation problem
JP7024580B2 (ja) 山分け計画作成装置、山分け計画作成方法、およびプログラム
AU2020462915B2 (en) Information processing system for assisting in solving allocation problems, and method
Chanduka et al. A single program multiple data algorithm for feature selection
JP6540360B2 (ja) 鋼材の山分け計画立案装置、鋼材の山分け計画立案方法、およびプログラム
JP7099315B2 (ja) 山分け計画作成装置、山分け計画作成方法、およびプログラム
Serpik Parametric optimization of steel frames using the job search inspired strategy
JP2023057945A (ja) 最適化問題求解装置及び最適化問題求解方法
Kucharska et al. Almm-based methods for optimization makespan flow-shop problem with defects
Blachowski et al. A hybrid continuous-discrete approach to large discrete structural optimization problems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210825

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210831

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210913

R151 Written notification of patent or utility model registration

Ref document number: 6954218

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151