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

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

Info

Publication number
JP2019192018A
JP2019192018A JP2018085472A JP2018085472A JP2019192018A JP 2019192018 A JP2019192018 A JP 2019192018A JP 2018085472 A JP2018085472 A JP 2018085472A JP 2018085472 A JP2018085472 A JP 2018085472A JP 2019192018 A JP2019192018 A JP 2019192018A
Authority
JP
Japan
Prior art keywords
mountain
feasible
column
variable
candidate
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.)
Granted
Application number
JP2018085472A
Other languages
English (en)
Other versions
JP7024580B2 (ja
Inventor
哲明 黒川
Tetsuaki Kurokawa
哲明 黒川
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 JP2018085472A priority Critical patent/JP7024580B2/ja
Publication of JP2019192018A publication Critical patent/JP2019192018A/ja
Application granted granted Critical
Publication of JP7024580B2 publication Critical patent/JP7024580B2/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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】 山分けの対象が多い場合であっても、山分け計画を2値制約(0−1制約)に伴う誤差(双対ギャップ)を解消した最適解に基づき確実に作成することができるようにする。【解決手段】 本処理部130は、前処理部120で得られた実現可能山mjの集合Ccgに基づいて、前処理部120で得られた実現可能山mjの集合Ccgに含まれていない列(実現可能山mj)を探索して、前処理部120で得られた実現可能山mjの集合Ccgに追加する。本処理部130は、このようにして実現可能山mjの集合CLS1に対する原問題P(CLS1)を解くことにより、原問題最適値VP(CLS1)と原問題最適解x[j]を導出する。【選択図】 図1

Description

本発明は、山分け計画作成装置、山分け計画作成方法、およびプログラムに関し、特に、山分け計画を作成するために用いて好適なものである。
鉄鋼プロセスにおいて、例えば製鋼工程から次工程の圧延工程へスラブ等の鋼材を搬送する際、鋼材は、一旦ヤードと呼ばれる一時保管場所に搬入されて置かれた後、次工程である圧延工程(加熱炉)の処理時刻に合わせてヤードから搬出される。そのヤードのレイアウトの一例を図11に示す。ヤードは、図11に示すように、上流工程より払い出された鋼材などを下流工程に供給するためのバッファーエリアとして、縦横に区画された置場1101〜1104から構成される。縦方向の分割区分を"棟"、横方向の分割区分を"列"と称することが多い。クレーン(1A、1B、2A、2B)は棟内を移動可能であり、同一棟内での異なる列の間で鋼材の移送を行う。また搬送テーブルにより棟間の鋼材の移送を行う。搬送指令を作成する際は"棟"及び"列"を指定することにより、どこへ鋼材を搬送するか指令できる。
図11を例にヤードでの基本的な作業の流れを示す。まず、前工程である製鋼工程の連鋳機1110から搬出された鋼材は、パイラー1111を経由して受入テーブルXでヤードまで搬入され、クレーン1A、1B、2A、2Bにより、区画された置場1101〜1104の何れかに搬送され、山積みして置かれる。そして、次工程である圧延工程の製造スケジュールに合わせ、再びクレーン1A、1B、2A、2Bにより払出テーブルZに載せられ、圧延工程へと搬送される。一般に、ヤードにおいて鋼材は、前記の様に山積みされた状態で置かれる。これは、限られたヤード面積を有効に活用するためである。一方、鋼材を積み上げる際、次工程へ供給し易いよう、次工程の処理順番に鋼材が上から積まれている必要がある。さらに、積み姿が不安定な逆ピラミッド状に鋼材を積まないようにする必要がある。このように、鋼材を複数の最適山(=払出山:次工程へ払い出す最終的な山姿となった山)に分けることを山分けと呼ぶ。
ここで、次工程である圧延工程の加熱炉の燃料原単位を削減するため、可及的に高い温度の鋼材を加熱炉に払い出す(装入する)ことが求められる。このため、昨今、ヤード内に保温設備を設置し、保温設備の中に前述したようにして鋼材を山積みした状態で保管することが行われている。このように保温設備を用いる場合でも、置場1101〜1104に直接鋼材を山積みする場合と同様に、保温設備を有効に活用するため、保温設備の中において、可及的に高さの高い払出山を作成することが必要である。
一方、鋼材を積み上げる際には、次工程へ供給しやすいよう、次工程の処理順番に鋼材が上から積まれていること、および積み形状が不安定な逆ピラミッド状に鋼材を積めないことなどの制約(これを「積姿制約」と称する)がある。更に、山立てを行う際の作業負荷(この作業負荷を山繰り負荷(上から払出順の鋼材を積み替えるための負荷)という)も見逃せない要素である。すなわち、山分けを行う上で、作業スペースの問題や作業を行うクレーン等の搬送機器の能力の兼ね合いから、山積みを行うための搬送作業数ができるだけ少ないことが求められる。山分けの場合には、ヤードに到着する順に鋼材を積んでいくことが出来れば理想的である。一方で、圧延工程への払出時の仮置き(山繰り)を無くし、払出作業を迅速に行うために、払出山においては、圧延工程の加熱炉への払出が早いものを上に積むのが基本である。従って、現実的には、ヤードへの到着順と払出山における積順とが食い違う場合がある。すなわち、ヤードへの到着順が早い方の鋼材を遅い方の鋼材よりも同一の払出山の上の段に積まなければならない場合がある。その場合には、相対的に下段に積まれる鋼材がヤードに到着するまで、先にヤードに到着した鋼材を一旦仮置き場に仮置きし、相対的に下段に積まれる鋼材がヤードに到着し山積みされてから、その鋼材の上に、仮置き場の鋼材を積む作業が必要となる。したがって、この様な作業ができるだけ少なくなるような山立てをすることが望まれる。
以上のように、ヤード管制では、前記制約の下で可及的に少ない作業負荷で、可及的に高い山立てを行う作業計画を策定することが望まれる。
鋼材置き場でサイズや次工程(圧延工程の加熱炉)での処理順序が異なる複数枚の鋼材を複数の山に分けて山積みする山分け問題を解決するには、対象鋼材により生成可能な全ての山分け候補の中から、ヤードへの受入時の山分け負荷や圧延工程の加熱炉への払出時の作業負荷などの評価関数を最適化する山分けの組み合わせを求めることが不可欠である。
このような大規模問題への対処方法として、特許文献1には、何れの対象鋼材も複数の山に重複使用されてはならず、且つ、何れかの山にて使用されねばならないという制約と、山の総数および山繰り負荷を最小化する目的関数との下で、集合分割問題として最適な実現可能山の組み合わせを求めることにより山分け計画を作成する手法が開示されている。ここで、実現可能山とは、対象鋼材を要素とする全体集合に対する部分集合であって、山積み制約を満たす部分集合である。山積み制約は、鋼材を山積みする際に課せられる制約である。払出順が早い鋼材の方が山の上側に配置されなければならないという制約等が山積み制約に含まれる。
特許文献1に記載の方法は厳密解法であることから、目的関数として設定した山の総数および山繰り負荷に対する最適な山分け計画を作成することが期待できる。また、特許文献1では、実現可能の見込みのない部分集合のチェックを効率的に省略できるよう、最下段から順次上段に向かって実現可能な鋼材のみを積み上げる(分岐する)方式により実現可能山のみを生成する。
しかしながら、特許文献1に記載の技術を、山分け計画の作成対象となる鋼材要素数が50〜80程度となる大規模問題に適用すると、実現可能山の数が1億個を超えることも頻繁に起こり、その場合には、計算機資源(主に主メモリ)の容量制限に掛かり、実現可能山を列挙できない事態が起こる。また、そこまでの規模にはならず、かろうじて実現可能山の列挙まではできた場合でも、その後の集合分割問題を最適計算する際、決定変数の数が実現可能山の数となるため、計算途中でメモリ容量を超えるか実用時間内では求解できない状況となる。
この様な実行可能解が列挙不能となるような大規模な問題に対し、集合分割問題を適用し最適解を得る方法として特許文献2には、自然言語処理におけるアライメント問題(二つの系列が与えられたときに片方の系列のどの要素がもう片方の系列のどの要素に対応するかを求める問題)に列生成法を用いる手法が開示されている。列生成法は大規模な線形計画問題を一括で解く代わりに、逐次的に変数を追加しながら元の問題の部分問題を解くことで元の問題の最適解を求める手法である。従って、ヤードにおける山分け問題に対してもこの手法を適用することが考えられる。
特開2016−81186号公報 特開2015−170131号公報 特開2011−105483号公報
久保幹雄、田村明久、松井知己編、「応用数理計画ハンドブック」、株式会社朝倉書店、2002年5月、p.133、337、621、634
しかしながら、特許文献2に記載の技術では、あくまでも解法の枠組みを提供しているのみで解法そのものを提供していない。従って、適用対象に応じて、適用方法を考案する必要がある。また、特許文献2に記載の技術では、アライメント問題を前提としているため、特許文献2に記載の技術を山分け問題に適用することは容易ではない。
また、列生成法は、これを用いることで線形計画問題の最適解を得られることは保証されているが、本発明で適用しようとする集合分割問題の様な0−1計画問題に対しては、実行可能解は得られる(最小化問題の場合は解の上限が求まる)が、最適解を得られることは必ずしも保証されていない。事実先の特許文献2でもこの点は課題として残されたままである。
本発明は、以上の問題点に鑑みてなされたものであり、山分けの対象材が多い場合であっても、山分け計画を2値制約(0−1制約)に伴う誤差(双対ギャップ)を解消した最適解に基づき確実に作成することができるようにすることを目的とする。
本発明の山分け計画作成装置は、複数の対象材に対して山分け計画を作成する問題を集合分割問題とし、当該集合分割問題を、列生成法を用いて解くことにより山分け計画を作成する山分け計画作成装置であって、所定の制約を満たす様に積まれた実現可能山を解として採用するか否か決定する2値変数を決定変数として、当該実現可能山に対する前記対象材の山立てについての評価値である列コストを含む目的関数の値が最小または最大になる前記決定変数を求めることにより、前記複数の対象材を重複することなく且つ漏れなく含む前記実現可能山の最適な組み合わせを求める問題を原問題とし、前記原問題の最適解を構成する実現可能山の候補である候補山を生成する列生成子問題の最適解を導出する列生成手段と、前記列生成手段により導出された前記候補山の集合が、所定の収束要件を満足しない場合には、当該集合に含まれる各候補山について、対象材の一部が異なる構成からなる近傍の前記実現可能山を探索し、当該探索した近傍の実現可能山を、前記候補山として追加する探索手段と、前記列生成手段により導出された候補山と、前記探索手段により追加された候補山とを含む前記実現可能山の集合に基づいて前記原問題を解くことにより、当該原問題の最適値を導出する第1の原問題導出手段と、前記第1の原問題導出手段により導出された前記原問題の最適値に対応する前記実現可能山の組み合わせを示す情報を、前記原問題の最適解を示す情報として出力する出力手段と、を有することを特徴とする。
本発明の山分け計画作成方法は、複数の対象材に対して山分け計画を作成する問題を集合分割問題とし、当該集合分割問題を、列生成法を用いて解くことにより山分け計画を作成する山分け計画作成方法であって、所定の制約を満たす様に積まれた実現可能山を解として採用するか否か決定する2値変数を決定変数として、当該実現可能山に対する前記対象材の山立てについての評価値である列コストを含む目的関数の値が最小または最大になる前記決定変数を求めることにより、前記複数の対象材を重複することなく且つ漏れなく含む前記実現可能山の最適な組み合わせを求める問題を原問題とし、前記原問題の最適解を構成する実現可能山の候補である候補山を生成する列生成子問題の最適解を導出する列生成ステップと、前記列生成ステップにより導出された前記候補山の集合が、所定の収束要件を満足しない場合には、当該集合に含まれる各候補山について、対象材の一部が異なる構成からなる近傍の前記実現可能山を探索し、当該探索した近傍の実現可能山を、前記候補山として追加する探索ステップと、前記列生成ステップにより導出された候補山と、前記探索ステップにより追加された候補山とを含む前記実現可能山の集合に基づいて前記原問題を解くことにより、当該原問題の最適値を導出する第1の原問題導出ステップと、前記第1の原問題導出ステップにより導出された前記原問題の最適値に対応する前記実現可能山の組み合わせを示す情報を、前記原問題の最適解を示す情報として出力する出力ステップと、を有することを特徴とする。
本発明のプログラムは、前記山分け計画作成装置の各手段としてコンピュータを機能させることを特徴とする。
本発明によれば、山分けの対象材が多い場合であっても、山分け計画を2値制約(0−1制約)に伴う誤差(双対ギャップ)を解消した最適解に基づき確実に作成することができる。
鋼材の山分け計画作成装置の機能的な構成の一例を示す図である。 前処理部における処理を行った結果の一例を示す図である。 1増近傍山および1減近傍山の概念を説明する図である。 本処理部における処理を行った結果の一例を示す図である。 鋼材の山分け計画作成方法の一例を説明するフローチャートである。 図5−1に続くフローチャートである。 近傍探索処理(図5−2のステップS511)の詳細を説明するフローチャートである。 図6−1に続くフローチャートである。 本処理部が増加する様子の一例を概念的に示す図である。 本処理部において第2近傍列まで求める処理を行った結果の一例を示す図である。 山分け計画の作成結果の一例を示す図である。 本実施形態で説明した手法と、<変形例2>に記載の手法における計算時間の一例を示す図である。 ヤードのレイアウトの一例を示す図である。
以下、図面を参照しながら、本発明の一実施形態を説明する。
(原問題P(C))
まず、本実施形態で解くべき問題である原問題P(C)について説明する。本実施形態では、原問題P(C)を集合分割問題とする。集合分割問題は、全体集合Nの任意の部分集合Sjが、その列コストcjを持つという前提で、以下の(1)式に示すように、全体集合Nの要素iを、重複なく且つ漏れなく部分集合m1,m2,・・・,mkに分割する問題である。このとき、部分集合m1,m2,・・・,mkに対する列コストc1,c2,・・・,ckの総和が最小となるようにする。以下の(1)式は、全体集合Nの要素iを重複なく且つ漏れなく部分集合m1,m2,・・・,mkに分割することを表す。
Figure 2019192018
要素の数が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(C)の決定変数x[j]は、実現可能山mjを採用する場合に「1」、そうでない場合に「0(ゼロ)」となる0−1変数である。
<制約式>
原問題P(C)の制約式は、鋼材i∈Nのそれぞれについて、当該鋼材iを含む集合族(部分集合mjの集合)Mj(i)⊆Cの中から、一つの部分集合mjだけが選択されなければならないことを表す制約式であり、以下の(2)式で表される。
尚、鋼材iは、1つの鋼材であっても、1つの搬送機器(クレーン1A、1B、2A、2B)で搬送することができる鋼材の纏まり(搬送ロット)であってもよい。搬送ロットを決定する方法は、例えば、特許文献3に記載されているので、ここでは、その詳細な説明を省略する。
Figure 2019192018
ここで、行列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 2019192018
<目的関数>
原問題P(C)の目的関数は、列コストcjの総和が最小になるように実現可能山mjを選択することを目的とする関数であり、以下の(3)式で表される。
Figure 2019192018
列コストcjは、実現可能山mjを原問題P(C)の最適解として選択するか否かを判断するための評価値であり、実現可能山mjに対する鋼材iの山立てを評価する1つまたは複数の評価指標に基づいて定められる。(3)式をベクトル表記すると、以下の(3−1)式のようになる。
Figure 2019192018
本実施形態では、実現可能山(払出山)の山数c1jと、仮置き数c2jに対しそれぞれ重み係数k1、k2を掛けたものが列コストcjとなる(仮置き数の詳細については後述する)。そうすると、原問題Pの目的関数は、以下の(4)式で表される。尚、実現可能山mj(mj∈C)の列コストcjと、山数c1jおよび仮置き数c2jとの関係は、以下の(4−1)式のようになる。
Figure 2019192018
ここで、「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(C)の目的関数を表す場合を例に挙げる。
ここで、仮置き数について説明する。背景技術の欄で説明したように、払出山において相対的に下段に積まれる鋼材がヤードに到着するまで、先にヤードに到着した鋼材を一旦仮置き場に仮置きし、相対的に下段に積まれる鋼材がヤードに到着し山積みされてから、その鋼材の上に、仮置き場の鋼材を積む作業ができるだけ少なくなるように山立てをすることが望まれる。このような仮置き鋼材の発生数だけ搬送数が増えるので、仮置き数の削減が、直接搬送数の削減に反映される。仮置き数を計数するため、任意の鋼材の対(i1,i2)⊆N2について、同一の払出山に積むことは可能で、同一の払出山に積む際には、到着順と積み順とを入れ替える必要のある鋼材対を逆転対とし、この集合R(逆転対集合)を、以下の(4−2)式のように定義する。ここで、(i1,i2)は、鋼材i1が鋼材i2より先入り先出し鋼材(先にヤードに到着し先に次工程に払い出される鋼材)であることを意味する。
Figure 2019192018
このように逆転対とは、同一の払出山においてヤードへの到着順が早い方の鋼材i1が遅い方の鋼材i2よりも上に積まれる逆転の関係にある鋼材対をいい、その数を逆転対数と定義する。逆転対が1つあると、この例では、到着順が早い方の鋼材i1が前述した仮置きが必要な鋼材となる。仮置きを行うために1回の山繰りが発生するので、逆転対数は、仮置きの数の目安となる。尚、逆転対集合Rを抽出するには、任意の鋼材iのヤードへの到着順と、払出山での積み順(即ち、払出順)とを判定するための情報が必要となる。仮置き数は、実現可能山mjに含まれる鋼材対(i1,i2)の内、(i1,i2)∈Rに対し、同じ鋼材を二重に計数しないよう考慮して鋼材i1を計数したものとなる。例えば、実現可能山mjに含まれる鋼材対の内、Rの要素となる組が、(i1,i2),(i1,i4),(i3,i4),(i3,i5),(i2,i5)である場合、逆転対数は5であるが、仮置きとなる鋼材は、逆転対の内、鋼材i1、i3、i2の3となる。この際、この実現可能山mjに対するc2jは、仮置き数3が使わるのが一般的だが、逆転対数5を使う場合もある(後述する変形例3も参照)。本実施形態では、c2jは、仮置き数を用いる。
以上のように本実施形態では、(2)式の制約式を満足する範囲で(4)式の目的関数Jの値を最小にする決定変数x[j]を求める問題を原問題P(C)とする。特許文献1に記載の技術では、山分け計画の対象となる鋼材iの全体集合Nから、全ての実現可能山mjを生成し、これらを実現可能山mjの集合Cとして、原問題P(C)を解く。これに対し、本実施形態では、後述するように列生成法を用いて、山分け計画の対象となる鋼材iの全体集合Nから、必要な分だけ実現可能山mjを生成し、これらを実現可能山mjの集合Cとして、原問題P(C)を解く。従って、本実施形態では、(通常は)実現可能山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(C))の線形緩和問題を主問題とした場合の双対問題D(C)を、列生成法を用いて解く。そこで、まず、列生成法の概要を説明する。
<<双対問題の最適解の導出>>
列生成法では、原問題P(C)(集合分割問題)の最適解の候補となる実現可能山mjの集合Cの初期値に基づいて、当該原問題P(C)の線形緩和問題を主問題とした場合の双対問題D(C)の最適解を導出する(以下の説明では、この双対問題D(C)の最適解を必要に応じて双対解と称する)。
<<列生成子問題の最適解の導出>>
そして、当該双対解を使って列生成子問題Sの最適解を導出して、原問題P(C)の最適解の候補となる実現可能山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を重複なく且つ漏れなく含み、更に、後述する上載せ禁止制約((17)式を参照)および山高さ制約((18)式を参照)を満足するように、実現可能山mjの集合Cの初期値を設定する。その一例として、本実施形態では、初期列集合設定部121は、以下の(5)式のように、それぞれの実現可能山mjが、相互に異なる任意の1つの鋼材iのみを要素として持つように、実現可能山mjの集合Cの初期値を設定する。
Figure 2019192018
例えば、ユーザは、鋼材の山分け計画作成装置100のユーザインターフェースを操作することにより、実現可能山mjの集合Cの初期値の情報を入力し、初期列集合設定部121が、鋼材の山分け計画作成装置100内の記憶媒体に当該情報を記憶することにより、実現可能山mjの集合Cの初期値を設定することができる。ただし、必ずしもこのようにする必要はなく、例えば、初期列集合設定部121は、予め定められたロジックにより、実現可能山mjの集合Cの初期値を導出してもよい。初期列集合設定部121は、例えば、CPU、ROM、RAM、およびユーザインターフェースを用いることにより実現される。
<双対解導出部122>
双対解導出部122は、前述した原問題P(C)(集合分割問題)の線形緩和問題を主問題とした場合の双対問題D(C)の最適解である双対解を導出する。原問題P(C)自体は0−1整数計画問題であるが、双対問題D(C)は線形緩和問題(線形計画問題)になる。0−1整数計画問題である原問題P(C)の線形緩和問題を主問題とした場合の双対問題D(C)は、主問題と双対問題との関係から、以下のように定式化できる。
原問題P(C)は最小化問題なので、(3−1)式に示す目的関数Jの最適な下限値を求める問題を考察することにより双対問題Dが得られる。そこで、以下の(6)式を満足する変数pTを考える(pTはベクトルである)。
Figure 2019192018
(6)式の両辺にx(≧0)を右から掛けると、以下の(7)式が成り立つ((3−1)式に示したようにxはベクトルである)。
Figure 2019192018
つまり(7)式の左辺(=pTAx)が原問題P(C)の目的関数Jの下限となる。原問題P(C)の目的関数Jのより良い下限値を与えるには、(6)式(=pTA≦c)の条件下で、(7)式の左辺(=pTAx)を最大化する問題を考えればよい。ここで、原問題P(C)の制約式である(2−1)式より、以下の(8)式が成り立つ。
Figure 2019192018
従って、以下のようにして双対問題D(C)が定式化される。尚、集合分割問題の線形緩和問題を主問題とする双対問題自体は、非特許文献1に記載されているように公知の技術で実現できるので、ここでは、その詳細な説明を省略する。
[決定変数]
本実施形態では、双対変数p[i]を双対問題D(C)の決定変数とする。
双対変数p[i]は、鋼材i毎に定められる連続変数(−∞<p[i]<∞)である。双対変数p[i]の数は、n個(鋼材情報に含まれる鋼材iの数)である。
[制約式]
双対問題D(C)の制約式は、前述した(6)式で表される。ここで、行列Aは、双対解導出部122の計算の際に生成されている実現可能山mjの集合Cに対応する。双対解導出部122の最初の計算においては、行列Aは、初期列集合設定部121により設定された実現可能山mjの集合Cの初期値に対応する。
(6)式を要素毎に表記すると、双対問題D(C)の制約式は、以下の(9)式で表される。尚、(9)式の左辺(Σp[i]・mj[i](=Pj))は前述の「双対コスト」と同じものである。(9)式に示すように、双対コストPjは、鋼材iに対する双対変数p[i]の値と、行列Aの列jの値であって、該鋼材iに対応する行iにおける値(「0(ゼロ)」または「1」)との積の、鋼材情報に含まれる鋼材iについての総和で表される。
Figure 2019192018
(9)式において、mj[i]は、行列Aのj列そのものであり、j列に対応する実現可能山mjが鋼材iを含めば「1」、そうでなければ「0(ゼロ)」となる0−1変数である。従って、(9)式の制約式の数は、双対解導出部122の計算の際に生成されている実現可能山mj(列)の数(即ち、実現可能山mjの集合Cの要素数)となる。
[目的関数]
(6)式の条件下では、(7)式および(8)式より以下の(10)式が成り立つので、(8)式のΣp[i]は、cxの下限値となる((3−1)式に示したようにc、xはベクトルである)。できるだけ大きいΣp[i]を求めれば、原問題P(C)の目的関数Jのより良い下限値が得られることになる。従って、双対問題D(C)の目的関数Jは最大化問題となり、以下の(11)式のようになる。
Figure 2019192018
以上のように本実施形態では、(9)式の制約式を満足する範囲で(11)式の目的関数Jの値を最大にする双対変数p[i]を求める問題を双対問題D(C)とする。従って、双対解導出部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 2019192018
[決定変数]
本実施形態では、山構成鋼材有無変数mj[i]と鋼材上下関係変数y[i1][i2]と仮置き有無変数t[i]とを列生成子問題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変数である。
仮置き有無変数t[i]は、鋼材iを仮置きする場合に「1」となり、そうでない場合に「0(ゼロ)」となる0−1変数である。
[制約式]
本実施形態では、鋼材上下関係変数定義制約式、仮置き変数定義制約式、上載せ禁止制約式、および山高さ制約式を列生成子問題Sの制約式とする。
鋼材上下関係変数定義制約式は、鋼材上下関係変数y[i1][i2]を定義するための制約式であり、以下の(13)式〜(15)式で表される。
Figure 2019192018
仮置き変数定義制約式は、仮置き有無変数t[i]を、鋼材上下関係変数y[i1][i2]を用いて定義するための制約式であり、以下の(16)式で表される。
Figure 2019192018
ここで、Rは、(4−2)式で定義した逆転対集合である。前述したように鋼材上下関係変数y[i1][i2]は、同一の実現可能山mj(払出山)において、鋼材i1を相対的に上に配置し、鋼材i2を相対的に下に配置する場合に「1」となり、そうでない場合に「0(ゼロ)」となる0−1変数である。例えば、同一の山に鋼材iA、iB、iCが配置され、(iA,iB),(iA,iC)∈Rの場合、y[iA][iB]=1,y[iA][iC]=1となるので、(16)式より、t[iA]=1となる。
逆転対数は、仮置きの数の目安となるが、これらは厳密には対応しない。例えば、同一の山に配置される鋼材iA、iB、iCの払出順が「1」、「2」、「3」(iA→iB→iC)であり、ヤードへの到着順が「1」、「3」、「2」(iA→iC→iB)であるとする。この場合、逆転対は(iA,iB)、(iA,iC)の2つ(逆転対数は「2」)になる。一方、この場合には鋼材iAだけを仮置きすればよいので、仮置き数は「1」になる。このように、逆転対数が仮置き数を上回ることがあり、逆転対数では、仮置き数を厳密に評価することができない場合がある。そこで、本実施形態では、仮置き数を厳密に評価するために、仮置き有無変数t[i]を用いる。
上載せ禁止制約式は、山積み制約の一例であり、同一の実現可能山mj(払出山)において、鋼材iの上に配置することができない鋼材を規定する制約式である。同一の実現可能山mj(払出山)において鋼材iの上に配置することができない鋼材の集合をU(i)−とし、その要素をiUとすると、上載せ禁止制約式は、以下の(17)式で表される。尚、U(i)−は、(17)式において、U(i)の上に−を引いたもの(同一の実現可能山mj(払出山)において鋼材iの上に配置することができない鋼材の集合)である。以下の説明では、同一の実現可能山mj(払出山)において鋼材iの上に配置することができない鋼材の集合を必要に応じて上載せ禁止集合と称する。
Figure 2019192018
上載せ禁止集合U(i)−は、ヤード管理方法等に応じて定めることができるが、例えば、以下のようにして定めることができる。ヤードにおける山立てでは、鋼材iの次工程への払い出しをスムーズに行うために、同一の実現可能山mj(払出山)において払出順が早い鋼材iであるほど上に積まれる必要がある。また、実現可能山mj(払出山)の積姿を安定にするために、極端な逆ピラミッド形状になるように山積みすることを避ける必要がある。即ち、同一の実現可能山mj(払出山)において相対的に上に配置される鋼材iの幅・長さから、相対的に下に積まれる鋼材iの幅・長さを減算した値が、規定値よりも大きくならないようにする必要がある。これらの要件により、同一の実現可能山mj(払出山)において鋼材iの上に他の鋼材を配置することができるか否かが一意に定められる。列生成部123は、鋼材情報に含まれる鋼材のサイズおよび払出順に基づいて、鋼材情報に含まれるそれぞれの鋼材iについて、これらの要件を満たさない鋼材の集合を上載せ禁止集合U(i)−として導出する。
山高さ制約式は、山積み制約の一例であり、一つの実現可能山mj(払出山)の高さの最大値を規定する制約式であり、以下の(18)式で表される。
Figure 2019192018
(18)式において、nmb[i]は、鋼材iの数である。前述したように本実施形態では、鋼材iは、1つの鋼材であっても、1つの搬送機器(クレーン1A、1B、2A、2B)で搬送することができる鋼材の纏まり(複数の鋼材)であってもよい。1つの搬送機器(クレーン1A、1B、2A、2B)が2以上の鋼材を搬送することができず、鋼材iを1つ1つの鋼材に対応させる場合、(18)式においてnmb[i]は、「1」になる。また、山積上限数(一つの実現可能山mj(払出山)に積むことができる鋼材の上限数)をhmaxとする。ただし、山高さ制約式は、必ずしも(18)式のようにする必要はない。例えば、各鋼材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(C)の双対解は、双対問題D(C)の最適解となっていない。即ち、この場合には、実現可能山mjの集合C(行列A)に実現可能山mjが十分に追加されていないことになる。よって、実現可能山mjの列コストcjが、当該実現可能山mjに対する双対コストPj以下(cj≦Pj)になるときの実現可能山mj(山構成鋼材有無変数mj[i])は、原問題P(C)の最適解の候補となり、実現可能山mjの集合C(行列A)に追加される必要がある。
以上のことから本実施形態の列生成子問題Sでは、実現可能山mjの列コストcjが、当該実現可能山mjに対する双対コストPj以下(cj≦Pj)になる実現可能山mj(山構成鋼材有無変数mj[i])を求めることを主目的とする。そこで、本実施形態では、被約費用(=cj−Pj:実現可能山mjの列コストcjから、当該実現可能山mjに対する双対コストPjを減算した値)が最小となるときの実現可能山mj(山構成鋼材有無変数mj[i])を、原問題P(C)の最適解の候補として求める問題を、列生成子問題Sとする。被約費用(=cj−Pj)の最小値が「0(ゼロ)」以下(即ち、cj≦Pj)であるか否かを判定することにより、当該実現可能山mj(山構成鋼材有無変数mj[i])を、実現可能山mjの集合C(行列A)に追加すべきか否かを判定することができるからである。
列生成子問題Sの決定変数である山構成鋼材有無変数mj[i]により定まる実現可能山mjの列コストcjは、仮置き有無変数t[i]を用いると、(4−1)式より、以下の(19)式で表される。
Figure 2019192018
ここで、(19)式の右辺第2項は、実現可能山mjにおける仮置き数に対応する。
また、前述したように双対コストPjは、(9)式の左辺で表されるので、以下の(20)式のようになる。
Figure 2019192018
前述したように本実施形態では、列生成子問題Sは、被約費用(=cj−Pj)が最小となるときの実現可能山mj(山構成鋼材有無変数mj[i])を求める問題である。従って、列生成子問題Sの目的関数JSは、(19)式から(20)式を減算することにより得られるが、(19)式の右辺第1項は定数であるので、これを除外して表記すると、以下の(21)式のようになる。
Figure 2019192018
以上のように、(13)式〜(18)式の制約式を満足する範囲で(21)式の目的関数JSの値を最小にする決定変数(山構成鋼材有無変数mj[i]、鋼材上下関係変数y[i1][i2]、および仮置き有無変数t[i])を、列生成子問題Sの最適解として導出すればよい。
ところで、列生成子問題Sは0−1整数計画問題であり、且つ、繰り返し解かれるものである。従って、列生成子問題Sの計算時間が全体の計算時間に大きく依存することになる。そこで、列生成子問題Sの高速化を行うために、本実施形態では、以下の手法を採用する。
前述したように列生成子問題Sは、実現可能山mjの列コストcjが、当該実現可能山mjに対する双対コストPj以下(cj≦Pj)になる実現可能山mj(山構成鋼材有無変数mj[i])を求めることを主目的とする。従って、この主目的を達成していれば、必ずしも、実現可能山mjの列コストcjから、当該実現可能山mjに対する双対コストPjを減算した値(=cj−Pj)の最小値を求める必要はないと考えられる。
そこで、本実施形態では、(13)式〜(18)式の制約式に、実現可能山mjの列コストcjが、当該実現可能山mjに対する双対コストPj以下(cj≦Pj)であるという制約式を更に追加する。即ち、以下の(22)式の制約式を追加する。
Figure 2019192018
(22)式の制約式を追加する場合には、実行可能解が得られさえすればよいことにするので、実行可能解が求まり次第、計算を終了させる。
従って、本実施形態では、列生成部123は、CPLEX(登録商標)等の公知のソルバーを用いて0−1整数計画法による最適化計算を行うことにより、(13)式〜(18)式、(22)式の制約式を満足する範囲で(21)式の目的関数JSの値を最小にする決定変数(山構成鋼材有無変数mj[i]、鋼材上下関係変数y[i1][i2]、および仮置き有無変数t[i])を導出する。そして、列生成部123は、導出した決定変数(山構成鋼材有無変数mj[i]、鋼材上下関係変数y[i1][i2]、および仮置き有無変数t[i])から、(19)式および(20)式により、実現可能山mjの列コストcjと、当該実現可能山mjに対する双対コストPjとを導出する。尚、後述するように双対ギャップが残った状態で列生成子問題Sの計算を打ち切っても(22)式により、生成された列の最適性条件である被約費用(=cj−Pj)が0以下の条件は満たされる。
列生成部123は、例えば、CPU、ROM、RAM、およびHDDを用いることにより実現される。
<列判定部124>
前述したように、実現可能山mjの列コストcjが、当該実現可能山mjに対する双対コストPj以下(cj≦Pj)である場合には、実現可能山mjの集合C(行列A)に実現可能山mjが十分に追加されていない。そこで、列判定部124は、被約費用(=cj−Pj)が「0(ゼロ)」以下であるか否かを判定する。(22)式の制約がある場合には、実行可能解が得られておれば、被約費用(=cj−Pj)は「0(ゼロ)」以下であることになるので、実行可能解が得られたか否かが前記判定条件と一致する。
この判定の結果、被約費用(=cj−Pj)が「0(ゼロ)」以下である場合、列判定部124は、山構成鋼材有無変数mj[i]に基づく実現可能山mjが、実現可能山mjの集合C(行列A)に含まれているか否かを判定する。この判定の結果、山構成鋼材有無変数mj[i]に基づく実現可能山mjが、実現可能山mjの集合Cに含まれていない場合には、列生成部123により導出された(最新の)山構成鋼材有無変数mj[i]に基づく実現可能山mjを、実現可能山mjの集合C(行列A)に追加する必要がある。一方、被約費用(=cj−Pj)が「0(ゼロ)」を上回る場合と、山構成鋼材有無変数mj[i]に基づく実現可能山mjが、実現可能山mjの集合Cに含まれている場合には、実現可能山mjをこれ以上実現可能山mjの集合C(行列A)に追加しても、当該実現可能山mjが原問題P(C)の最適解の候補になることはないと見なせる。
列判定部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)式〜(18)式、(22)式の制約式を満足する範囲で(21)式の目的関数JSの値を最小にする決定変数(山構成鋼材有無変数mj[i]、鋼材上下関係変数y[i1][i2]、および仮置き有無変数t[i])を導出する。そして、列生成部123は、導出した決定変数(山構成鋼材有無変数mj[i]、鋼材上下関係変数y[i1][i2]、および仮置き有無変数t[i])から、(19)式および(20)式により、実現可能山mjの列コストcjと、当該実現可能山mjに対する双対コストPjとを導出する。
そして、列判定部124は、このようにして導出された、実現可能山mjの列コストcjと、当該実現可能山mjに対する双対コストPjとを用いて、被約費用(=cj−Pj)が「0(ゼロ)」以下であるか否かを判定する。この判定の結果、被約費用(=cj−Pj)が「0(ゼロ)」以下である場合には、列生成部123により導出された(最新の)山構成鋼材有無変数mj[i]に基づく実現可能山mjが、実現可能山mjの集合C(行列A)に含まれているか否かを判定し、含まれていない場合には列追加部125は、列生成部123により導出された(最新の)山構成鋼材有無変数mj[i]に基づく実現可能山mjを、実現可能山mjの集合C(行列Aの列)に追加する。
以上の処理を、列判定部124により、被約費用(=cj−Pj)が「0(ゼロ)」を上回ると判定するまで、或いは実現可能山mjがその時点での実現可能山mjの集合C(行列A)に既に含まれていると判定するまで繰り返し行う。以下の説明では、列判定部124にて実現可能山mjを行列Aの列に追加不要と判定された時点で得られている実現可能山mjの集合Cを、必要に応じて実現可能山mjの集合Ccgと称する。また、列判定部124にて実現可能山mjを行列Aの列に追加不要と判定される直前に双対解導出部122により導出された双対問題D(Ccg)の最適解p[i]を、必要に応じて、双対最適解p[i]と称する。また、当該双対問題D(Ccg)の最適解p[i]を得たときの(11)式の目的関数Jの値を、必要に応じて、双対最適値VD(Ccg)と称する。
((本処理部130))
本発明者らは、以上の前処理部120を実問題に適用すると、被約費用(=cj−Pj)が「0(ゼロ)」を上回る前に、列生成子問題Sの最適解mj_opt[i](i∈N)(山構成鋼材有無変数mj[i]の最適解)が、実現可能山mjの集合Ccgに既に含まれていることが起こりやすくなり、この実現可能山mjの集合Ccgに対する原問題P(Ccg)を解くと((2)式の制約式を満足する範囲で(4)式の目的関数Jの値を最小にする決定変数x[j](最適解)を求めると)、目的関数Jの最適値の誤差が大きくなることを見出した。図2は、鋼材の数nが50(n=50)である10通りの鋼材情報を用いて、前処理部120における処理を行った結果の一例を表形式で示す図である。
図2において「Data」は、10通りの鋼材情報の識別番号である。「繰り返し数」は、前述した<実現可能山mjを追加した後の繰り返し計算>の繰り返し数(双対解導出部122、列生成部123、および列判定部124の繰り返し数)を示す。VP(Ccg)は、列判定部124にて実現可能山mjを行列Aの列に追加不要と判定された時点で得られている実現可能山mjの集合Ccgに対する原問題P(Ccg)の最適値((2)式の制約式を満足する範囲で最小となる(4)式の目的関数Jの値)である(以下の説明では、この最適値を、必要に応じて原問題最適値と称する。また、原問題最適値が得られたときの決定変数x[j](実現可能山mjを採用する場合に「1」、そうでない場合に「0(ゼロ)」となる0−1変数)の値を、必要に応じて原問題最適解と称する。VD(Ccg)は、前述した双対最適値であり、列判定部124にて実現可能山mjを行列Aの列に追加不要と判定された時点で得られている実現可能山mjの集合Ccgに対する双対問題D(Ccg)の最適値((9)式の制約式を満足する範囲で最小となる(11)式の目的関数の値)である。VP(Call)は、全ての実現可能山mjの集合Callに対する原問題P(Call)の最適値(即ち、真の最適値)である。相対誤差は、真の最適値VP(Call)に対する、原問題最適値VP(Ccg)の相対誤差(={(VP(Ccg)−VP(Call))÷VP(Call)}×100)を示す。
図2に示すように、相対誤差は、最大値で40%を超え、平均値で20%を超えることが分かる。
列生成法は本来、線形計画問題に対する解法であるが、前処理部120では、0−1整数計画問題である原問題P(C)に列生成法を適用する。このことから図2に示すような相対誤差が生じると考えられる。相対誤差がこのような原因で生じることは、図2において、原問題最適値VP(Ccg)が、真の最適値VP(Call)以下となっていることから、双対問題D(Ccg)の双対最適解VD(Ccg)は、線形計画問題として0−1条件を緩和した最適値VP(Call)と一致していると推察されることからも窺える。
そこで、本発明者らは、このような相対誤差を減らすことを思考した。相対誤差が生じるのは、前処理部120で得られた実現可能山mjの集合Ccgでは、0−1整数計画問題の最適解を構成するために必要な列(実現可能山mj)が不足しているためであると考えられる。つまり、(2)式の上に示す被覆条件(Σx[j]=1)と(2)式の下に示す0−1条件(x[j]∈{0,1})とを両立させるためには、0−1条件のない双対問題D(C)とは異なり、被約費用(=cj−Pj)が「0(ゼロ)」近傍の列が行列Aに相当数必要であると考えられる。尚、被約費用(=cj−Pj)が「0(ゼロ)」だけではなく、被約費用(=cj−Pj)が「0(ゼロ)」近傍の列も必要なのは、図2のData「1」、「3」、「6」、「7」、「8」、「9」のように、双対最適値VD(Ccg)が真の最適値VP(Call)を下回るケース(VD(Ccg)<VP(Call)のケース)もあるからである。つまり、このような双対ギャップが残るケースでは、被約費用(=cj−Pj)が「0(ゼロ)」を上回る列も、真の最適解に含まれていることを意味する(尚、被約費用(=cj−Pj)が「0(ゼロ)」を下回ることがないことは、双対定理により保障されている)。
そこで、本発明者らは、不足している列(実現可能山mj)を補う方法を検討した。ここで、全ての実現可能山mjの集合Callに対する原問題P(Call)の最適解(決定変数x[j]:実現可能山mjを採用する場合に「1」、そうでない場合に「0(ゼロ)」となる0−1変数)を最適解構成列と称する。また、最適解候補列となり得る可能性のある列(実現可能山mj)を最適解構成候補列と称する。最適解構成候補列は、その被約費用(=cj−Pj)が「0(ゼロ)」近傍の列であることが必要条件となる。一方、何等かの方法で抽出した列Csに対する原問題P(Cs)の最適値(原問題最適値)VP(Cs)が、以下の(23)式を満たせば、当該列Csは、全ての実現可能山mjの集合Callに対する原問題P(Call)の最適解を求めるために十分な列であるといえる。なぜならば、0−1整数計画問題では、目的関数の係数が整数の場合、小数をもつ解をとれないこと及び、双対定理により、VD(Ccg)≦VP(Call)だから、真の最適値VP(Call)は、VD(Ccg)≦VP(Call)<VD(Ccg)+1を満たすからである。
Figure 2019192018
本実施形態では、本処理部130は、このような考え方に基づいて、全ての実現可能山mjの集合Callに対する原問題P(Call)の最適解の求解に十分であると考えられる列を、列判定部124にて実現可能山mjを行列Aの列に追加不要と判定された時点で得られている実現可能山mjの集合Ccgの近傍探索により抽出する。以下に、本実施形態の本処理部130が有する機能の一例を詳細に説明する。以下の説明では、列判定部124にて実現可能山mjを行列Aの列に追加不要と判定された時点で得られている実現可能山mjの集合Ccgを、必要に応じて前処理部120で得られた実現可能山mjの集合Ccgと称する。
図1において、本処理部130は、双対最適値取得部131、前処理原問題導出部132、本処理実施判定部133、近傍探索部134、および本処理原問題導出部135を有する。
<双対最適値取得部131>
双対最適値取得部131は、双対最適値VD(Ccg)を取得する。前述したように、双対最適値VD(Ccg)は、前処理部120で得られた実現可能山mjの集合Ccgに対する双対問題D(Ccg)の最適値((9)式の制約式を満足する範囲で最小となる(11)式の目的関数の値)である。
双対最適値取得部131は、例えば、CPU、ROM、RAM、およびHDDを用いることにより実現される。
<前処理原問題導出部132>
前処理原問題導出部132は、原問題最適値VP(Ccg)および原問題最適解x[j]を導出する。前述したように、原問題最適値VP(Ccg)は、前処理部120で得られた実現可能山mjの集合Ccgに対する原問題P(Ccg)を解いたときの((2)式の制約式を満足する範囲で(4)式の目的関数Jの値を最小にする決定変数x[j](原問題最適解)を求めたときの)目的関数J((4)式)の値である。
前処理原問題導出部132は、例えば、CPU、ROM、RAM、およびHDDを用いることにより実現される。
<本処理実施判定部133>
本処理実施判定部133は、前処理原問題導出部132により導出された原問題最適値VP(Ccg)から、双対最適値取得部131により取得された双対最適値VD(Ccg)を減算した値が「1」を下回るか否か(VP(Ccg)−VD(Ccg)<1が成り立つか否か)を判定する。この判定の結果、原問題最適値VP(Ccg)から双対最適値VD(Ccg)を減算した値が「1」を下回る場合、前処理部120で得られた実現可能山mjの集合Ccgにより、全ての実現可能山mjの集合Callに対する原問題P(Call)の最適解の求解に十分な列が得られていると判断される。一方、原問題最適値VP(Ccg)から双対最適値VD(Ccg)を減算した値が「1」を下回らない場合、前処理部120で得られた実現可能山mjの集合Ccgでは、前処理部120により、全ての実現可能山mjの集合Callに対する原問題P(Call)の最適解の求解に十分な列が得られていないと判断される。
本処理実施判定部133は、例えば、CPU、ROM、RAM、およびHDDを用いることにより実現される。
<近傍探索部134>
近傍探索部134は、本処理実施判定部133が、前処理部120で得られた実現可能山mjの集合Ccgにより、全ての実現可能山mjの集合Callに対する原問題P(Call)の最適解の求解に十分な列が得られていないと判定すると起動する。近傍探索部134は、前処理部120で得られた実現可能山mjの集合Ccgに基づいて、前処理部120で得られた実現可能山mjの集合Ccgに含まれていない列(実現可能山mj)を探索し、前処理部120で得られた実現可能山mjの集合Ccgに追加する。
本実施形態では、近傍探索部134は、前処理部120で得られた実現可能山mjの集合Ccgの近傍の実現可能山mjを抽出する。具体的に、近傍探索部134は、前処理部120で得られた実現可能山mjのそれぞれについて、実現可能山mjの「0(ゼロ)」の要素(行列Aの各列を構成する要素)の何れか1つを「1」とする実現可能山mj_npを探索する。以下の説明では、このようにして探索される実現可能山を、必要に応じて1増近傍山mj_npと称する。図3に示すように、1増近傍山mj_npは、前処理部120で得られた実現可能山mjの最上段、最下段、または、隣接する2つの鋼材の間の何れか1つに、鋼材を1つ追加した実現可能山である。また、近傍探索部134は、前処理部120で得られた実現可能山mjのそれぞれについて、実現可能山mjの「1」の要素の何れか1つを「0(ゼロ)」とする実現可能山mj_nmを探索する。以下の説明では、このようにして探索される実現可能山を、必要に応じて1減近傍山mj_nmと称する。図3に示すように、1減近傍山mj_nmは、前処理部120で得られた実現可能山mjを構成する鋼材の何れか1つを取り除いた実現可能山である。なお、図3に示す矩形は1つの鋼材iを表し、縦に並べられた全矩形(鋼材)まとめて1つの実現可能山mjを表す。
鋼材の全体集合Nが、N={1,2,3,4,5}である場合に、全体集合Nの部分集合SjとしてSj={1,3,5}が得られた場合、上載せ禁止制約((17)式を参照)および山高さ制約((18)式を参照)を満足しないことがないものと仮定すると、前処理部120で得られた実現可能山mj(列)は、mj=[1,0,1,0,1]Tになる(Tは転置を表す)。この場合、1増近傍山mj_npは、mj_np=[1,1,1,0,1]T,[1,0,1,1,1]Tの2つの実現可能山になる。一方、1減近傍山mj_nmは、mj_nm=[0,0,1,0,1]T,[1,0,0,0,1]T,[1,0,1,0,0]Tの3つの実現可能山になる。
近傍探索部134は、このような1増近傍山mj_npおよび1減近傍山mj_nmの探索を、前処理部120で得られた実現可能山mjの集合Ccgに含まれる実現可能山mjのそれぞれについて個別に行う。
ここで、近傍探索部134は、実現可能山mjの「0(ゼロ)」の要素の何れか1つを「1」に変更した山mj'が、実現可能山(上載せ禁止制約((17)式を参照)および山高さ制約((18)式を参照)を満足する山)であり、且つ、前処理部120で得られた実現可能山mjでも探索済みの1増近傍山mj_npでもなく、且つ、当該変更した山mjに対する被約費用(=cj−Pj)が閾値TH以下である場合に、当該山mjを、1増近傍山集合Cnb_pに追加する。
同様に、近傍探索部134は、実現可能山mjの「1」の要素の何れか1つを「0(ゼロ)」に変更した山mj'が、実現可能山(上載せ禁止制約((17)式を参照)および山高さ制約((18)式を参照)を満足する山)であり、且つ、前処理部120で得られた実現可能山mjでも探索済みの1減近傍山mj_nbでもなく、且つ、当該変更した山mj'に対する被約費用(=cj−Pj)が閾値TH以下である場合に、当該山mjを、1減近傍山集合Cnb_mに追加する。
当該変更した山mj'に対する被約費用(=cj'−Pj')が閾値TH以下であるという条件は、被約費用が大きすぎる場合、前述した必要条件(被約費用(=cj−Pj)が「0(ゼロ)」近傍の列であること)を満たさないことから、このような列を除くために設けられる。閾値THは、例えば、以下の(24)式で定めることができる。
Figure 2019192018
ここで、ceil(x)は、天井関数(実数xに対してx以上の最小の整数を対応付ける関数)である。
近傍探索部134は、以上のようにして前処理部120で得られた実現可能山mjの集合Ccgに含まれる実現可能山mjのそれぞれについて、実現可能山mjの「0(ゼロ)」の要素の何れか1つを「1」に変更した山mj'が、1増近傍山集合Cnb_pに追加することができるか否かを判定して、追加できる山mj'を1増近傍山集合Cnb_pに追加することと、実現可能山mjの「1(ゼロ)」の要素の何れか1つを「0(ゼロ)」に変更した山mj'が、1減近傍山集合Cnb_mに追加することができるか否かを判定して、追加できる山mj'を1減近傍山集合Cnb_mに追加することを行う。そして、近傍探索部134は、前処理部120で得られた実現可能山mjの集合Ccgに含まれる全ての実現可能山mjについて、以上の処理を行った時点で1増近傍山集合Cnb_pおよび1減近傍山集合Cnb_mに含まれる1増近傍山mj_npおよび1減近傍山mj_nmを、前処理部120で得られた実現可能山mjの集合Ccgに追加する。以下の説明では、以上の処理を行った時点で1増近傍山集合Cnb_pおよび1減近傍山集合Cnb_mに含まれる1増近傍山mj_npおよび1減近傍山mj_nmを、前処理部120で得られた実現可能山mjの集合Ccgに追加して得られる実現可能山mjの集合Cを、必要に応じて本処理部130で得られた実現可能山mjの集合CLS1と称する。
近傍探索部134は、例えば、CPU、ROM、RAM、およびHDDを用いることにより実現される。
<本処理原問題導出部135>
本処理原問題導出部135は、原問題最適値VP(CLS1)と原問題最適解x[j]を導出する。前述したように、原問題最適値VP(CLS1)は、本処理部130で得られた実現可能山mjの集合CLS1に対する原問題P(CLS1)を解いたときの((2)式の制約式を満足する範囲で(4)式の目的関数Jの値を最小にする決定変数x[j](原問題最適解)を求めたときの)目的関数J((4)式)の値である。
図4は、図2に示した結果と同一の鋼材情報を用いて、本処理部130における処理を行った結果の一例を表形式で示す図である。図4において、「Data」は、10通りの鋼材情報の識別番号であり、図2に示した「Data」に対応する。|Ccg|は、前処理部120で得られた実現可能山mjの集合Ccgに含まれる実現可能山mj(列)の数である。|CLS1|は、本処理部130で得られた実現可能山mjの集合CLS1に含まれる実現可能山mj(列)の数である。VP(CLS1)は、CLS1に対し本処理原問題導出部135により導出された原問題最適値である。|Call|は、全ての実現可能山mjの集合Callに含まれる実現可能山mj(列)の数である。VP(Call)は、全ての実現可能山mjの集合Callに対する原問題P(Call)の最適値(即ち、真の最適値)であり、図2に示したVP(Call)に対応する。相対誤差は、真の最適値VP(Call)に対する、原問題最適値VP(CLS1)の相対誤差(={(VP(CLS1)−VP(Call))÷VP(Call)}×100)を示す。
図4に示す相対誤差と、図2に示す相対誤差とを比較すると分かるように、本実施形態のように本処理部130(近傍探索部134)における局所探索法で列を追加することにより、列生成法の課題である相対誤差を大幅に減少させることができる。図2、図4に示す例では、相対誤差の平均値を22.6%から0.64%に減少させることができる。
本処理原問題導出部135は、例えば、CPU、ROM、RAM、およびHDDを用いることにより実現される。
((出力部140))
出力部140は、本処理実施判定部133が、前処理部120で得られた実現可能山mjの集合Ccgにより、全ての実現可能山mjの集合Callに対する原問題P(Call)の最適解の求解に十分な列が得られていると判定した場合には、前処理原問題導出部132により導出された原問題最適解x[j]の値が「1」となる実現可能山mjを特定し、特定した実現可能山mjの情報を山分け計画の情報として出力する。
一方、出力部140は、本処理実施判定部133が、前処理部120で得られた実現可能山mjの集合Ccgにより、全ての実現可能山mjの集合Callに対する原問題P(Call)の最適解の求解に十分な列が得られていないと判定した場合には、本処理原問題導出部135により導出された原問題最適解x[j]の値が「1」となる実現可能山mjを特定し、特定した実現可能山mjの情報を山分け計画の情報として出力する。
出力部140は、例えば、実現可能山のIDと、当該IDの実現可能山に属する鋼材のIDとを含む情報を山分け計画の情報とすることができる。ここで、鋼材のIDは、鋼材情報に含まれるIDである。また、出力部140は、鋼材情報に含まれる鋼材のサイズと、上載せ禁止制約式とに基づいて、実現可能山に属する鋼材の当該実現可能山における積順を導出し、当該積順の情報を山分け計画の情報に含めて出力してもよい。
山分け計画の情報の出力の形態としては、例えば、外部装置への送信と、鋼材の山分け計画作成装置100の内部または外部の記憶媒体の記憶との少なくとも何れか1つを採用することができる。また、出力部140は、山分け計画の情報と、鋼材情報に含まれる鋼材の到着順と、ヤードの置場1101〜1104および搬送機器(クレーン1A、1B、2A、2B)の情報に基づいて、どのタイミングでどの搬送機器によりどの鋼材をどの場所に搬送するのかを特定し、特定した内容に基づいて、搬送機器に対する動作指令を行うことができる。この場合には、山分け計画の情報を出力しなくてもよい。
出力部140は、例えば、CPU、ROM、RAM、および通信インターフェース(または記憶媒体とのインターフェース)を用いることにより実現される。
(動作フローチャート)
次に、図5−1および図5−2のフローチャートを参照しながら、本実施形態の鋼材の山分け計画作成方法の一例を説明する。
まず、ステップS501において、鋼材情報取得部110は、鋼材情報を取得する。
次に、ステップS502において、初期列集合設定部121は、実現可能山mjの集合Cの初期値を設定する。
次に、ステップS503において、双対解導出部122は、実現可能山mjの集合Cの現在値に基づいて、(9)式の制約式を満足する範囲で(11)式の目的関数Jの値を最大にする双対変数p[i]を、双対問題D(C)の最適解(双対解psol[i])として導出する。最初にステップS503を行うときには、実現可能山mjの集合Cの現在値は、ステップS502で設定された実現可能山mjの集合Cの初期値である。
次に、ステップS504において、列生成部123は、ステップS503で導出された(最新の)双対解psol[i]を用いて、(13)式〜(18)式、(22)式の制約式を満足する範囲で(21)式の目的関数JSの値を最小にする決定変数(山構成鋼材有無変数mj[i]、鋼材上下関係変数y[i1][i2]、および仮置き有無変数t[i])を導出する。そして、列生成部123は、導出した決定変数(山構成鋼材有無変数mj[i]、鋼材上下関係変数y[i1][i2]、および仮置き有無変数t[i])から、(19)式および(20)式により、実現可能山mjの列コストcjと、当該実現可能山mjに対する双対コストPjとを導出する。
次に、ステップS505において、列判定部124は、被約費用(=cj−Pj)が「0(ゼロ)」以下であるか否かを判定する。この判定の結果、被約費用(=cj−Pj)が「0(ゼロ)」以下である場合(ステップS505でYESの場合)には、ステップS506に進む。
ステップS506に進むと、列判定部124は、ステップS504で導出された(最新の)山構成鋼材有無変数mj[i]に基づく実現可能山mjが、実現可能山mjの集合Cに含まれているか否かを判定する。この判定の結果、ステップS504で導出された(最新の)山構成鋼材有無変数mj[i]に基づく実現可能山mjが、実現可能山mjの集合Cに含まれている場合(ステップS506でYESの場合)には、後述する図5−2のステップS508に進む。一方、ステップS504で導出された(最新の)山構成鋼材有無変数mj[i]に基づく実現可能山mjが、実現可能山mjの集合Cに含まれていない場合(ステップS506でNOの場合)には、ステップS507に進む。
ステップS507に進むと、列追加部125は、ステップS504で導出された(最新の)山構成鋼材有無変数mj[i]に基づく実現可能山mjを、実現可能山mjの集合Cに追加し、実現可能山mjの集合Cの現在値を更新する。そして、ステップS503に戻り、ステップS505において、被約費用(=cj−Pj)が「0(ゼロ)」を超えると判定されるか(ステップS505でNOと判定されるか)、または、ステップS506において、ステップS504で導出された(最新の)山構成鋼材有無変数mj[i]に基づく実現可能山mjが、実現可能山mjの集合Cに含まれていると判定されるまで(ステップS506でYESと判定されるまで)、ステップS503〜S507の処理を繰り返し行う。
以上のようにしてステップS505において、被約費用(=cj−Pj)が「0(ゼロ)」以下でないと判定されるか(ステップS505でNOと判定されるか)、または、ステップS506において、ステップS504で導出された(最新の)山構成鋼材有無変数mj[i]に基づく実現可能山mjが、実現可能山mjの集合Cに含まれていると判定されると(ステップS506でYESと判定されると)、図5−2のステップS508に進む。このときに得られている実現可能山mjの集合Cが、前処理部120で得られた実現可能山mjの集合Ccgになる。
ステップS508に進むと、双対最適値取得部131は、双対最適値VD(Ccg)を取得する。双対最適値VD(Ccg)は、ステップS505またはS506にて実現可能山mjを行列Aの列に追加不要と判定される直前にステップS503で導出された双対問題Dの最適解を得たときの(11)式の目的関数Jの値である。
次に、ステップS509において、前処理原問題導出部132は、前処理部120で得られた実現可能山mjの集合Ccgに対する原問題P(Ccg)を解くことにより、原問題最適値VP(Ccg)および原問題最適解x[j]を導出する。
次に、ステップS510において、本処理実施判定部133は、ステップS509で導出された原問題最適値VP(Ccg)から、ステップS508で双対最適値VD(Ccg)を減算した値が「1」を下回るか否かを判定する。この判定の結果、原問題最適値VP(Ccg)から双対最適値VD(Ccg)を減算した値が「1」を下回る場合(ステップS510でYESの場合)には、前処理部120で得られた実現可能山mjの集合Ccgにより、全ての実現可能山mjの集合Callに対する原問題P(Call)の最適解の求解に十分な列が得られている。このため、処理は、ステップS511、S512を省略して後述するステップS513に進む。
一方、原問題最適値VP(Ccg)から双対最適値VD(Ccg)を減算した値が「1」を下回らない場合(ステップS510でNOの場合)、処理は、ステップS511に進む。ステップS511において、近傍探索部134は、近傍探索処理を行う。この近傍探索処理で得られた実現可能山mjの集合Cが、本処理部130で得られた実現可能山mjの集合CLS1になる。近傍探索処理の一例の詳細については、図6−1および図6−2のフローチャートを参照しながら後述する。
次に、ステップS512において、本処理原問題導出部135は、本処理部130で得られた実現可能山mjの集合CLS1に対する原問題P(CLS1)を解くことにより、原問題最適値VP(CLS1)と原問題最適解x[j]を導出する。
次に、ステップS513において、出力部140は、原問題最適解x[j]の値が「1」となる実現可能山mjを特定し、特定した実現可能山mjの情報を山分け計画の情報として出力する。ステップS510でYESと判定されてステップS513に進んだ場合、出力部140は、ステップS509で導出された原問題最適解x[j]の値が「1」となる実現可能山mjを特定し、特定した実現可能山mjの情報を山分け計画の情報として出力する。一方、ステップS510でNOと判定されてステップS513に進んだ場合、出力部140は、ステップS512で導出された原問題最適解x[j]の値が「1」となる実現可能山mjを特定し、特定した実現可能山mjの情報を山分け計画の情報として出力する。そして、図5−1および図5−2のフローチャートによる処理が終了する。
次に、図6−1および図6−2のフローチャートを参照しながら、図5−2のステップS511の近傍探索処理の詳細について説明する。
まず、ステップS601において、近傍探索部134は、前処理部120で得られた実現可能山mjの集合Ccgに含まれる実現可能山mj(行列Aの列)のうち最初の実現可能山mj(行列Aの第1列(j=1))を指定する。また、近傍探索部134は、1増近傍山集合Cnb_pをφ(空集合)とする。
次に、ステップS602において、近傍探索部134は、1増近傍山mj_npの初期値として、前処理部120で得られた実現可能山mjのうち、現在指定している実現可能山mjを設定する。
次に、ステップS603において、近傍探索部134は、ステップS602で設定した1増近傍山mj_npの初期値の先頭の要素mj_np[1](鋼材、i=1)を指定する。例えば、鋼材の全体集合Nが、N={1,2,3,4,5}である場合に、全体集合Nの部分集合SjとしてSj={1,3,5}が得られた場合、前処理部120で得られた実現可能山mj(列)は、mj=[1,0,1,0,1]Tになる(Tは転置を表す)。ステップS602において、この前処理部120で得られた実現可能山mj(列)が、1増近傍山mj_npの初期値として設定され、ステップS604において、mj_np=[1,0,1,0,1]Tの先頭の要素(i=1の要素)として、「1」が指定される。この場合、i=1、2、3、4、5の要素の値は、それぞれ、1、0、1、0、1となる。
次に、ステップS604において、近傍探索部134は、現在指定している1増近傍山mj_npの初期値の要素mj_np[i]の値が「0(ゼロ)」であるか否かを判定する。この判定の結果、現在指定している1増近傍山mj_npの初期値の要素mj_np[i]の値が「0(ゼロ)」でない場合(ステップS604でNOの場合)、当該要素には既に鋼材があるので、処理は、ステップS605〜S609を省略して後述するステップS610に進む。
一方、現在指定している1増近傍山mj_npの初期値の要素mj_np[i]の値が「0(ゼロ)」である場合(ステップS604でYESの場合)、処理は、ステップS605に進む。ステップS605において、近傍探索部134は、現在指定している1増近傍山mj_npの初期値の要素mj_np[i]の値を「1」に変更する。
次に、ステップS606において、近傍探索部134は、ステップS605で変更後の1増近傍山mj_npが、前処理部120で得られた実現可能山mjの集合Ccgまたは1増近傍山集合Cnb_pに含まれているか否かを判定する。この判定の結果、ステップS605で変更後の1増近傍山mj_npが、前処理部120で得られた実現可能山mjの集合Ccgまたは1増近傍山集合Cnb_pに含まれている場合(ステップS606でYESの場合)、ステップS605で変更後の1増近傍山mj_npを1増近傍山集合Cnb_pに追加する必要はない。従って、処理は、ステップS607〜S609を省略して後述するステップS610に進む。
一方、ステップS605で変更後の1増近傍山mj_npが、前処理部120で得られた実現可能山mjの集合Ccgまたは1増近傍山集合Cnb_pに含まれている場合(ステップS606でNOの場合)、処理は、ステップS607に進む。ステップS607において、近傍探索部134は、ステップS605で変更後の1増近傍山mj_npが、実現可能山(上載せ禁止制約((17)式を参照)および山高さ制約((18)式を参照)を満足する山)であるか否かを判定する。この判定の結果、ステップS605で変更後の1増近傍山mj_npが、実現可能山でない場合(ステップS607でNOの場合)、ステップS605で変更後の1増近傍山mj_npは、最適な実現可能山mjを得るために必要な実現可能山mjの候補ではない。従って、処理は、ステップS608〜S609を省略して後述するステップS610に進む。
一方、ステップS605で変更後の1増近傍山mj_npが、実現可能山である場合(ステップS607でYESの場合)、処理は、ステップS608に進む。ステップS608において、近傍探索部134は、ステップS605で変更後の1増近傍山mj_npに対する被約費用(=cj−Pj)が閾値TH以下であるか否かを判定する。この判定の結果、ステップS605で変更後の1増近傍山mj_npに対する被約費用(=cj−Pj)が閾値TH以下でない場合(ステップS608でNOの場合)、被約費用が大きすぎるため、前述した必要条件(被約費用(=cj−Pj)が「0(ゼロ)」近傍の列であること)を満足しない。従って、処理は、ステップS609を省略して後述するステップS610に進む。
一方、ステップS605で変更後の1増近傍山mj_npに対する被約費用(=cj'−Pj')が閾値TH以下である場合(ステップS608でYESの場合)、処理は、ステップS609に進む。ステップS609において、近傍探索部134は、ステップS605で変更後の1増近傍山mj_npを、1増近傍山集合Cnb_pに追加する。そして、処理は、ステップS610に進む。
ステップS610において、近傍探索部134は、ステップS602で設定した1増近傍山mj_npの初期値の最後の要素mj_np[i](鋼材)まで指定したか否かを判定する。ステップS603の説明において示した具体例では、近傍探索部134は、i=5まで指定したか否かを判定する。この判定の結果、ステップS602で設定した1増近傍山mj_npの初期値の最後の要素mj_np[i](鋼材)まで指定していない場合(ステップS610でNOの場合)、処理は、ステップS611に進む。ステップS611において、近傍探索部134は、ステップS602で設定した1増近傍山mj_npの初期値の要素iのうち、現在指定している要素iの次の要素i+1を指定する。そして、当該要素i+1を現在指定している1増近傍山mj_npの初期値の要素mj_np[i]として、ステップS604以降の処理を行う。
一方、ステップS602で設定した1増近傍山mj_npの初期値の最後の要素mj_np[i](鋼材)まで指定している場合(ステップS610でYESの場合)、前処理部120で得られた実現可能山mjのうち、現在指定している実現可能山mjから得られる全ての1増近傍山mj_npについて、1増近傍山集合Cnb_pに追加することができるか否かの判定と、追加することができる1増近傍山mj_npの1増近傍山集合Cnb_pへの追加が終了する。従って、処理は、ステップS612に進む。
ステップS612において、近傍探索部134は、前処理部120で得られた実現可能山mjの全てを指定したか否かを判定する。この判定の結果、前処理部120で得られた実現可能山mjの全てを指定していない場合(ステップS612でNOの場合)、処理は、ステップS613に進む。ステップS613において、近傍探索部134は、前処理部120で得られた実現可能山mjの集合Ccgに含まれる実現可能山mj(行列Aの列)のうち、現在指定している実現可能山mjの次の実現可能山mj+1(行列Aの第j+1列)を指定する。そして、近傍探索部134は、当該第j+1列の実現可能山mj+1を、現在指定している実現可能山mjとして、ステップS602以降の処理を行う。
一方、前処理部120で得られた実現可能山mjの全てを指定した場合(ステップS612でYESの場合)、前処理部120で得られた実現可能山mjの全てから得られる全ての1増近傍山mj_npについて、1増近傍山集合Cnb_pに追加することができるか否かの判定と、追加することができる1増近傍山mj_npの1増近傍山集合Cnb_pへの追加が終了する。従って、処理は、図6−2のステップS614に進む。
ステップS614において、近傍探索部134は、前処理部120で得られた実現可能山mjの集合Ccgに含まれる実現可能山mj(行列Aの列)のうち最初の実現可能山mj(行列Aの第1列(j=1))を指定する。また、近傍探索部134は、1減近傍山集合Cnb_mをφ(空集合)とする。
次に、ステップS615において、近傍探索部134は、1減近傍山mj_nmの初期値として、前処理部120で得られた実現可能山mjのうち、現在指定している実現可能山mjを設定する。
次に、ステップS616において、近傍探索部134は、ステップS615で設定した1減近傍山mj_nmの初期値の先頭の要素mj_nm[1](鋼材、i=1)を指定する。例えば、鋼材の全体集合Nが、N={1,2,3,4,5}である場合に、全体集合Nの部分集合SjとしてSj={1,3,5}が得られた場合、前処理部120で得られた実現可能山mj(列)は、mj=[1,0,1,0,1]Tになる(Tは転置を表す)。ステップS615において、この前処理部120で得られた実現可能山mj(列)が、1減近傍山mj_nmの初期値として設定され、ステップS617において、mj_nm=[1,0,1,0,1]Tの先頭の要素(i=1の要素)として、「1」が指定される。この場合、i=1、2、3、4、5の要素の値は、それぞれ、1、0、1、0、1となる。
次に、ステップS617において、近傍探索部134は、現在指定している1減近傍山mj_nmの初期値の要素mj_nm[i]の値が「1」であるか否かを判定する。この判定の結果、現在指定している1減近傍山mj_nmの初期値の要素mj_nm[i]の値が「1」でない場合(ステップS617でNOの場合)、当該要素には既に鋼材がないので、処理は、ステップS618〜S622を省略して後述するステップS623に進む。
一方、現在指定している1減近傍山mj_nmの初期値の要素mj_nm[i]の値が「1」である場合(ステップS617でYESの場合)、処理は、ステップS618に進む。ステップS618において、近傍探索部134は、現在指定している1減近傍山mj_nmの初期値の要素mj_nm[i]の値を「0(ゼロ)」に変更する。
次に、ステップS619において、近傍探索部134は、ステップS618で変更後の1減近傍山mj_nmが、前処理部120で得られた実現可能山mjの集合Ccgまたは1減近傍山集合Cnb_mに含まれているか否かを判定する。この判定の結果、ステップS618で変更後の1減近傍山mj_nmが、前処理部120で得られた実現可能山mjの集合Ccgまたは1減近傍山集合Cnb_mに含まれている場合(ステップS619でYESの場合)、ステップS618で変更後の1減近傍山mj_nmを1減近傍山集合Cnb_mに追加する必要はない。従って、処理は、ステップS620〜S622を省略して後述するステップS623に進む。
一方、ステップS618で変更後の1減近傍山mj_nmが、前処理部120で得られた実現可能山mjの集合Ccgまたは1減近傍山集合Cnb_mに含まれている場合(ステップS619でNOの場合)、処理は、ステップS620に進む。ステップS620において、近傍探索部134は、ステップS618で変更後の1減近傍山mj_nmが、実現可能山(上載せ禁止制約((17)式を参照)および山高さ制約((18)式を参照)を満足する山)であるか否かを判定する。この判定の結果、ステップS618で変更後の1減近傍山mj_nmが、実現可能山でない場合(ステップS620でNOの場合)、ステップS618で変更後の1減近傍山mj_nmは、最適な実現可能山mjを得るために必要な実現可能山mjの候補ではない。従って、処理は、ステップS621〜S622を省略して後述するステップS623に進む。
一方、ステップS618で変更後の1減近傍山mj_nmが、実現可能山である場合(ステップS620でYESの場合)、処理は、ステップS621に進む。ステップS621において、近傍探索部134は、ステップS618で変更後の1減近傍山mj_nmに対する被約費用(=cj−Pj)が閾値TH以下であるか否かを判定する。この判定の結果、ステップS618で変更後の1減近傍山mj_nmに対する被約費用(=cj−Pj)が閾値TH以下でない場合(ステップS621でNOの場合)、被約費用が大きすぎるため、前述した必要条件(被約費用(=cj−Pj)が「0(ゼロ)」近傍の列であること)を満足しない。従って、処理は、ステップS622を省略して後述するステップS623に進む。
一方、ステップS618で変更後の1減近傍山mj_nmに対する被約費用(=cj−Pj)が閾値TH以下である場合(ステップS621でYESの場合)、処理は、ステップS622に進む。ステップS622において、近傍探索部134は、ステップS618で変更後の1減近傍山mj_nmを、1減近傍山集合Cnb_mに追加する。そして、処理は、ステップS623に進む。
ステップS623において、近傍探索部134は、ステップS615で設定した1減近傍山mj_nmの初期値の最後の要素mj_nm[i](鋼材)まで指定したか否かを判定する。ステップS616の説明において示した具体例では、近傍探索部134は、i=5まで指定したか否かを判定する。この判定の結果、ステップS615で設定した1減近傍山mj_nmの初期値の最後の要素mj_nm[i](鋼材)まで指定していない場合(ステップS623でNOの場合)、処理は、ステップS624に進む。ステップS624において、近傍探索部134は、ステップS615で設定した1減近傍山mj_nmの初期値の要素iのうち、現在指定している要素iの次の要素i+1を指定する。そして、当該要素i+1を現在指定している1減近傍山mj_nmの初期値の要素mj_nm[i]として、ステップS617以降の処理を行う。
一方、ステップS615で設定した1減近傍山mj_nmの初期値の最後の要素mj_nm[i](鋼材)まで指定している場合(ステップS623でYESの場合)、前処理部120で得られた実現可能山mjのうち、現在指定している実現可能山mjから得られる全ての1減近傍山mj_nmについて、1減近傍山集合Cnb_mに追加することができるか否かの判定と、追加することができる1減近傍山mj_nmの1減近傍山集合Cnb_mへの追加が終了する。従って、処理は、ステップS625に進む。
ステップS625において、近傍探索部134は、前処理部120で得られた実現可能山mjの全てを指定したか否かを判定する。この判定の結果、前処理部120で得られた実現可能山mjの全てを指定していない場合(ステップS625でNOの場合)、処理は、ステップS626に進む。ステップS626において、近傍探索部134は、前処理部120で得られた実現可能山mjの集合Ccgに含まれる実現可能山mj(行列Aの列)のうち、現在指定している実現可能山mjの次の実現可能山mj+1(行列Aの第j+1列)を指定する。そして、近傍探索部134は、当該第j+1列の実現可能山mj+1を、現在指定している実現可能山mjとして、ステップS615以降の処理を行う。
一方、前処理部120で得られた実現可能山mjの全てを指定した場合(ステップS625でYESの場合)、前処理部120で得られた実現可能山mjの全てから得られる全ての1減近傍山mj_nmについて、1減近傍山集合Cnb_mに追加することができるか否かの判定と、追加することができる1減近傍山mj_nmの1減近傍山集合Cnb_mへの追加が終了する。従って、図6−2の処理が終了し、図5−2のステップS512に進む。
(まとめ)
以上のように本実施形態では、前処理部120は、被約費用(cj−Pi)が「0(ゼロ)」以下である場合に、実現可能山mjの集合C(行列A)に実現可能山mjを追加する。かかる実現可能山mjの追加を、被約費用(cj−Pi)が「0(ゼロ)」を上回るまで繰り返し行う。
本処理部130は、前処理部120で得られた実現可能山mjの集合Ccgに基づいて、前処理部120で得られた実現可能山mjの集合Ccgに含まれていない列(実現可能山mj)を探索して、前処理部120で得られた実現可能山mjの集合Ccgに追加する。本処理部130は、このようにして実現可能山mjの集合CLS1に対する原問題P(CLS1)を解くことにより、原問題最適値VP(CLS1)と原問題最適解x[j]を導出する。
従って、山分け問題に列生成法を適用することができるようになり、実現可能山の候補として可及的に過不足なく実現可能山の候補を列挙することができる(即ち、全ての実現可能山を列挙する必要がなくなる)。従って、特許文献1に記載の技術では、実現化の山を列挙すらできないような大規模な問題であっても、双対ギャップ(離散誤差)がなく厳密に適切な山分け計画を2値制約(0−1制約)に伴う誤差(双対ギャップ)を解消した最適解に基づき確実に作成することができる。
また、発明が解決しようとする課題の欄で説明したように、列生成法は、これを用いることで線形計画問題の最適解を得られることは保証されているが、集合分割問題の様な0−1整数計画問題に対しては、実行可能解は得られる(最小化問題の場合は解の上限が求まる)ものの、最適解を得られることは必ずしも保証されていない。特許文献2に記載の技術でもこの点は課題として残されたままである。これに対し本実施形態では、本処理部130により、原問題Pの最適解(原問題最適解x[j])を導出することができる。
また、列生成法は、繰り返し計算となることから計算時間を要する方法である。このため、山分け計画をリアルタイム制御に利用するには可及的に計算時間を短縮する方法が必要となる場合がある。しかし、特許文献2では、2つの異なる文書に含まれる文の対応関係を求めるようなオフラインで使用する用途を前提としているため、この課題については触れられていない。これに対し本実施形態では、列生成子問題Sを解く際に、(22)式のように、実現可能山mjの列コストcjが、当該実現可能山mjに対する双対コストPj以下(cj≦Pj)であるという制約を追加する。従って、計算時間のかかる列生成子問題Sの計算時間を短縮することができる。
また、本実施形態では、本処理部130は、原問題最適値VP(Ccg)から双対最適値VD(Ccg)を減算した値が「1」を下回る場合には、前処理部120で得られた実現可能山mjの集合Ccgにより、全ての実現可能山mjの集合Callに対する原問題P(Call)の最適解の求解に十分な列が得られているものとして、前処理部120で得られた実現可能山mjの集合Ccgに列(実現可能山mj)を追加する処理を行わない。従って、本処理部130における処理負荷を軽減することができる。
また、本実施形態では、本処理部130は、前処理部120で得られた実現可能山mjのそれぞれについて、実現可能山mjの「0(ゼロ)」の要素の何れか1つを「1」とする実現可能山mj_np(1増近傍山mj_np)と、前処理部120で得られた実現可能山mjのそれぞれについて、実現可能山mjの「1」の要素の何れか1つを「0(ゼロ)」とする実現可能山mj_nm(1減近傍山mj_nm)とを探索する。従って、山分け計画の精度を大きく落とすことなく、前処理部120で得られた実現可能山mjの集合Ccgに追加する列の探索する範囲を制限することができる。よって、本処理部130における処理負荷を軽減することができる。
(変形例)
<変形例1>
本実施形態では、近傍探索部134は、1増近傍山mj_npおよび1減近傍山mj_nmを探索し、探索した1増近傍山mj_npおよび1減近傍山mj_nmを、前処理部120で得られた実現可能山mjの集合Ccgに追加して、本処理部130で得られた実現可能山mjの集合CLS1とする場合を例に挙げて説明した。近傍探索部134における局所探索法は、生成された列(実現可能山mj)に対し、何度も適用することができる。
図7は、局所探索法による近傍探索を繰り返し行うことにより、本処理部130で得られた実現可能山mjの集合CLS1、CLS2、・・・、CLSnが増加する様子の一例を概念的に示す図である。
図7において、本処理部130で得られた実現可能山mjの集合CLS2は、本処理部130で得られた実現可能山mjの集合CLS1に対する1増近傍山集合Cnb_pおよび1減近傍山集合Cnb_mを探索して、本処理部130で得られた実現可能山mjの集合CLS1に追加することにより得られる。具体的に、本処理部130で得られた実現可能山mjの集合CLS2は、<近傍探索部134>および図6−1、図6−2のフローチャートの説明において、前処理部120で得られた実現可能山mjの集合Ccgを、本処理部130で得られた実現可能山mjの集合CLS1に、本処理部130で得られた実現可能山mjの集合CLS1を、本処理部130で得られた実現可能山mjの集合CLS2にそれぞれ置き替えることにより得られる。同様に、本処理部130で得られた実現可能山mjの集合CLSnは、本処理部130で得られた実現可能山mjの集合CLSn-1に対する1増近傍山集合Cnb_pおよび1減近傍山集合Cnb_mを探索して、本処理部130で得られた実現可能山mjの集合CLSn-1に追加することにより得られる。
前処理部120で得られた実現可能山mjの集合Ccgから見れば、前処理部120で得られた実現可能山mjの集合Ccgに対して追加される1増近傍山集合Cnb_pおよび1減近傍山集合Cnb_mは、第1近傍列、本処理部130で得られた実現可能山mjの集合CLS1に対して追加される1増近傍山集合Cnb_pおよび1減近傍山集合Cnb_mは、第2近傍列となる。この場合の第n近傍列のn(本処理部130で得られた実現可能山mjの集合CLS1、CLS2、・・・、CLSnのn)としては、例えば、実現可能山mjのサイズ(要素数)を採用することができる。
例えば、<近傍探索部134>の項で示した具体例のように、前処理部120で得られた実現可能山mj(列)が、mj=[1,0,1,0,1]Tであるとする。この場合、第1近傍列は、<近傍探索部134>の項で示した具体例の1増近傍山mj_npおよび1減近傍山mj_nmになる(mj_np=[1,1,1,0,1]T,[1,0,1,1,1]T、mj_nm=[0,0,1,0,1]T,[1,0,0,0,1]T,[1,0,1,0,0]T)。これらについての第2近傍列(第1近傍列に対する1増近傍山集合Cnb_pおよび1減近傍山mj_nm)は、mj_np=[1,1,1,1,1]T、mj_nm=[0,0,0,0,1]T,[0,0,1,0,0]T,[1,0,0,0,0]Tである。この場合、本処理部130で得られた実現可能山mjの集合CLS2には、前処理部120で得られた実現可能山mj(列)と、第1近傍列と、第2近傍列とが含まれる。
図8は、図2および図4に示した結果と同一の鋼材情報を用いて、本処理部130において前述した第2近傍列まで求める処理を行った結果の一例を表形式で示す図である。図8において、「Data」は、10通りの鋼材情報の識別番号であり、図2、図4に示した「Data」に対応する。|CLS1|は、本処理部130で得られた実現可能山mjの集合CLS1に含まれる実現可能山mj(列)の数であり、図4に示した|CLS1|に対応する。|CLS1|は、前述した第1近傍列まで探索することにより得られる実現可能山mj(列)の数である。VP(CLS1)は、本処理原問題導出部135により導出された原問題最適値VP(CLS1)であり、図4に示したVP(CLS1)に対応する。
|CLS2|は、本処理部130で得られた実現可能山mjの集合CLS2に含まれる実現可能山mj(列)の数である。|CLS2|は、前述した第2近傍列まで探索することにより得られる実現可能山mj(列)の数である。VP(CLS2)は、本処理原問題導出部135により導出された原問題最適値VP(CLS2)である。|Call|は、全ての実現可能山mjの集合Callに含まれる実現可能山mj(列)の数であり、図4に示した|Call|に対応する。VP(Call)は、全ての実現可能山mjの集合Callに対する原問題P(Call)の最適値(即ち、真の最適値)であり、図2、図4に示したVP(Call)に対応する。相対誤差は、真の最適値VP(Call)に対する、原問題最適値VP(CLS2)の相対誤差(={(VP(CLS1)−VP(Call))÷VP(Call)}×100または{(VP(CLS2)−VP(Call))÷VP(Call)}×100)を示す。尚、「/」は、前述した第2近傍列まで探索していないことを示す。
図4に示したように、Data1、5、7の鋼材情報に対しては、前述した第1近傍列までの探索では、相対誤差が残った。これに対し、図8に示すように、前述した第2近傍列まで探索すると、Data1、5、7の鋼材情報に対する相対誤差が「0(ゼロ)」になることが分かる。また、Data1、5、7の原問題最適値VP(CLS2)は、真の最適値VP(Call)に一致し、全ての鋼材情報について、原問題最適値VP(CLS1)またはVP(CLS2)は、真の最適値VP(Call)に一致することが分かる。
以上の他、既に得られている実現可能山mjの集合CLSnに含まれる実現可能山mjの最上段、最下段、および、隣接する2つの鋼材の間の少なくとも1つのうち、少なくとも何れか1つに、鋼材を少なくとも1つ追加した実現可能山mjであって、原問題P(C)の最適解を構成する実現可能山mjの候補となり得る実現可能山mjであれば、追加する鋼材の数や位置は、特に限定されない。また、既に得られている実現可能山mjの集合CLSnに含まれる実現可能山mjの少なくとも1つを取り除いた実現可能山mjであって、原問題P(C)の最適解を構成する実現可能山mjの候補となり得る実現可能山mjであれば、取り除く鋼材の数や位置は、特に限定されない。
<変形例2>
列生成法では、繰り返し処理(ステップS503〜S507)があるので、この繰り返し処理を高速に行うことが全体の処理時間を短くすることにつながる。この繰り返し処理内での主たる計算は、双対問題D(C)を解くための計算(ステップS503)と列生成子問題Sを解くための計算(ステップS504)である。列生成子問題Sは、0−1整数計画問題であるので、線形計画問題である双対問題D(C)よりも一般的に計算時間を要する。
そこで、本実施形態では、列生成子問題Sを解く際の好ましい例として、(22)式の制約式を追加することにより、列生成子問題Sの計算時間を短縮する場合を説明した。しかしながら、列生成子問題Sの計算時間を短縮する手法は、このような手法に限定されない。例えば、列生成子問題Sの計算の打ち切りの条件となる双対ギャップを、列生成子問題S(ステップS504)を実行する度に調整してもよい。
列生成子問題Sでは、双対問題D(C)を解くことにより得られた双対解psol[i]を用いて、被約費用(=cj−Pj)を最小化する問題を解く。双対解psol[i]の精度は、前述した繰り返し処理(ステップS503〜S507)が進行し、実現可能山mj(列)の集合Cに追加される実現可能山mjが増えるほど高まり、それに伴い、列生成子問題Sの最適解となる実現可能山mj(列)の被約費用(=cj−Pj)も「0(ゼロ)」に収束する。つまり、前述した繰り返し処理(ステップS503〜S507)の繰り返し回数が少ない初期の段階では、双対解psol[i]の精度の低いため、列生成子問題Sの最適精度を求めるのは、非効率である。
一方、前述した繰り返し処理(ステップS503〜S507)の繰り返し回数が多くなるほど、列生成部123で計算される最適解(山構成鋼材有無変数mj[i])から得られる実現可能山mjが、原問題Pの真の最適解の構成要素となる可能性が高まるので、双対解psol[i]の精度を高めることが求められる。従って、前回の計算において列生成部123で列生成子問題Sの最適解に基づいて得られる被約費用(=cj−Pj)に応じて、列生成子問題Sの計算の打ち切りの条件となる双対ギャップ({(上界値−下界値)÷上界値})を設定すればよい。
この場合、列生成子問題Sの計算では、双対ギャップが必ずしも「0(ゼロ)」とならなくとも、以下の(25)式に示すようにして、列生成子問題Sの計算の打ち切りの条件となる双対ギャップの値GSを設定し、双対ギャップがGS(GS以下)となった時点で、列生成子問題Sの計算を打ち切るのが、処理時間を低減する観点から、好ましい。
Figure 2019192018
(25)式において、|rcprv/k1|は、前回のステップS504の計算において導出される値であり、列生成子問題Sの求解結果である決定変数(山構成鋼材有無変数mj[i]、鋼材上下関係変数y[i1][i2]、および仮置き有無変数t[i])から求まる被約費用rcprv(=cj−Pj)をk1で割った値の絶対値である。なお、k1は、(4)式あるいは(19)式で用いた原問題P(C)の目的関数において、山数の評価に対する重み係数k1であり、もう一つの評価である仮置き数との相対的な比重により決められたものである。
例えば、列生成部123は、列生成子問題Sの計算の打ち切りの条件となる双対ギャップの値GS[%]を、(25)式に従って設定する。そして、列生成部123は、被約費用の絶対値|rcprv/k1|が、予め定められた閾値THSを上回る場合には、列生成子問題Sの計算を打ち切るための双対ギャップの値GSとして「1(=100%)」を用い、被約費用の絶対値|rcprv/k1|が、予め定められた閾値THS以下である場合には、列生成子問題Sの計算を打ち切るための双対ギャップの値GSとして、α・|rcprv/k1|を用いる。
この方法では、閾値THSの設定が重要で、例えばTHS=0.05程度とする。つまり、被約費用が、重み係数k1の数%まで小さくなったら、列生成子問題Sの計算の打ち切りの条件となる双対ギャップの値GSをα・|rcprv/k1|に切り替えるのが妥当である。閾値THSを大きくすると切り替えが早まり、計算時間は長くなるが解の精度は良くなる。一方、閾値THSを小さくしすぎるとその逆の現象が起こる。また、αは、基本的には1で良いが、0.5<α<1.5程度の範囲で微調整に用いる。
ここで、双対ギャップを規定する上界値及び下界値は、列生成部123(図5−1のステップS504)で列生成子問題Sを解く際に得られる上界値及び下界値である。上界値は、列生成子問題Sの実行可能解のうちの最良の解(最適解)を(21)式の目的関数JSに与えたときの当該目的関数JSの値である。下界値は、列生成子問題Sを分枝限定法等により解く際に使用する線形緩和問題の解のうち最も悪い解(最大値)を当該線形緩和問題の目的関数に与えたときの当該目的関数の値である。
列生成部123は、図5−1のステップS504で列生成子問題Sを解く際に、双対ギャップを導出する。また、列生成部123は、(25)式の計算を行うことにより、列生成子問題Sの計算の打ち切りの条件となる双対ギャップの値GSを導出して記憶する。列生成部123は、前回の列生成子問題Sの計算時に導出した双対ギャップが、(25)式の計算を行うことにより導出した双対ギャップの値GSになった時点で、列生成子問題Sの計算を打ち切り、その時点で得られている解(山構成鋼材有無変数mj[i]、鋼材上下関係変数y[i1][i2]、および仮置き有無変数t[i])を最適解とする。
尚、被約費用(=cj−Pj)が「0(ゼロ)」を超える状態で列生成子問題Sの計算が完了しないように、(22)式の制約式を加えた上で、本変形例2で説明した処理を行ってもよい。
<変形例3>
前述したように、仮置き有無変数t[i]を用いれば、仮置き数を厳密に評価することができるので好ましい。しかしながら、仮置き有無変数t[i]を用いずに、鋼材上下関係変数y[i1][i2]により、仮置き数を評価してもよい。このようにする場合、例えば、(16)式(仮置き変数定義制約式)は不要になる。また、(19)式の右辺第2項、(21)式の右辺第1項、および(22)式の左辺第2項の「k2・ΣiNt[i]」を「k2・Σ[i1,i2]Ry[i1][i2]」とする。
<変形例4>
本実施形態では、原問題P(C)が最小化問題である場合を例に挙げて説明した。しかしながら、原問題Pは、最大化問題であってもよい。原問題P(C)を最小化問題から最大化問題に変更することは、本実施形態の説明から容易に類推することができるが、以下に概要を説明する。
まず、原問題P(C)の目的関数は、列コストcjの総和が最大になるように実現可能山mjを選択することを目的とする関数であり、(3)式に代えて以下の(3´)式が用いられる。また、双対問題D(C)の制約式、目的関数として、(9)式、(11)式に代えて、それぞれ以下の(9´)式、(11´)式が用いられる。即ち、双対問題D(C)では、(9´)式の制約式を満足する範囲で(11´)式の目的関数Jの値を最小にする双対変数p[i]を、双対問題Dの最適解として導出する。また、列生成子問題Sの目的関数として、(21)式に代えて以下の(21´)式が用いられる。即ち、列生成子問題Sでは、(13)式〜(18)式、(22)式の制約式を満足する範囲で(21´)式の目的関数JSの値を最大にする決定変数(山構成鋼材有無変数mj[i]、鋼材上下関係変数y[i1][i2]、および仮置き有無変数t[i])を導出する。そして、ステップS505では、列判定部124は、被約費用(=Pj−cj)が「0」「0(ゼロ)」以下であるか否かを判定することになる。尚、実現可能山mjの列コストcjも最大化問題に合わせて定式化される。
Figure 2019192018
<変形例5>
本実施形態では、鋼材を搬送の対象とする場合を例に挙げて説明した。しかしながら、対象材は、必ずしも鋼材である必要はない。例えば、鋼材の代わりに、アルミニウム、チタン、または銅等の金属材を製造する金属製造プロセスに本実施形態を適用することができる。この場合、前述した説明において「鋼材」を「アルミニウム材」等の「金属材」に置き換えることができる。
また、工程間の置場として、2つの製造工程間の置場を対象とし、金属材として、半製品を対象としてもよいし、工程間の置場として、製造工程と出荷工程の間の置場を対象とし、金属材として、最終製品を対象としてもよい。この際に、複数の金属材をコンテナに収容して輸送、配置する場合には、金属材が収容されたコンテナを1つの鋼材として取り扱ってもよい。さらに、工程間の置場としては、金属製造プロセスにおける置場に限定されるものでなく、一般的な工程間の物流、搬送を対象としてもよい。物流分野では内容物に限定されずコンテナの搬送、配置でも適用できる。
(実施例)
次に、実施例を説明する。本実施例では、特許文献1に記載の技術を用いた場合には、実現可能山を列挙できないような問題、および、実現可能山は列挙できるが、その後の集合分割問題が求解できないような問題について、本実施形態の手法を適用し、その効果を調べた。ここで、実現可能山を列挙できないとは、実現可能山を列挙する計算過程で主メモリの容量が上限に達し、計算続行が不可能になることを指す。また、集合分割問題が求解できないとは、最適解の計算過程で主メモリの容量が上限に達し、計算続行が不可能になることを指す。
本実施例では、以下の計算環境で計算を行った。
プロセッサ:Intel(登録商標)Xeon(登録商標)CPU E5-2687W@3.1GHz(2プロセッサ)
実装メモリ(RAM):128GB
OS:Windows7(登録商標) Professional 64ビットオペレーションシステム
最適計算ソフト:ILOG CPLEX(登録商標) Cplex11.0 Concert25
図9に、山分け計画の作成結果の一例を示す。ここでは、全体集合Nの要素の数nが50(n=50)の、相互に異なる16通りの鋼材情報について、本実施形態で説明した手法(つまり、第1近傍列まで近傍探索する手法)と、特許文献1に記載の手法とを比較した。計算時間が300秒になっても最適解が得られなかった場合には、その時点で計算を打ち切った。このように計算を打ち切った場合、当該計算を打ち切った時点で得られている解と最適解とのギャップ(={(上界値−下界値)÷上界値}×100)により解を評価するものとした。
図9において、「Data」は、16通りの鋼材情報の識別番号である。比較例は、特許文献1に記載の手法による結果であることを示し、発明例は、本実施形態で説明した手法による結果であることを示す。時間は、計算時間を示し、ギャップは、前述した、計算を打ち切った時点で得られている解と最適解とのギャップを示す。「Av.」は、平均値を示す。また、「A.T」は、制限時間である300秒以内に実行可能解が得られなかったことを示し、「L.M」は、メモリ不足のために計算ができなかったことを示す。
図9において、Data2、6〜10、16は、特許文献1に記載の手法では解すら得られない難問題であったが、本実施形態の手法では、実行可能解が求められ、殆どのケースで最適解が得られていることが分かる。
以上のように本実施形態の手法では、山分け問題に集合分割問題を適用する際、メモリ不足等により、実現可能山mj(列)の列挙すらできない様な大規模な問題に対し、列生成法を適用することが分かる。また、前述したように、列生成法を、山分け問題のような0−1整数計画問題に適用する際には、0−1条件に起因する誤差が避けられない(図2に示した相対誤差を参照)。これに対し、本実施形態の手法では、列生成処理で得られた列群の近傍にある最適解候補列を効率的に探索することにより、実操業の規模の問題にも対応することができ、大規模な問題に対しても、最適な山分け計画を立案することができる。
図10は、本実施形態で説明した手法と、<変形例2>に記載の手法における計算時間の一例を表形式で示す図である。ここでは、それぞれの手法において最適解が得られるまで計算を行った。
図10において、「Data」は、鋼材情報の識別番号であり、図9に示した「Data」に対応する。発明例1は、本実施形態の手法における計算時間(秒)を示す。即ち、発明例1では、(25)式を用いていない。発明例2は、<変形例2>に記載の手法における計算時間(秒)を示す。発明例2では、双対ギャップが(25)式に示すGSとなった時点で、列生成子問題Sの計算を打ち切る。
図10に示すように、<変形例2>に記載の手法を適用することで、計算時間を半分程度に短縮することができることが分かる。
<その他の変形例>
以上説明した本実施形態及び各変形例は、コンピュータがプログラムを実行することによって実現することができる。また、前記プログラムを記録したコンピュータ読み取り可能な記録媒体及び前記プログラム等のコンピュータプログラムプロダクトも本実施形態及び各変形例として適用することができる。記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、以上説明した本実施形態及び各変形例は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
(請求項との関係)
以下に、請求項と実施形態との対応関係の一例について説明する。請求項の記載が実施形態の記載に限定されないことは、変形例等において説明した通りである。
<請求項1、2>
所定の制約は、例えば、(17)式、(18)式により実現される。
決定変数(2値変数)は、例えば、決定変数x[j]により実現される。
実現可能山に対する前記対象材の山立てについての評価値である列コストは、例えば、列コストcj(山数c1j、仮置き数c2j)により実現される。
原問題の目的関数は、例えば、(4)式により実現される。
列生成手段は、例えば、列生成部123により実現される。候補山は、例えば、列生成部123により導出される山構成鋼材有無変数mj[i]に基づく実現可能山mjにより実現される。
探索手段は、例えば、近傍探索部134により実現される。
当該集合に含まれる各候補山について、対象材の一部が異なる構成からなる近傍の前記実現可能山は、例えば、1増近傍山集合Cnb_p、1減近傍山集合Cnb_mに追加される1増近傍山mj_np、1減近傍山mj_nbにより実現される(<変形例1>等も参照)。
第1の原問題導出手段は、例えば、本処理原問題導出部135により実現される。
出力手段は、例えば、出力部140により実現される。
<請求項3>
増近傍山は、例えば、1増近傍山集合Cnb_pに追加される1増近傍山mj_npにより実現され、減近傍山は、例えば、1減近傍山集合Cnb_mに追加される1減近傍山mj_nbにより実現される。
<請求項4>
請求項4は、<変形例1>に基づくものである。
第1の増近傍山〜第nの増近傍山は、例えば、本処理部130で得られた実現可能山mjの集合CLS1〜CLSnに含まれる1増近傍山集合Cnb_pにより実現される。
第1の減近傍山〜第nの減近傍山は、例えば、本処理部130で得られた実現可能山mjの集合CLS1〜CLSnに含まれる1減近傍山集合Cnb_mにより実現される。
<請求項5>
制約式は、例えば、(2)式の制約式により実現される。
目的関数は、例えば、(3)式により実現される。
前記実現可能山に対する列コストは、例えば、列コストcjにより実現され、実現可能山の数は、例えば、山数c1jにより実現され、仮置き数は、例えば、仮置き数c2jにより実現される。
<請求項6>
双対解導出手段は、例えば、双対解導出部122により実現される。
双対解は、例えば、双対解psol[i]により実現される。
列判定手段は、例えば、列判定部124により実現される。
列追加手段は、例えば、列追加部125により実現される。
<請求項7>
第2の原問題導出手段は、例えば、前処理原問題導出部132により実現される。
処理実施判定手段は、例えば、本処理実施判定部133により実現される。
前記第2の原問題導出手段により導出された前記原問題の最適値は、例えば、原問題最適値VP(Ccg)により実現される。
前記列生成手段により導出された前記候補山が、前記収束要件を満足する山であることが前記列判定手段により判定された時点で前記双対解導出手段により導出されている前記双対解が得られたときの前記双対問題の目的関数の値である双対最適値は、例えば、双対最適値VD(Ccg)により実現される。
<請求項8>
前記実現可能山の集合に含まれる前記候補山と異なる構成の前記実現可能山に対する列コストと、当該実現可能山に対する双対コストとを比較することは、例えば、本処理実施判定部133が、原問題最適値VP(Ccg)から双対最適値VD(Ccg)を減算することにより実現される(ステップS510も参照)。
前記実現可能山に対する双対コストは、例えば、双対コストPjにより実現される((9)式の左辺等も参照)。
前記山構成対象材有無変数は、例えば、山構成鋼材有無変数mj[i]により実現される。
<請求項9>
制約式は、例えば、(9)式により実現される。
目的関数は、例えば、(11)式により実現される。
前記実現可能山に対する双対コストは、例えば、双対コストPjにより実現される((9)式の左辺等も参照)。
当該実現可能山に対応する山構成対象材有無変数は、例えば、山構成鋼材有無変数mj[i]により実現される。
双対変数は、例えば、p[i]により実現される。
<請求項10>
制約式は、例えば、(13)式〜(18)式により実現される(<変形例3>等も参照)。
目的関数は、例えば、(21)式により実現される。
前記対象材上下関係変数は、例えば、鋼材上下関係変数y[i1][i2]により実現される。
前記山構成対象材有無変数は、例えば、山構成鋼材有無変数mj[i]により実現される。
<請求項11>
制約式は、例えば、(22)式により実現される(<変形例3>等も参照)。
<請求項12>
請求項12は、<変形例2>に基づくものである。
制限値は、例えば、GSにより実現される。
前記列生成子問題の前回の解である前記山構成対象材有無変数に基づく前記候補山である前記実現可能山のコストから当該実現可能山に対する前記双対コストを減算した値の絶対値は、例えば、|rcprv|により実現される。
所定値は、例えば、「1」により実現される。
<請求項13>
仮置き有無変数は、例えば、仮置き有無変数t[i]により実現される。
前記候補山となる前記実現可能山の列コストは、仮置き有無変数を用いて表されることは、例えば、(19)式により実現される。
前記所定の制約を表す制約式が、仮置き有無変数を更に用いて表されることは、例えば、(16)式により実現される。
<請求項14>
初期解として与えられた実現可能山の集合は、例えば、初期列集合設定部121により設定される実現可能山mjの集合Cの初期値により実現される。
100:鋼材の山分け計画作成装置、110:鋼材情報取得部、120:前処理部、121:初期列集合設定部、122:双対解導出部、123:列生成部、124:列判定部、125:列追加部、130:本処理部、131:双対最適値取得部、132:前処理原問題導出部、133:本処理実施判定部、134:近傍探索部、135:本処理原問題導出部、140:出力部

Claims (16)

  1. 複数の対象材に対して山分け計画を作成する問題を集合分割問題とし、当該集合分割問題を、列生成法を用いて解くことにより山分け計画を作成する山分け計画作成装置であって、
    所定の制約を満たす様に積まれた実現可能山を解として採用するか否か決定する2値変数を決定変数として、当該実現可能山に対する前記対象材の山立てについての評価値である列コストを含む目的関数の値が最小または最大になる前記決定変数を求めることにより、前記複数の対象材を重複することなく且つ漏れなく含む前記実現可能山の最適な組み合わせを求める問題を原問題とし、
    前記原問題の最適解を構成する実現可能山の候補である候補山を生成する列生成子問題の最適解を導出する列生成手段と、
    前記列生成手段により導出された前記候補山の集合が、所定の収束要件を満足しない場合には、当該集合に含まれる各候補山について、対象材の一部が異なる構成からなる近傍の前記実現可能山を探索し、当該探索した近傍の実現可能山を、前記候補山として追加する探索手段と、
    前記列生成手段により導出された候補山と、前記探索手段により追加された候補山とを含む前記実現可能山の集合に基づいて前記原問題を解くことにより、当該原問題の最適値を導出する第1の原問題導出手段と、
    前記第1の原問題導出手段により導出された前記原問題の最適値に対応する前記実現可能山の組み合わせを示す情報を、前記原問題の最適解を示す情報として出力する出力手段と、
    を有することを特徴とする山分け計画作成装置。
  2. 前記探索手段は、前記実現可能山の集合に含まれる前記候補山のそれぞれについて、少なくとも1つの増近傍山と、少なくとも1つの減近傍山との、少なくとも何れか一方を探索し、
    前記増近傍山は、前記実現可能山の集合に含まれる前記候補山の最上段、最下段、および、隣接する2つの対象材の間の少なくとも1つのうち、少なくとも何れか1つに、対象材を少なくとも1つ追加した前記実現可能山であって、前記原問題の最適解を構成する実現可能山の候補となり得る前記実現可能山であり、
    前記減近傍山は、前記実現可能山の集合に含まれる前記候補山を構成する対象材の少なくとも1つを取り除いた前記実現可能山であって、前記原問題の最適解を構成する実現可能山の候補となり得る前記実現可能山であることを特徴とする請求項1に記載の山分け計画作成装置。
  3. 前記増近傍山は、前記実現可能山の集合に含まれる前記候補山の最上段、最下段、または、隣接する2つの対象材の間の何れか1つに、対象材を1つ追加した前記実現可能山であって、前記原問題の最適解を構成する実現可能山の候補となり得る前記実現可能山であり、
    前記減近傍山は、前記実現可能山の集合に含まれる前記候補山を構成する対象材の1つを取り除いた前記実現可能山であって、前記原問題の最適解を構成する実現可能山の候補となり得る前記実現可能山であることを特徴とする請求項2に記載の山分け計画作成装置。
  4. 前記探索手段は、前記増近傍山として、第1の増近傍山〜第nの増近傍山を探索すると共に、前記減近傍山として、第1の減近傍山〜第nの減近傍山を探索し、
    nは、2以上の整数であり、
    前記第1の増近傍山は、前記列生成手段により導出された前記候補山が、前記収束要件を満足する山になった時点における前記実現可能山の集合に含まれる前記候補山の最上段、最下段、または、隣接する2つの対象材の間の何れか1つに、対象材を1つ追加した前記実現可能山であって、前記原問題の最適解を構成する実現可能山の候補となり得る前記実現可能山であり、
    前記第nの増近傍山は、第n−1増近傍山が追加された時点における前記実現可能山の集合に含まれる前記候補山の最上段、最下段、または、隣接する2つの対象材の間の何れか1つに、対象材を1つ追加した前記実現可能山であって、前記原問題の最適解を構成する実現可能山の候補となり得る前記実現可能山であり、
    前記第1の減近傍山は、前記列生成手段により導出された前記候補山が、前記収束要件を満足する山になった時点における前記実現可能山の集合に含まれる前記候補山を構成する対象材の1つを取り除いた前記実現可能山であって、前記原問題の最適解を構成する実現可能山の候補となり得る前記実現可能山であり、
    前記第nの減近傍山は、第n−1減近傍山が追加された時点における前記実現可能山の集合に含まれる前記候補山を構成する対象材の1つを取り除いた前記実現可能山であって、前記原問題の最適解を構成する実現可能山の候補となり得る前記実現可能山であることを特徴とする請求項3に記載の山分け計画作成装置。
  5. 前記原問題は、前記複数の対象材のそれぞれについて、前記実現可能山の集合の中から、当該対象材を含む前記実現可能山が必ず1つ選択されるという制約を表す制約式であって、前記決定変数を用いて表される制約式と、当該原問題の前記目的関数と、を用いて、当該制約式を満足する範囲で当該目的関数の値が最小になる前記決定変数を決定する0−1整数計画問題であり、
    前記2値変数は、複数の前記実現可能山のそれぞれについて、当該実現可能山を解として採用する場合に「1」となり、当該実現可能山を解として採用しない場合に「0(ゼロ)」となる0−1変数であり、
    前記原問題の前記目的関数は、前記実現可能山の集合に含まれる前記実現可能山に対する前記列コストの総和を求める目的関数であって、前記決定変数および前記実現可能山の列コストを用いて表される目的関数であり、
    前記実現可能山に対する列コストは、当該実現可能山の数および仮置き数を含み、
    前記仮置き数は、払出山に配置する前に、仮置場に仮置きする前記対象材の数であり、
    前記払出山は、前記対象材により構成される山であって、次工程に払い出す最終的な山姿となった山であることを特徴とする請求項1〜4の何れか1項に記載の山分け計画作成装置。
  6. 前記原問題の線形緩和問題を主問題とした場合の双対問題の最適解である双対解を導出する双対解導出手段と、
    前記列生成手段により導出された前記候補山が、前記収束要件を満足する山であるか否かの判定である列判定を行う列判定手段と、
    前記列生成手段により導出された前記候補山が、前記収束要件を満足する山でないことが前記列判定手段により判定されると、前記列生成手段により生成された前記候補山を前記実現可能山の集合に追加する列追加手段と、を更に有し、
    前記列生成手段により導出された前記候補山が、前記収束要件を満足する山であることが前記列判定手段により判定されるまで、前記双対解導出手段による前記双対解の導出と、前記列生成手段による前記列生成子問題の最適解の導出と、前記列判定と、前記列追加手段による前記候補山の追加と、を繰り返す収束計算が実行され、
    前記探索手段は、前記列生成手段により導出された前記候補山が、前記収束要件を満足する山であることが前記列判定手段により判定された後に、前記列生成手段により導出された前記候補山の集合に含まれる各候補山について、対象材の一部が異なる構成からなる近傍の前記実現可能山を探索し、当該探索した近傍の実現可能山を、前記候補山として追加し、
    前記列生成子問題は、前記双対解と、前記所定の制約とを用いて、前記実現可能山の集合に追加する前記候補山を求める問題であることを特徴とする請求項1〜5の何れか1項に記載の山分け計画作成装置。
  7. 前記列生成手段により導出された前記候補山が、前記収束要件を満足する山であることが前記列判定手段により判定された時点における前記実現可能山の集合に基づいて前記原問題を解くことにより、当該原問題の最適値を導出する第2の原問題導出手段と、
    前記第2の原問題導出手段により導出された前記原問題の最適値と、前記列生成手段により導出された前記候補山が、前記収束要件を満足する山であることが前記列判定手段により判定された時点で前記双対解導出手段により導出されている前記双対解が得られたときの前記双対問題の目的関数の値である双対最適値と、を比較した結果に基づいて、前記探索手段による処理を実行するか否かを判定する処理実施判定手段と、
    前記探索手段は、前記処理実施判定手段により、前記探索手段による処理を実行すると判定された場合に、前記探索および前記追加を行い、
    前記出力手段は、前記処理実施判定手段により、前記探索手段による処理を実行しないことが前記列判定手段により判定された場合には、前記第2の原問題導出手段により導出された前記原問題の最適値に対応する前記実現可能山の組み合わせを示す情報を、前記原問題の最適解を示す情報として出力することを特徴とする請求項6に記載の山分け計画作成装置。
  8. 前記探索手段は、前記実現可能山の集合に含まれる前記候補山と異なる構成の前記実現可能山に対する前記列コストと、当該実現可能山に対する双対コストとを比較した結果に基づいて、当該実現可能山が、前記原問題の最適解を構成する実現可能山の候補となり得る前記実現可能山であるか否かを判定し、
    前記実現可能山に対する双対コストは、前記対象材に対する双対変数の値と、当該対象材と当該実現可能山に対応する山構成対象材有無変数との積の、前記複数の対象材についての総和で表され、
    前記双対変数は、前記双対問題における決定変数であり、
    前記山構成対象材有無変数は、前記対象材毎に定められる0−1変数であって、前記実現可能山に前記対象材が含まれる場合に「1」となり、そうでない場合に「0(ゼロ)」となる0−1変数であることを特徴とする請求項6または7に記載の山分け計画作成装置。
  9. 前記双対問題は、前記実現可能山の集合に含まれる前記実現可能山のそれぞれのコストが、当該実現可能山に対する双対コスト以上であるという制約を表す制約式であって、当該実現可能山の列コスト、当該実現可能山に対応する山構成対象材有無変数、および双対変数を用いて表される制約式と、当該双対問題の前記目的関数と、を用いて、当該制約式を満足する範囲で当該目的関数の値が最大になる当該双対変数の値を前記双対解として決定する線形計画問題であり、
    前記双対問題の目的関数は、前記複数の対象材についての当該双対変数の総和を求める目的関数であって、当該双対変数を用いて表される目的関数であり、
    前記双対変数は、前記対象材毎に定められる変数であり、
    前記実現可能山に対する双対コストは、前記対象材に対する前記双対変数の値と、当該対象材と当該実現可能山に対応する山構成対象材有無変数との積の、前記複数の対象材についての総和で表され、
    前記山構成対象材有無変数は、前記対象材毎に定められる0−1変数であって、前記実現可能山に前記対象材が含まれる場合に「1」となり、そうでない場合に「0(ゼロ)」となる0−1変数であることを特徴とする請求項8に記載の山分け計画作成装置。
  10. 前記列生成子問題は、前記所定の制約を表す制約式であって、前記山構成対象材有無変数および対象材上下関係変数を用いて表される制約式と、前記候補山となる前記実現可能山の列コストから、当該実現可能山に対する前記双対コストを減算した値を求める目的関数であって、前記双対変数、当該山構成対象材有無変数、および当該対象材上下関係変数を用いて表される目的関数と、を用いて、当該制約式を満足する範囲で当該目的関数の値が最小になる当該山構成対象材有無変数および当該対象材上下関係変数を決定する0−1整数計画問題であり、
    前記対象材上下関係変数は、2つの前記対象材の組み合わせにより定まる0−1変数であって、同一の払出山における2つの前記対象材の上下関係を表す0−1変数であり、
    前記払出山は、前記対象材により構成される山であって、次工程に払い出す最終的な山姿となった山であることを特徴とする請求項9に記載の山分け計画作成装置。
  11. 前記列生成子問題は、前記候補山となる前記実現可能山のコストが、当該実現可能山に対する前記双対コスト以下であることを表す制約式を更に有する問題であり、
    前記列生成手段は、前記列生成子問題の実行可能解が得られた時点で、当該列生成子問題に対する計算を打ち切り、当該実行可能解である前記山構成対象材有無変数に基づいて、前記候補山を生成することを特徴とする請求項10に記載の山分け計画作成装置。
  12. 前記列生成手段は、前記列生成子問題における上界値および下界値に基づいて双対ギャップを導出し、当該双対ギャップが、制限値以下であると判定すると、当該列生成子問題に対する計算を打ち切り、その時点で得られている前記列生成子問題の解である前記山構成対象材有無変数に基づいて、前記候補山を生成し、
    前記制限値は、前記列生成子問題の前回の解である前記山構成対象材有無変数に基づく前記候補山である前記実現可能山のコストから当該実現可能山に対する前記双対コストを減算した値の絶対値に応じて、所定値、または、当該絶対値に応じた値をとることを特徴とする請求項10または11に記載の山分け計画作成装置。
  13. 前記所定の制約を表す制約式は、仮置き有無変数を更に用いて表され、
    前記候補山となる前記実現可能山に対する前記列コストは、仮置き有無変数を用いて表され、
    前記仮置き有無変数は、前記対象材毎に定められる0−1変数であって、前記対象材を、前記払出山に配置する前に、仮置場に仮置きする場合に「1」となり、そうでない場合に「0(ゼロ)」となる0−1変数であることを特徴とする請求項10〜12の何れか1項に記載の山分け計画作成装置。
  14. 前記原問題は、前記2値変数を決定変数として、前記列コストと、初期解として与えられた実現可能山の集合とを用いて、前記決定変数および前記列コストを含む目的関数の値が最小または最大になる前記決定変数を求めることにより、前記複数の対象材を重複することなく且つ漏れなく含む前記実現可能山の最適な組み合わせを求める問題であることを特徴とする請求項1〜13の何れか1項に記載の山分け計画作成装置。
  15. 複数の対象材に対して山分け計画を作成する問題を集合分割問題とし、当該集合分割問題を、列生成法を用いて解くことにより山分け計画を作成する山分け計画作成方法であって、
    所定の制約を満たす様に積まれた実現可能山を解として採用するか否か決定する2値変数を決定変数として、当該実現可能山に対する前記対象材の山立てについての評価値である列コストを含む目的関数の値が最小または最大になる前記決定変数を求めることにより、前記複数の対象材を重複することなく且つ漏れなく含む前記実現可能山の最適な組み合わせを求める問題を原問題とし、
    前記原問題の最適解を構成する実現可能山の候補である候補山を生成する列生成子問題の最適解を導出する列生成ステップと、
    前記列生成ステップにより導出された前記候補山の集合が、所定の収束要件を満足しない場合には、当該集合に含まれる各候補山について、対象材の一部が異なる構成からなる近傍の前記実現可能山を探索し、当該探索した近傍の実現可能山を、前記候補山として追加する探索ステップと、
    前記列生成ステップにより導出された候補山と、前記探索ステップにより追加された候補山とを含む前記実現可能山の集合に基づいて前記原問題を解くことにより、当該原問題の最適値を導出する第1の原問題導出ステップと、
    前記第1の原問題導出ステップにより導出された前記原問題の最適値に対応する前記実現可能山の組み合わせを示す情報を、前記原問題の最適解を示す情報として出力する出力ステップと、
    を有することを特徴とする山分け計画作成方法。
  16. 請求項1〜14の何れか1項に記載の山分け計画作成装置の各手段としてコンピュータを機能させることを特徴とするプログラム。
JP2018085472A 2018-04-26 2018-04-26 山分け計画作成装置、山分け計画作成方法、およびプログラム Active JP7024580B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018085472A JP7024580B2 (ja) 2018-04-26 2018-04-26 山分け計画作成装置、山分け計画作成方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018085472A JP7024580B2 (ja) 2018-04-26 2018-04-26 山分け計画作成装置、山分け計画作成方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2019192018A true JP2019192018A (ja) 2019-10-31
JP7024580B2 JP7024580B2 (ja) 2022-02-24

Family

ID=68390194

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018085472A Active JP7024580B2 (ja) 2018-04-26 2018-04-26 山分け計画作成装置、山分け計画作成方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP7024580B2 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1095535A (ja) * 1996-07-31 1998-04-14 Sumitomo Metal Mining Co Ltd 製品の仕分け方法及び仕分け装置
JP2007084201A (ja) * 2005-09-21 2007-04-05 Jfe Steel Kk スラブヤードの置場管理方法および装置
WO2012043217A1 (ja) * 2010-09-28 2012-04-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数の要素をグループ化する方法、プログラムおよび装置
CN103824176A (zh) * 2014-02-27 2014-05-28 东北大学 一种提高热轧板坯库板坯存取效率的控制方法
JP2015090532A (ja) * 2013-11-05 2015-05-11 新日鐵住金株式会社 キャスト計画立案装置、方法及びプログラム
JP2016081186A (ja) * 2014-10-14 2016-05-16 新日鐵住金株式会社 鋼材の山分け計画方法、装置及びプログラム
JP2017040985A (ja) * 2015-08-17 2017-02-23 新日鐵住金株式会社 鋼材の山分け計画立案装置、鋼材の山分け計画立案方法、およびプログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1095535A (ja) * 1996-07-31 1998-04-14 Sumitomo Metal Mining Co Ltd 製品の仕分け方法及び仕分け装置
JP2007084201A (ja) * 2005-09-21 2007-04-05 Jfe Steel Kk スラブヤードの置場管理方法および装置
WO2012043217A1 (ja) * 2010-09-28 2012-04-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数の要素をグループ化する方法、プログラムおよび装置
JP2015090532A (ja) * 2013-11-05 2015-05-11 新日鐵住金株式会社 キャスト計画立案装置、方法及びプログラム
CN103824176A (zh) * 2014-02-27 2014-05-28 东北大学 一种提高热轧板坯库板坯存取效率的控制方法
JP2016081186A (ja) * 2014-10-14 2016-05-16 新日鐵住金株式会社 鋼材の山分け計画方法、装置及びプログラム
JP2017040985A (ja) * 2015-08-17 2017-02-23 新日鐵住金株式会社 鋼材の山分け計画立案装置、鋼材の山分け計画立案方法、およびプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黒川 哲明: "集合分割問題解法によるスラブ山分け問題求解技術開発", 計測自動制御学会論文集 第54巻 第2号, vol. 第54巻第2号, JPN6021044634, 26 February 2018 (2018-02-26), JP, pages 298 - 306, ISSN: 0004639476 *

Also Published As

Publication number Publication date
JP7024580B2 (ja) 2022-02-24

Similar Documents

Publication Publication Date Title
JP6838353B2 (ja) 鋼材の山分け計画作成装置、鋼材の山分け計画作成方法、およびプログラム
Mauri et al. An adaptive large neighborhood search for the discrete and continuous berth allocation problem
Kachitvichyanukul et al. Two solution representations for solving multi-depot vehicle routing problem with multiple pickup and delivery requests via PSO
Hemmati et al. An effective heuristic for solving a combined cargo and inventory routing problem in tramp shipping
JP2008260630A (ja) ヤードの操業計画立案方法、装置、及びプログラム
JP5365759B1 (ja) ヤード管理装置、ヤード管理方法およびコンピュータプログラム
Zhang et al. Location assignment for outbound containers with adjusted weight proportion
JP5549193B2 (ja) 搬送制御方法、搬送制御装置およびコンピュータプログラム
Jiang et al. Short-term space allocation for storage yard management in a transshipment hub port
JP6390331B2 (ja) 鋼材の山分け計画方法、装置及びプログラム
Kofler et al. Affinity based slotting in warehouses with dynamic order patterns
Zhang et al. Tree search procedures for the blocks relocation problem with batch moves
JP2007137612A (ja) 鋼材の山分け計画方法、装置、及びコンピュータプログラム
JP5434267B2 (ja) 搬送制御方法、搬送制御装置およびプログラム
JP6658372B2 (ja) ヤード管理装置、ヤード管理方法、およびプログラム
JP2019192018A (ja) 山分け計画作成装置、山分け計画作成方法、およびプログラム
Raggl et al. Solving a real world steel stacking problem
Wang et al. Robust optimization for the integrated berth allocation and quay crane assignment problem
JP2018100166A (ja) ヤード管理装置、ヤード管理方法、およびプログラム
Zhang et al. Stowage planning in multiple ports with shifting fee minimization
JP2017040985A (ja) 鋼材の山分け計画立案装置、鋼材の山分け計画立案方法、およびプログラム
JP6954218B2 (ja) 鋼材の山分け計画作成装置、鋼材の山分け計画作成方法、およびプログラム
JP2020064497A (ja) ヤード管理装置、ヤード管理方法、およびプログラム
JP2018150135A (ja) ヤード管理装置、ヤード管理方法、およびプログラム
JP7099314B2 (ja) 山分け計画作成装置、山分け計画作成方法、およびプログラム

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: 20211029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211210

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: 20220111

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220124

R151 Written notification of patent or utility model registration

Ref document number: 7024580

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151