JP2016118867A - 処理装置、処理方法、及び、プログラム - Google Patents

処理装置、処理方法、及び、プログラム Download PDF

Info

Publication number
JP2016118867A
JP2016118867A JP2014257219A JP2014257219A JP2016118867A JP 2016118867 A JP2016118867 A JP 2016118867A JP 2014257219 A JP2014257219 A JP 2014257219A JP 2014257219 A JP2014257219 A JP 2014257219A JP 2016118867 A JP2016118867 A JP 2016118867A
Authority
JP
Japan
Prior art keywords
logical
logical variable
variable
sum
value
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
JP2014257219A
Other languages
English (en)
Other versions
JP6548209B2 (ja
Inventor
弘揮 ▲柳▼澤
弘揮 ▲柳▼澤
Hiroki Yanagisawa
丈晴 白髪
Takeharu Shiraga
丈晴 白髪
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2014257219A priority Critical patent/JP6548209B2/ja
Priority to US14/974,330 priority patent/US20160179471A1/en
Publication of JP2016118867A publication Critical patent/JP2016118867A/ja
Application granted granted Critical
Publication of JP6548209B2 publication Critical patent/JP6548209B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Operations Research (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

【課題】従来、所定の条件が成立した場合に論理変数に一意の論理値を割り当てるInference Ruleが知られているのみであり、最大充足割当問題の処理負担を更に低減するために新しい簡略化手法が必要である。【解決手段】それぞれが少なくとも1つの論理変数に基づく複数の条件式のうち、偽となる条件式に対応付けられた重みの和を最小化する問題を処理する処理装置であって、第1論理変数および第2論理変数が予め定められた論理関係を有すると仮定した場合における重みの和の境界値を算出する算出部と、境界値が予め定められた条件を満たす場合に、複数の条件式における第1論理変数を、第2論理変数を用いた論理式に置換する置換部と、を備える処理装置を提供する。【選択図】図1

Description

本発明は、処理装置、処理方法、及び、プログラムに関する。
複数の論理変数を含む複数の論理式(Clause)の重み和を最大化する論理変数の割当を解く最大充足割当問題(MAX SAT)が知られている。MAX SATは、論理変数に論理値を割り当てて子問題を生成し、子問題を再帰的に解く分岐限定法(Branch−and−bound)により解くことができる。
しかし、問題のサイズが大きくなると子問題の数が指数関数的に増加するので、解を得るのにより多くの処理リソースを要する。そこで、処理量を低減するためにInference Ruleと呼ばれる子問題の簡略化処理の手法が提案されている(非特許文献1〜6)。
[非特許文献1]N. Bansal, V. Raman, Upper Bounds for MaxSat: Further improved, in: ISAAC, 1999, pp. 247-258.
[非特許文献2]R. Niedermeier, P. Rossmanith, New upper bounds for maximum satisfiability, J. Algorithms 36 (1) (2000) 63-88.
[非特許文献3]T. Alsinet, F. Manya, and J. Planes. Improved branch and bound algorithms for max sat. In sixth International Conference on Theory and Applications of Satisfiability Testing, pages 408-415,2003.
[非特許文献4]Javier Larrosa, Federico Heras, Simon de Givry: A logical approach to efficient Max-SAT solving. Artif. Intell. 172(2-3): 204-233 (2008)
[非特許文献5]Federico Heras, Javier Larrosa: A Max-SAT Inference-Based Pre-processing for Max-Clique. SAT 2008: 139-152
[非特許文献6]Toshihide Ibaraki, Takashi Imamichi, Yuichi Koga, Hiroshi Nagamochi, Koji Nonobe, Mutsunori Yagiura: Efficient branch-and-bound algorithms for weighted MAX-2-SAT. Math. Program. 127(2): 297-343 (2011)
しかし、従来、所定の条件が成立した場合に論理変数に一意の論理値を割り当てるInference Ruleが知られているのみであり、最大充足割当問題の処理負担を更に低減するために新しい簡略化手法が必要である。
本発明の第1の態様においては、それぞれが少なくとも1つの論理変数に基づく複数の条件式のうち、予め定められた論理値をとる条件式に対応付けられた重みの和を最大化する問題を処理する処理装置であって、第1論理変数および第2論理変数が予め定められた論理関係を有すると仮定した場合における重みの和の境界値を算出する算出部と、境界値が予め定められた条件を満たす場合に、複数の条件式における第1論理変数を、第2論理変数を用いた論理式に置換する置換部と、を備える処理装置、当該処理装置を用いた処理方法、及び、当該処理装置に用いるプログラムを提供する。
なお、上記の発明の概要は、本発明の特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
本実施形態の処理装置10のブロック図を示す。 Branch−and−Boundの処理の一例を示す。 本実施形態による簡略化処理の概略を示す。 本実施形態の処理装置10による処理フローを示す。 S300の具体的な処理内容の一例を示す。 S330の具体的な処理内容の一例を示す。 本実施形態における第1の簡略化処理の概要を示す。 S350の具体的な処理内容の一例を示す。 本実施形態の対象となる最大充足割当問題の一例を示す。 本実施形態における第2の簡略化処理の一例を示す。 コンピュータ1900のハードウェア構成の一例を示す。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本実施形態に係る処理装置10のブロック図を示す。処理装置10は、複数の条件式のうち予め定められた論理値をとる条件式に対応付けられた重みの和を最大化する問題を処理する。
本実施形態では、処理装置10は、第1論理値(例えば、偽)となる条件式の重みの和を最小化する問題を解くものとする。この問題は、第1論理値の否定となる第2論理値(例えば、真)の条件式の重み和を最大化する問題と同義である。処理装置10は、問題取得部110、算出部120、置換部130、判定部140、子問題生成部150、解生成部160、及び、出力部190を備える。
問題取得部110は、処理装置10の処理対象となる問題を取得する。例えば、問題取得部110は、データベース20等からそれぞれが少なくとも1つの論理変数に基づき、それぞれが重みを有する複数の条件式を含む最大充足割当問題を取得する。問題取得部110は、取得した問題を算出部120に供給する。
算出部120は、問題が簡略化できるかを判断するために、所定の条件において問題から得られる重みの和の境界値を算出する。例えば、算出部120は、問題の複数の条件式に含まれる第1論理変数及び第2論理変数が予め定められた論理関係(例えば、第1論理変数≠第2論理変数)を有すると仮定した場合において、予め定められた論理値(例えば、第1論理値)となる条件式の重みの和の境界値を算出する。算出部120は、問題から派生する子問題(両者を含めて指す場合は「子問題等」とする)についても境界値を算出する。算出部120は、算出した境界値を置換部130に供給する。
また、算出部120は、各子問題において予め定められた論理値(例えば、第1論理値)になる問題全体の複数の条件式の重みの和の値が取りえる下限である全体下限値、及び、処理時点での問題全体における複数の条件式の重みの和の値が取りえる上限である全体上限値を算出する。算出部120は、全体上限値及び全体下限値を置換部130及び判定部140に供給する。算出部120のより具体的な動作は後述する。
置換部130は、境界値、全体上限値、及び/又は、全体下限値が予め定められた条件を満たす場合に、複数の条件式における論理変数を、別の論理変数を用いた論理式に置換する。これにより、置換部130は、子問題等中の条件式に含まれる論理変数の数を減らし、子問題等を簡略化する。置換部130は、従来のInference Ruleを適用して子問題等を簡略化してもよい。置換部130は、簡略化した子問題等、又は、簡略化できなかった子問題等を判定部140に供給する。置換部130のより具体的な動作は後述する。
判定部140は、子問題等の解が生成可能であるか判断する。例えば、判定部140は、子問題等のサイズが予め定められた基準よりも小さい場合、子問題等の解が生成可能であると判断する。判定部140は、解が生成可能であると判断した場合は子問題等を解生成部160に供給し、解が生成可能であると判断しない場合は、子問題等を子問題生成部150に供給する。
子問題生成部150は、子問題等から新しい子問題を生成する。例えば、子問題生成部150は、子問題等の複数の条件式に含まれる複数の論理変数から1つの論理変数を選択し、選択した論理変数に論理値を割り当てた結果に基づいて、選択した論理変数を含まない子問題を生成する。子問題生成部150は、生成した子問題を算出部120に提供する。
解生成部160は、子問題等を解く。例えば、解生成部160は、子問題に含まれる1以上の論理変数の全ての組み合わせを実行し、最も優れた重みの和を与える論理変数の組み合わせを子問題の解として取得する。解生成部160は、取得した解に応じて暫定の最適解である暫定解を更新する。解生成部160は、更新した暫定解を算出部120及び出力部190に供給する。
出力部190は、解生成部160が生成した解のうち最良の解を最大充足割当問題の解として出力する。
このように処理装置10は、子問題等が簡略化可能であると判断したことに応じて、子問題等の論理変数を、別の論理変数を用いた論理式に置換する。これにより、処理装置10は、効率よく子問題を処理することができ、より少ない処理リソースで最大充足割当問題を解くことができる。
図2は、Branch−and−Boundの処理の一例を示す。図中のノード1は、問題取得部110が取得する元の問題を示し、ノード2及びノード3は、子問題生成部150が元の問題から生成した子問題を示す。例えば、子問題生成部150は、元の問題に含まれる論理変数のうちxに偽(false)を割り当てることでノード2の子問題2を生成し、xに真(true)を割り当てることでノード3の子問題3を生成する。
一例として、元の最大充足割当問題が、第1条件式(x∨¬x∨x,3)、第2条件式(x∨x,2)、第3条件式(¬x∨¬x,4)、及び、第4条件式(x,1)の4式を含む場合を想定する。例えば、第1条件式は、xが真、xが偽、及びxが真のいずれかが成立する場合、重み3の第1条件式が満たされることを意味する。
子問題生成部150は、元の問題に含まれる論理変数xに真(true)を割り当てた場合、第2条件式'(x∨x,2)、第3条件式'(¬x,4)、及び、第4条件式(x,1)の3式を含むノード3の子問題を生成する。ここで、元の問題の第1条件式は必ず満たされるので解く必要はない。従って、子問題生成部150は、第1条件式を子問題から削除する。また、子問題生成部150は、必ず偽となる¬xを第3条件式から削除する。
従来の簡略化処理では、子問題の一部の論理変数に論理値の一部を与える処理を省略し、子問題の処理を簡略化する。例えば、処理装置10は、全ての条件式で論理変数(又は論理変数の否定)は出現するが、論理変数の否定(又は論理変数)は出現しない関係を検出した場合は、当該論理変数に真(又は偽)を割り当てる。
一例として、上述した3式を含む子問題では、xは出現するが¬xは出現しない。このような場合、xに第2論理値(例えば、真)を割り当てると第2論理値を最大化する問題に必ず寄与できる。従って、上記子問題において、xに第2論理値(真)を割り当てると、第3条件式'(¬x,4)、及び、第4条件式(x,1)の2式を含むより簡略化された子問題が生成される。これはPure Literal Ruleと呼ばれる。
また、例えば、処理装置10は、子問題の任意の論理変数に第2論理値(例えば、真)を割り当てて得られた重みが子問題の当該論理変数に第1論理値(例えば、偽)を割り当てて得られた重みより大きい場合、当該論理変数に第2論理値を割り当てる。一例として、第3条件式'及び第4条件式のみを含む上記子問題において、xに偽を与えた場合の重み(4)はxに真を与えた場合の重み(1)よりも大きいのでxには偽が割り当てられてよい。これはComplementary Unit Ruleと呼ばれる。
従来の簡略化処理では、論理変数の一部に論理値を割り当てることで子問題の処理の一部を省くことができる。例えば、図2に示すように、ノード3の子問題3においてPure Literal Rule等によりxに偽が割り当てられた場合、処理装置10は、xに偽(false)を割り当てた後の子問題の処理のみを続行し、xに真(true)を割り当てた子問題の処理を省略してよい。
図3は、本実施形態による簡略化処理の概略を示す。本実施形態では、処理装置10は、子問題中の論理変数を別の論理変数に置き換える簡略化処理を行う。図3の例では、処理装置10は、図2と同様にノード1の元の問題からノード2及びノード3の子問題を生成し、ノード3の子問題の簡略化処理を行う。
ここで、処理装置10は、ノード3の子問題において、算出部120が算出した境界値等が所定の条件を満たす場合に、論理変数xを論理変数xに置き換える。その結果、処理装置10は、子問題において論理変数x及び論理変数xに異なる論理値(例えば、真と偽、又は、偽と真)が割り当てられる子問題は処理しなくてよい。すなわち、処理装置10は、ノード3の子問題を簡略して、論理変数の数が1個減少したノード4の問題を生成する。
図4は、本実施形態の処理装置10による処理フローを示す。本実施形態において、処理装置10は、S100〜S1300を実行することにより、最大充足割当問題を処理する。
まず、S100で問題取得部110は、処理装置10の処理対象となる複数の条件式を含む最大充足割当問題を取得する。例えば、問題取得部110は、第2論理値(例えば、真)となる条件式の重み和を最大化するように論理変数に論理値を割り当てる最大充足割当問題を取得する。一例として、問題取得部110は、任意の論理変数又は論理変数の否定を各要素としたときに、1の要素又は複数の要素の論理和を各条件式として含み、各条件式に重み付けがなされた問題を取得する。
問題取得部110は、最大クリーク問題又は最大カット問題と等価の複数の条件式を含む最大充足割当問題を取得してよい。また、問題取得部110は、ランダムベンチマークにより生成した最大充足割当問題を取得してよい。問題取得部110は、取得した問題を算出部120に供給する。
次に、S300で、処理装置10は、簡略化処理を実行する。例えば、S100で取得した問題及び当該問題から派生した子問題が簡略化できるかを判断するために、算出部120が、所定の条件において子問題等から得られる重みの和の境界値等を算出し、置換部130は、算出された境界値等に応じて、子問題等の簡略化を実行する。
ここで、例えば、置換部130は、子問題等の論理変数を、別の論理変数を用いた論理式に置換することにより簡略化を実行する。置換部130は、簡略化処理を実行した場合は簡略化した子問題等を判定部140に供給し、簡略化処理を実行しなかった場合は子問題等をそのまま判定部140に供給する。なお、簡略化処理の詳細は後述する。
次に、S400で、判定部140は、子問題等の解が生成可能であるか判断する。例えば、判定部140は、子問題等に含まれる論理変数の数が予め定められた閾値以下、及び/又は、子問題等に含まれる条件式の数が予め定められた閾値以下となる場合、子問題等の解が生成可能であると判断してよい。
一例として、判定部140は、子問題等に含まれる全ての条件式に含まれる変数が1個である場合、又は、子問題における重み和が論理変数の論理値によらず一意に定まる場合に子問題等の解が生成可能であると判断してよい。判定部140は、解が生成可能であると判断した場合は子問題等を解生成部160に供給し、解が生成可能と判断しない場合は、子問題等を子問題生成部150に供給する。
S500において、子問題生成部150は、子問題等から新しい子問題を生成する。例えば、子問題生成部150は、子問題等の複数の条件式に含まれる複数の論理変数から1つの論理変数を選択し、選択した論理変数にそれぞれ異なる論理値を割り当てた結果に基づいて、選択した論理変数を含まない複数の子問題を生成する。
選択した論理変数に論理値を割り当てた結果、他の論理変数によらず条件式が一意に真又は偽に定まらない場合、子問題生成部150は当該条件式から選択した論理変数部分を子問題から除外する。また、子問題生成部150は、選択した論理変数に論理値を割り当てた結果、他の論理変数によらず一意に真又は偽に定まる条件式を、子問題から除外してよい。また、子問題生成部150は、生成した子問題を算出部120に提供する。
次にS600において、算出部120は、未処理の子問題から処理の対象とする子問題を選択する。例えば、算出部120は、未処理の子問題から探索木の幅方向を優先して子問題を選択してよい。一例として、算出部120は、図3においてノード2及びノード4の子問題が未処理の子問題として存在する場合、階層が浅いノード2の子問題を優先して選択してよい。これに代えて、算出部120は、未処理の子問題から探索木の深さ方向を優先して子問題を選択してよい。
ここで、算出部120は、選択した子問題での予め定められた論理値(例えば、第1論理値)になる問題全体の重みの和が取りえる下限である全体下限値LB、及び、問題全体での複数の条件式の重みの和の値が取りえる上限である全体上限値UBを算出する。
すなわち、処理装置10は、第2論理値を最大又は第1論理値を最小にする問題を子問題に分岐して解いていく中で、最適な割り当てをした場合に可能である、第1論理値をとる条件式の重み和の範囲を予想する。ここで、選択した子問題で予想される第1論理値の和の範囲の中で最良の場合の値が全体下限値LBである。選択した子問題において第1論理値(又は第2論理値)をとる条件式の重み和が一意に定まる場合には、その一意の重み和の値が全体下限値LBとなる。全体下限値LBは、子問題ごとに算出される。
また、現在までに判明している最適解が取りえる第1論理値の和の範囲の中で最悪の場合の値が全体上限値UBである。全体上限値UBは、全子問題に共通のグローバルな値である。処理装置10は、子問題について算出した全体上限値UBの値の候補が、現在の全体上限値UBによりも優れている場合は、算出した全体上限値UBの値の候補で全体上限値UBを更新する。
例えば、第1条件式(¬x,3)、第2条件式(x∨x,2)、第3条件式(x∨¬x,4)、及び、第4条件式(x,1)を含む元の問題に、論理変数xに真(true)を割り当てて生成された、第2条件式'(x∨x,2)、第3条件式'(¬x,4)、及び、第4条件式(x,1)の3式を含む子問題をS600で算出部120が選択した場合を考える。
この場合、第1条件式は必ず満たされないので、子問題に分岐したときに問題全体で第1論理値(例えば、偽)を取る条件式の重みの和は、少なくとも3となる。従って、算出部120は、選択した子問題について全体下限値LB=3を算出する。
また、第3条件式は必ず満たされるので、子問題に分岐したときに問題全体で第1論理値(例えば、偽)を取る条件式の重みの和の最大値は6(3+2+1)となる。ここで、算出部120は、算出した当該最大値が現時点の全体上限値UBより小さければ、全体上限値UBを当該最大値で更新する。
これは、全体上限値UBは、問題全体における最悪のケース(第1論理値となる条件式の重み和が最大になるケース)でも最適解から得られているだろう第1論理値の重み和であるので、算出した当該最大値が現時点の全体上限値UBより大きい場合(すなわち、子問題において得られる最悪の最適解で得られる第1論理値の重み和が、問題全体で得られる最悪の最適解で得られる第1論理値の重み和が優れていない場合)には全体上限値UBを更新する必要がないからである。
次にS700において、算出部120は、選択した子問題で得られた全体下限値LBが、現在の全体上限値UBよりも優れているか判定する。例えば、全体下限値LBが現在の全体上限値UBよりも小さい場合、算出部120は処理をS300に戻す。全体下限値LBが現在の全体上限値UBよりも大きい場合、算出部120は処理をS800に進める。これにより、処理装置10は、子問題について簡略化処理を試みる。
S800において、算出部120は、選択した子問題を処理済みとする。これにより、処理装置10は、全体下限値LBが現時点の全体上限値UBよりも小さい子問題(すなわち、最適解が得られる可能性がない子問題)の処理を中止するので、処理リソースを節約することができる。処理装置10は、処理をS1200に進める。
S900において、解生成部160は、子問題等を解く。例えば、解生成部160は、子問題に含まれる1以上の論理変数の一意の全ての組み合わせを実行し、第2論理値を取る条件式の最大の重みの和(又は第1論理値を取る条件式の最小の重みの和)を与える論理変数に対する論理値の割り当てを子問題の解として取得する。
解生成部160は、組み合わせの実行中に子問題等の全体下限値LBと同じ重み和が得られた場合、当該組み合わせに係る割り当てを子問題等の解とし、残りの処理を中断してよい。解生成部160は、子問題の論理変数への論理値の割り当てが一意に定まる場合(例えば、子問題に含まれる条件式が単一の論理変数のみの条件式1個の場合等)は、当該子問題において各論理変数に割り当てられている論理値を解として取得する。
次に、S1000において、解生成部160は、取得した解が暫定解よりも優れた解であるか判定する。例えば、解生成部160は、取得した解により得られた第1論理値を取る条件式の重み和が、現在の暫定解の重み和よりも小さいか判定する。解生成部160は、取得した解による重み和が暫定解の重み和よりも小さい場合に処理をS1100に進め、そうでない場合に処理をS1200に進める。
次にS1100で解生成部160は、現時点での暫定の最適解である暫定解を更新する。例えば、解生成部160は、現在の暫定解をS900で生成した解で更新する。暫定解がまだ存在していない場合、解生成部160は、取得した解を新しい暫定解として更新する。解生成部160は、暫定解を更新した場合、暫定解を算出部120に供給する。
ここで、解生成部160は、暫定解に応じて全体上限値UBも更新する。例えば、解生成部160は、更新した暫定解による条件式の重み和が現在の全体上限値UBよりも小さい場合、更新した暫定解による条件式の重み和で全体上限値UBを置き換えて更新する。解生成部160は、更新した暫定解及び全体上限値UBを算出部120及び出力部190に供給する。解生成部160は、S1100の後に処理をS1200に進める。
S1200において、算出部120は、生成済みの子問題のうち未処理のものがあるかを判定する。例えば、算出部120は、S500で子問題生成部150が生成した子問題のうちS800及びS900のいずれの処理の対象にもなっていない子問題があるか判定する。算出部120は、未処理の子問題があると判定する場合に処理をS600に戻し、未処理の子問題がないと判定する場合に処理をS1300に進める。
S1300において、解生成部160が生成した最適解を出力する。例えば、出力部190は、解生成部160から最終的に得られた暫定解を最適解として処理装置10のディスプレイ等に表示し、処理装置10の記憶装置に格納する。
このように、処理装置10は、問題取得部110が取得した元の問題から子問題を生成する。そして、処理装置10は、子問題等の論理変数を別の論理変数を用いた論理式に置換すること等により子問題を簡略化し、簡略化した子問題を再帰的に解くことにより元の最大充足割当問題の解を得る。これにより、処理装置10は、効率よく子問題を処理することができ、より少ない処理リソースで最大充足割当問題を解くことができる。
図5は、図4の処理フローにおけるS300の具体的な処理内容の一例を示す。S300において、処理装置10は、例えばS310〜S350により子問題等の簡略化処理を実行する。
S310において、処理装置10は子問題等に対して、単一の論理変数を対象にする簡略化を実行する。例えば、処理装置10は、一定の条件を満たすことを条件に、子問題等に含まれる論理変数に予め定められた論理値を割り当てることで子問題等を簡略化する。一例として、処理装置10は、Pure Literal Rule及び/又はComplementary Unit Ruleを適用することで子問題等を簡略化する。処理装置10は、その他の既存のInference Ruleを適用して子問題等を簡略化してよい。
S330において、処理装置10は、複数の論理変数を対象とする第1の簡略化処理を実行する。例えば、算出部120が子問題等に含まれる論理変数の任意の組み合わせについて境界値を算出し、境界値が一定の条件を満たす組み合わせに対して置換部130が第1の簡略化処理を実行する。
一例として、処理装置10は、子問題等に含まれる2個の論理変数に同じ論理値を割り当てたときに得られる最も悪い最適解が、当該2個の論理変数に異なる論理値を割り当てたときに得られる最も良い最適解よりも良いと判定した場合に、当該2個の論理変数に同じ論理値を割り当てる。第1の簡略化処理の詳細については後述する。
S350において、処理装置10は、複数の論理変数を対象とする第2の簡略化処理を実行する。例えば、子問題等に含まれる任意の2個の論理変数に異なる論理値を割り当てたときに得られる最も良い最適解による第1論理値となる条件式の重み和が、今後の処理で最悪のケースでも得られると現時点で予想される解の結果(すなわち、全体上限値UB)よりも悪いと予想されるときは、当該2個の論理変数に異なる論理値を割り当てた問題を解く処理は無駄になる。従って、このような場合、処理装置10は、当該2個の論理変数に同じ論理値を割り当てる。第2の簡略化処理の詳細については後述する。
このように処理装置10は、複数種類の簡略化処理を適用することにより、子問題等を簡略化する。これにより、処理装置10は、子問題等をより少ない処理リソースで解くことができる。
なお、処理装置10は、S310、S330、及び、S350の簡略化処理のうち任意の1又は2つを省略してもよく、これらの簡略化処理を異なる順番で実行してもよい。例えば、処理装置10は、S330のみ、S350のみ、又は、S330及びS350の処理のみを実行してよい。
また、処理装置10は、簡略化処理を繰り返し実行してもよい。例えば、処理装置10は、S310〜S350(又はこの一部)の処理を所定の条件が満たされるまで繰り返してもよい。
図6は、図5の処理フローにおけるS330の具体的な処理内容の一例を示す。S330において、処理装置10の算出部120及び置換部130は、S332〜S340の処理を実行することにより、第1の簡略化処理を実行する。
まず、S332において、算出部120は、子問題等に含まれる複数の論理変数から簡略化の対象とする2個の論理変数を選択する。例えば、算出部120は、子問題等に含まれる複数の論理変数から出現回数の多い論理変数、又は、含まれる条件式の重み和が大きい論理変数を優先して選択してよい。
次に、S334において、算出部120は、第1論理変数および第2論理変数が予め定められた論理関係(例えば、第1論理変数≠第2論理変数)を有しないと仮定した場合(例えば、第1論理変数=第2論理変数)に第1論理値をとる処理対象の子問題等の条件式に対応付けられた重みの和の上限値を算出する。
例えば、算出部120は、第1論理変数と第2論理変数とが等しい論理関係にある場合の第1論理変数及び第2論理変数の値の組み合わせを割り当てた場合(即ち、第1論理変数及び第2論理変数が共に真、又は、共に偽の場合)のそれぞれにおいて、偽となる可能性がある条件式に対応付けられた重みの和の上限となる値を算出し、そのうちの最小値を上限値として算出する。
一例として、算出部120は、第1論理変数を含む条件式の重みの合計及び第2論理変数を含む条件式の重みの合計の和から、第1論理変数及び第2論理変数の論理和を含む条件式の重みの合計と第1論理変数の否定及び第2論理変数の論理和を含む条件式の重みの合計と第2論理変数の否定及び第1論理変数の論理和を含む条件式の重みの合計との和を減じた第1の値を算出する。
算出部120は、第1論理変数の否定を含む条件式の重みの合計及び第2論理変数の否定を含む条件式の重みの合計の和から、第1論理変数の否定及び第2論理変数の否定の論理和を含む条件式の重みの合計と第1論理変数の否定及び第2論理変数の論理和を含む条件式の重みの合計と第2論理変数の否定及び第1論理変数の論理和を含む条件式の重みの合計との和を減じた第2の値を算出する。
算出部120は、算出した第1の値及び第2の値のうち小さい方を上限値としてよい。すなわち、第1論理変数をxとし、第2論理変数をyとし、処理対象の子問題等において論理式Aを含む条件式(但し¬Aは含まない)の重みの和の合計をwall(A)と表す場合、算出部120は、下記式により、上限値を算出することができる。
min{wall(x)+wall(y)−wall(x∨y),wall(¬x)+wall(¬y)−wall(¬x∨¬y)}−wall(¬x∨y)−wall(x∨¬y}
第1論理変数と第2論理変数とが等しい論理関係にある場合、子問題等の第2論理値を取る条件式の重み和が当該上限値を上回ることはない。つまり、当該上限値は、第1論理変数及び第2論理変数に等しい論理関係を割り当てた場合に最低限得られるであろう最適解の第1論理値となる条件式の重み和に対応する。算出部120は、算出した上限値を置換部130に供給する。
次に、S336において、算出部120は、第1論理変数および第2論理変数が予め定められた論理関係(例えば、第1論理変数≠第2論理変数)を有すると仮定した場合に第1論理値をとる処理対象の子問題等の条件式に対応付けられた重みの和の下限値を算出する。例えば、算出部120は、第1論理変数と第2論理変数とが等しくない論理関係にある場合の第1論理変数及び第2論理変数の値の組み合わせ(即ち、第1論理変数が真で第2論理変数が偽、又は、第1論理変数が偽で第2論理変数が真の場合)のそれぞれにおいて、必ず偽となる条件式に対応付けられた重みの和の下限となる値を算出し、そのうちの最小値を下限値として算出する。
一例として、算出部120は、第1論理変数の否定である条件式の重みの合計と、第2論理変数である条件式の重みの合計と、第1論理変数の否定及び第2論理変数の論理和である条件式の重みの合計との和である第3の値を算出する。
また、算出部120は、第1論理変数である条件式の重みの合計と、第2論理変数の否定である条件式の重みの合計と、第2論理変数の否定及び第1論理変数の論理和である条件式の重みの合計との和である第4の値を算出する。
算出部120は、当該第3の値及び第4の値のうち小さい方を下限値としてよい。すなわち、第1論理変数をxとし、第2論理変数をyとし、処理対象の子問題等において論理式A自体である条件式(論理式Aを含むが論理式A自体でない条件式は含まない)の重みの和の合計をwunit(A)と表す場合、算出部120は、下記式により、下限値を算出することができる。
min{wunit(¬x)+wunit(y)+wunit(¬x∨y),wunit(x)+wunit(¬y)+wunit(x∨¬y)}
第1論理変数と第2論理変数とが異なる論理関係にある場合、子問題等の第2論理値を取る条件式の重み和が当該下限値を下回ることはない。つまり、当該下限値は、第1論理変数及び第2論理変数に異なる論理関係を割り当てた際、最も良い場合に得られるであろう最適解の第1論理値となる条件式の重み和に対応する。算出部120は、算出した下限値を置換部130に供給する。
次に、S338において、置換部130が2個の論理変数が所定の条件を満たすか否かを判定する。例えば、S334で算出部120が算出した上限値が、S336で算出部120が算出した下限値以下となるか否かを判定する。一例として、置換部130は、数式1が成りたつかを判定する。
Figure 2016118867
…数式1
置換部130は、上限値が下限値以下となる場合に処理をS340に進め、上限値が下限値超となる場合はS330の処理を終了する。
S340において、置換部130は、第1論理変数および第2論理変数が予め定められた論理関係を有しない場合(第1論理変数=第2論理変数)の論理式により第1論理変数を置換する。例えば、置換部130は、処理対象の子問題等の複数の条件式において、第1論理変数を第2論理変数に置換し、処理対象の子問題等を更新する。これにより、置換部130は、処理対象の子問題の論理変数の数を削減することができる。
このように、置換部130は、第1の簡略化処理において、2個の論理変数に同じ論理値を割り当てた場合に第1論理値を取る条件式の重み和の上限値が、異なる論理値を割り当てた場合に第1論理値を取る条件式の重み和の下限値以下となるか判定する。判定が肯定的な場合は、子問題等において予め定められた論理関係でない論理関係(例えば、第1論理変数=第2論理変数)を割り当てた方が確実に良い解が得られることとなるので、置換部130は、予め定められた論理関係でない論理関係を第1論理変数及び第2論理変数に適用する。
なお、処理装置10は、S330において複数回S332〜S340の処理を実行してもよい。例えば、処理装置10は、処理対象の子問題等に含まれる論理変数の任意のペアに対してS332〜S340の処理を適用して子問題等を逐次更新し、S340の処理を適用できない場合(すなわち、S338の判定が否定的な場合)には当該子問題等において別の未選択の論理変数のペアに対してS332〜S340の処理を開始してよい。
図7は、本実施形態における第1の簡略化処理の概要を示す。図の横軸は、子問題等に含まれる条件式のうち偽となる条件式の重みの和を示す。図中のU(X,Y)は子問題等において第1論理変数xに論理値Xを割り当て第2論理変数xに論理値Yを割り当てた場合に偽となる子問題等の条件式の重み和の下限値を示す。図中のU(X,Y)は子問題等において第1論理変数xに論理値Xを割り当て第2論理変数xに論理値Yを割り当てた場合に偽となる子問題等の条件式の重み和の上限値を示す。
従って、U(T,T)は、第1論理変数及び第2論理変数が共に真の場合に偽(第1論理値)を取る条件式の重み和の上限であり、算出部120がS334において算出した第1の値に相当する。U(F,F)は、第1論理変数及び第2論理変数が共に偽の場合に偽(第1論理値)を取る条件式の重み和の上限であり、算出部120がS334において算出した第2の値に相当する。算出部120は、U(T,T)及びU(F,F)のうち最小値(図中の最小上限値)を上限値として算出する。
図中のU(T,F)は、第1論理変数が真で第2論理変数が偽の場合に偽(第1論理値)を取る条件式の重み和の下限であり、算出部120がS336において算出した第3の値に相当する。U(F,T)は、第1論理変数が偽で第2論理変数が真の場合に偽(第1論理値)を取る条件式の重み和の下限であり、算出部120がS336において算出した第4の値に相当する。算出部120は、U(T,F)及びU(F,T)のうち最小値(図中の最小下限値)を下限値として算出する。
S338において、置換部130は、U(T,T)及びU(F,F)の最小値(図7中ではU(F,F))と、U(T,F)及びU(F,T)の最小値(図7中ではU(T,F))とを比較する。
(T,T)及びU(F,F)の最小値は、子問題等において第1論理変数及び第2論理変数に同じ論理値を割り当てた際に、最悪のケース(偽となる条件式の重み和が最大になるケース)で偽となる条件式の重み和の値である。U(T,F)及びU(F,T)の最小値は、子問題等において第1論理変数及び第2論理変数に同じ論理値を割り当てた際に、最良のケース(偽となる条件式の重み和が最小になるケース)の偽となる条件式の重み和の値である。従って、前者が小さい場合は、第1論理変数及び第2論理変数に同じ論理値を割り当てた方が確実によい解が得られるので、置換部130はS340で第1論理変数を第2論理変数で置換する。
図8は、図5の処理フローにおけるS350の具体的な処理内容の一例を示す。S350において、処理装置10の算出部120及び置換部130は、S352〜S358の処理を実行することにより、第2の簡略化処理を実行する。
まず、S352において、算出部120は、子問題等に含まれる複数の論理変数から簡略化の対象とする2個の論理変数を選択する。算出部120は、S332と同様の方法により論理変数を選択してよい。
次に、S354において、算出部120は、子問題について、第1論理変数および第2論理変数が予め定められた論理関係(例えば、第1論理変数≠第2論理変数)を有すると仮定した場合に第1論理値をとる条件式に対応付けられた重みの和の下限値を算出する。例えば、算出部120は、S336の同様の方法により子問題等についての下限値を算出してよい。
次に、S356において、置換部130は、子問題等についての下限値、問題全体の全体上限値UB、及び、問題全体の全体下限値LBが所定の条件を満たすか否かを判定する。例えば、全体上限値UBと全体下限値LBとの差分が、S354で算出部120が算出した子問題等についての下限値以下となるか否かを判定する。一例として、置換部130は、数式1が成りたつかを判定する。
Figure 2016118867
…数式2
置換部130は、当該条件が成り立つ場合に処理をS358に進め、成り立たない場合にS350の処理を終了する。
S358において、置換部130は、処理対象の子問題等に含まれる複数の条件式において、第1論理変数および第2論理変数が予め定められた論理関係を有しない場合の論理式により第1論理変数を置換する。例えば、置換部130は、処理対象の子問題等の複数の条件式において、第1論理変数を第2論理変数に置換し、処理対象の子問題等を更新する。これにより、置換部130は、処理対象の子問題の論理変数の数を削減することができる。
このように、置換部130は、第2の簡略化処理において、全体上限値UBと全体下限値LBの差分と、下限値との比較結果により、処理対象の子問題等を簡略化する。
なお、処理装置10は、S350において複数回S352〜S358の処理を実行してもよい。例えば、処理装置10は、処理対象の子問題等に含まれる論理変数の任意のペアに対してS352〜S358の処理を適用して子問題等を逐次更新し、S358の処理を適用できない場合(すなわち、S356の判定が否定的な場合)には当該子問題等において別の未選択の論理変数のペアに対してS352〜S358の処理を開始してよい。
ここで図9及び図10を用いて第2の簡略化処理の概要を説明する。図9は、本実施形態の対象となる最大充足割当問題の一例を示す。図中のノード1は、問題取得部110が取得する元の問題を示し、ノード2及びノード3は、子問題生成部150が元の問題から生成した子問題を示す。
一例として、問題取得部110は、元の問題として、第1条件式C1(x,15)、第2条件式C2(¬x∨x∨¬x,20)、及び、第3条件式C3(¬x∨¬x∨x,20)を含み、真(第2論理値)となる条件式の重み和を最大化する問題を取得する場合を想定する。元の問題であるノード1においては全ての条件式が偽となる可能性があるので、問題全体で偽(第1論理値)を取る条件式の重み和の上限である全体上限値UBは、全ての条件式の重み和55(15+20+20)となる。
元の問題においては、どの論理変数にも論理値が割り当てられていない。従って、処理対象のノード1において、問題全体で偽(第2論理値)を取る条件式の重み和の下限である全体下限値LBは0となる。
ここで、子問題生成部150は、元の問題(ノード1)の論理変数xに偽(false)を割り当てて子問題(ノード2)を生成するとする。論理変数xに偽が割り当てられた結果、条件式C1のみが確実に満たされず偽となる。「¬x1」を含む条件式C2及び条件式C3は、確実に満たされて真となる。
従って、ノード2における問題全体の全体下限値LBは15となる。また、ノード2における問題全体の全体上限値UBの値の候補は15であり、現時点の全体上限値UB55よりも小さい、即ち優れているので、算出部120は、全体上限値UBを15に更新する。
また、子問題生成部150は、元の問題(ノード1)の論理変数xに真(true)を割り当てて別の子問題(ノード3)を生成する。論理変数xに真が割り当てられた結果、条件式C1が満たされ真となる。その結果、子問題生成部150は、第2条件式C2'(x∨¬x,20)及び第3条件式C3'(¬x∨x,20)の2式を含む子問題(ノード3)を生成する。
ノード3において、偽となることが確定した条件式は問題全体で存在しない。従って、ノード3における問題全体の全体下限値LBは0となる。また、ノード3において、第2条件式C2'及び第3条件式C3'のいずれも偽となる可能性がある。従って、ノード3における問題全体の全体上限値UBの値の候補は40(20+20)であり、現時点の全体上限値UB15よりも大きい。このため、算出部120は、全体上限値UBを15のまま更新しない。
ここで、ノード3に対して、第1論理変数をxとし第2論理変数をxとして、第2の簡略化処理を適用する。ノード3における算出部120がS354で算出する下限値min(U(F,T),U(T,F))は20となる。すると、全体上限値UBとノード3の全体下限値LBとの差分15(15−0)は当該下限値以下となるので、置換部130は、ノード3において第1論理変数xを第2論理変数xで置換する簡略化処理を実行する。
図10は、本実施形態における第2の簡略化処理の一例を示す。図の横軸は、元の問題全体に含まれる条件式のうち偽となる条件式の重みの和を示す。図中のLBは処理対象の子問題等における全体下限値を示し、UBは全体上限値を示す。U(X,Y)は子問題等において第1論理変数xに論理値Xを割り当て第2論理変数xに論理値Yを割り当てた場合に偽となる子問題等の条件式の重み和の下限値を示す。
全体下限値LBは、処理対象の子問題等のノードにおいて、問題全体で偽(第1論理値)となる条件式の重み和の下限値である。U(T,F)及びU(F,T)の最小値は、子問題等において第1論理変数及び第2論理変数に同じ論理値を割り当てた際に、最良のケースの偽となる条件式の重み和の値である。
従って、全体下限値LBと下限値U(T,F)及びU(F,T)の最小値との和は、処理対象の子問題等において、第1論理変数及び第2論理変数に異なる論理値を割り当てた際に、最良のケースで得られる問題全体の第1論理値の重み和である。図9の例においては、全体下限値LBと下限値U(T,F)及びU(F,T)の最小値との和は20(0+20)となる。
一方で、全体上限値UBは、現在まで子問題等を処理した結果判明している、問題全体で偽(第1論理値)となる条件式の重み和の上限値(すなわち、最悪のケースでも得られると見込まれる偽となる条件式の重み和)である。このため、全体上限値UBが、全体下限値LBと下限値U(T,F)及びU(F,T)の最小値との和よりも大きい場合には、第1論理変数及び第2論理変数に異なる論理値を割り当てても判明している以上に良い解が得られないので、第1論理変数と第2論理変数に同じ論理変数を割り当ててよい。
図9の例においては、ノード3の子問題を処理する時点で全体上限値UBは15であり、全体下限値LBと下限値U(T,F)及びU(F,T)の最小値との和20よりも大きい。従って、この場合、置換部130はノード3の子問題において第1論理変数と第2論理変数に同じ論理変数を割り当てて、ノード4の子問題に更新してよい。
このように、本実施形態の処理装置10によると、従来の単一の論理変数を対象とするInference Ruleに加え、ある論理変数を別の論理変数に置き換える簡略化処理を実行できるので、子問題等をより大幅に簡略化して最大充足割当問題の処理負担を低減することができる。特に、本実施形態によると、重みに大きなばらつきがある最大カット問題等をより効率的に解くことができる。なお、上記実施形態の説明では、第1論理値を「偽」、第2論理値を「真」、予め定められた論理関係を「等しい関係」としたが、本発明はこれらに限られない。例えば、第1論理値を「真」、第2論理値を「偽」とし、及び/又は、予め定められた論理関係を「等しくない関係」としてもよい。
図11は、処理装置10として機能するコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD−ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部を備える。
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD−ROMドライブ2060を接続する。通信インターフェイス2030は、有線又は無線によりネットワークを介して他の装置と通信する。また、通信インターフェイスは、通信を行うハードウェアとして機能する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD−ROMドライブ2060は、CD−ROM2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続するとともに、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD−ROM2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
コンピュータ1900にインストールされ、コンピュータ1900を処理装置10として機能させるプログラムは、問題取得モジュール、算出モジュール、置換モジュール、判定モジュール、問題生成モジュール、解生成モジュール、及び、出力モジュールを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、問題取得部110、算出部120、置換部130、判定部140、子問題生成部150、解生成部160、及び、出力部190としてそれぞれ機能させてよい。
これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である問題取得部110、算出部120、置換部130、判定部140、子問題生成部150、解生成部160、及び、出力部190として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の処理装置10が構築される。
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、又はCD−ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
また、CPU2000は、ハードディスクドライブ2040、CD−ROMドライブ2060(CD−ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020及び外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。例えば、処理装置10の記憶部は、問題取得部110、算出部120、置換部130、判定部140、子問題生成部150、解生成部160、及び、出力部190から受け取った/へ提供するデータを適宜記憶してよい。例えば、記憶部は、特徴ベクトル問題取得部110が算出部120に入力したデータを受け取って記憶してよい。また、記憶部は、子問題生成部150が算出した子問題等を記憶してよい。
本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすか否かを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
実施形態の説明において複数の要素が列挙された場合には、列挙された要素以外の要素を用いてもよい。例えば、「Xは、A、B及びCを用いてYを実行する」と記載される場合、Xは、A、B及びCに加え、Dを用いてYを実行してもよい。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
10 処理装置、20 データベース、110 問題取得部、120 算出部、130 置換部、140 判定部、150 子問題生成部、160 解生成部、190 出力部、1900 コンピュータ、2000 CPU、2010 ROM、2020 RAM、2030 通信インターフェイス、2040 ハードディスクドライブ、2050 フレキシブルディスク・ドライブ、2060 CD−ROMドライブ、2070 入出力チップ、2075 グラフィック・コントローラ、2080 表示装置、2082 ホスト・コントローラ、2084 入出力コントローラ、2090 フレキシブルディスク、2095 CD−ROM

Claims (14)

  1. それぞれが少なくとも1つの論理変数に基づく複数の条件式のうち、予め定められた論理値をとる条件式に対応付けられた重みの和を最大化する問題を処理する処理装置であって、
    第1論理変数および第2論理変数が予め定められた論理関係を有すると仮定した場合における前記重みの和の境界値を算出する算出部と、
    前記境界値が予め定められた条件を満たす場合に、前記複数の条件式における前記第1論理変数を、前記第2論理変数を用いた論理式に置換する置換部と、
    を備える処理装置。
  2. 前記算出部は、
    前記第1論理変数および前記第2論理変数が予め定められた論理関係を有すると仮定した場合に第1論理値をとる条件式に対応付けられた重みの和の下限値を算出し、
    前記第1論理変数および前記第2論理変数が前記予め定められた論理関係を有しないと仮定した場合に前記第1論理値をとる条件式に対応付けられた重みの和の上限値を算出し、
    前記置換部は、前記上限値が前記下限値以下となる場合に、前記第1論理変数および前記第2論理変数が前記予め定められた論理関係を有しない場合の前記論理式により前記第1論理変数を置換する、
    請求項1に記載の処理装置。
  3. 前記算出部は、
    前記上限値として、前記第1論理変数と前記第2論理変数とが前記予め定められた論理関係にない場合に、偽となる可能性がある条件式に対応付けられた重みの和を算出し、
    前記下限値として、前記第1論理変数と前記第2論理変数とが前記予め定められた論理関係にある場合に、必ず偽となる条件式に対応付けられた重みの和を算出し、
    前記複数の条件式のうち真となる条件式の重みの和を最大化するように前記論理変数に論理値を割り当てる問題を処理する、
    請求項2に記載の処理装置。
  4. 前記算出部は、
    前記第1論理変数と前記第2論理変数とが等しい場合の前記上限値を算出し、
    前記第1論理変数と前記第2論理変数とが等しくない場合の前記下限値を算出し、
    前記置換部は、前記上限値が前記下限値以下となる場合に、前記複数の条件式において、前記第1論理変数を前記第2論理変数に置換する、
    請求項2又は3に記載の処理装置。
  5. 前記算出部は、
    前記予め定められた論理関係を有する前記第1論理変数及び前記第2論理変数の値の組み合わせのそれぞれの下限となる値の最小値を下限値として算出し、
    前記予め定められた論理関係を有しない前記第1論理変数及び前記第2論理変数の値の組み合わせのそれぞれの上限となる値の最小値を上限値として算出する、
    請求項1から4のいずれか1項に記載の処理装置。
  6. 前記算出部は、
    前記第1論理変数を含む条件式の重みの合計及び前記第2論理変数を含む条件式の重みの合計の和から、前記第1論理変数及び前記第2論理変数の論理和を含む条件式の重みの合計と前記第1論理変数の否定及び前記第2論理変数の論理和を含む条件式の重みの合計と前記第2論理変数の否定及び前記第1論理変数の論理和を含む条件式の重みの合計との和を減じた第1の値を算出し、
    前記第1論理変数の否定を含む条件式の重みの合計及び前記第2論理変数の否定を含む条件式の重みの合計の和から、前記第1論理変数の否定及び前記第2論理変数の否定の論理和を含む条件式の重みの合計と前記第1論理変数の否定及び前記第2論理変数の論理和を含む条件式の重みの合計と前記第2論理変数の否定及び前記第1論理変数の論理和を含む条件式の重みの合計との和を減じた第2の値を算出し、
    前記第1の値及び第2の値のうち小さい方を前記上限値とする、
    請求項5に記載の処理装置。
  7. 前記算出部は、
    前記第1論理変数の否定である条件式の重みの合計と、前記第2論理変数である条件式の重みの合計と、前記第1論理変数の否定及び前記第2論理変数の論理和である条件式の重みの合計との和である第3の値を算出し、
    前記第1論理変数である条件式の重みの合計と、前記第2論理変数の否定である条件式の重みの合計と、前記第2論理変数の否定及び前記第1論理変数の論理和である条件式の重みの合計との和である第4の値を算出し、
    前記第3の値及び第4の値のうち小さい方を前記下限値とする、
    請求項5又は6に記載の処理装置。
  8. 前記複数の条件式に含まれる複数の論理変数から1つの論理変数を選択し、選択した論理変数に論理値を割り当てた結果に基づいて、前記選択した論理変数を含まない子問題を生成する子問題生成部とを更に備え、
    前記算出部は、前記子問題に含まれる前記論理変数の組み合わせについて前記境界値を算出する、
    請求項1から7のいずれか1項に記載の処理装置。
  9. 前記算出部は、前記子問題における、前記予め定められた論理値になる前記問題全体の複数の条件式の重みの和の値が取りえる下限である全体下限値と、
    問題全体での複数の条件式の重みの和の値が取りえる上限である全体上限値を算出する、
    請求項8に記載の処理装置。
  10. 前記算出部は、前記子問題について、前記第1論理変数および前記第2論理変数が予め定められた論理関係を有すると仮定した場合に第1論理値をとる条件式に対応付けられた重みの和の下限値を算出し、
    前記置換部は、前記全体上限値と前記全体下限値の差分と、前記下限値との比較結果により、前記複数の条件式において、前記第1論理変数および前記第2論理変数が前記予め定められた論理関係を有しない場合の前記論理式により前記第1論理変数を置換する、
    請求項8又は9に記載の処理装置。
  11. 前記置換部は、前記全体上限値と前記全体下限値との差分が前記下限値以下となる場合に、前記複数の条件式において、前記第1論理変数および前記第2論理変数が前記予め定められた論理関係を有しない場合の前記論理式により前記第1論理変数を置換する、
    請求項10に記載の処理装置。
  12. 最大カット問題と等価の複数の条件式を含む問題を処理する請求項1から11のいずれか1項に記載の処理装置。
  13. コンピュータにより実行される、それぞれが少なくとも1つの論理変数に基づく複数の条件式のうち、予め定められた論理値をとる条件式に対応付けられた重みの和を最大化または最小化する問題を処理する処理方法であって、
    第1論理変数および第2論理変数が予め定められた論理関係を有すると仮定した場合における前記重みの和の境界値を算出する算出段階と、
    前記境界値が予め定められた条件を満たす場合に、前記複数の条件式における前記第1論理変数を、前記第2論理変数を用いた論理式に置換する置換段階と、
    を備える処理方法。
  14. コンピュータを請求項1から12の処理装置として機能させるプログラム。
JP2014257219A 2014-12-19 2014-12-19 処理装置、処理方法、及び、プログラム Expired - Fee Related JP6548209B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014257219A JP6548209B2 (ja) 2014-12-19 2014-12-19 処理装置、処理方法、及び、プログラム
US14/974,330 US20160179471A1 (en) 2014-12-19 2015-12-18 Minimizing processing load when solving maximum satisfiability problem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014257219A JP6548209B2 (ja) 2014-12-19 2014-12-19 処理装置、処理方法、及び、プログラム

Publications (2)

Publication Number Publication Date
JP2016118867A true JP2016118867A (ja) 2016-06-30
JP6548209B2 JP6548209B2 (ja) 2019-07-24

Family

ID=56129440

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014257219A Expired - Fee Related JP6548209B2 (ja) 2014-12-19 2014-12-19 処理装置、処理方法、及び、プログラム

Country Status (2)

Country Link
US (1) US20160179471A1 (ja)
JP (1) JP6548209B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10311125B2 (en) * 2016-07-19 2019-06-04 International Business Machines Corporation Simplifying clauses for MAX-SAT

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751984B2 (en) * 2007-11-09 2014-06-10 Sean Safarpour Method, system and computer program for hardware design debugging
US8725902B2 (en) * 2011-06-24 2014-05-13 Tt Government Solutions, Inc. Optimal network configuration repair
US10346748B2 (en) * 2013-07-29 2019-07-09 President And Fellows Of Harvard College Quantum processor problem compilation

Also Published As

Publication number Publication date
JP6548209B2 (ja) 2019-07-24
US20160179471A1 (en) 2016-06-23

Similar Documents

Publication Publication Date Title
Khorasani et al. Scalable simd-efficient graph processing on gpus
AlEbrahim et al. Task scheduling for heterogeneous computing systems
US8266603B2 (en) Technique for allocating register to variable for compiling
US20220147795A1 (en) Neural network tiling method, prediction method, and related apparatus
JP2019160319A (ja) 多階層ニューラルネットワークモデルを最適化して適用する方法及び装置、及び記憶媒体
WO2017076296A1 (zh) 处理图数据的方法和装置
JP2015118609A (ja) 予め決められた複数のビット幅のデータに対して操作を行う命令を使用してツリーの検索を行うための方法、並びに、当該命令を使用してツリーの検索を行うためのコンピュータ及びそのコンピュータ・プログラム
US20210133390A1 (en) Conceptual graph processing apparatus and non-transitory computer readable medium
CN105700956A (zh) 用于处理分布式作业的方法和系统
JP6715420B2 (ja) データ量圧縮方法、装置、プログラム及びicチップ
CN114675975B (zh) 一种基于强化学习的作业调度方法、装置及设备
KR102326586B1 (ko) 큰 규모 분산 행렬 곱 처리 방법 및 그 장치
CN115586961A (zh) 一种ai平台计算资源任务调度方法、装置及介质
CN115237410A (zh) 一种用户界面的生成方法及装置
CN104063230B (zh) 基于MapReduce的粗糙集并行约简方法、装置及系统
CN117494840A (zh) 数据处理方法、装置以及电子设备
WO2023221626A1 (zh) 一种内存分配的方法和装置
JP6548209B2 (ja) 処理装置、処理方法、及び、プログラム
CN111736959A (zh) 异构集群下考虑数据亲和性的Spark任务调度方法
Li et al. On scheduling of high-throughput scientific workflows under budget constraints in multi-cloud environments
CN114138484A (zh) 资源分配方法、装置以及介质
CN112100446B (zh) 搜索方法、可读存储介质和电子设备
CN113343040A (zh) 一种图算法的自动增量化方法、装置、设备及存储介质
CN109389157B (zh) 一种用户群识别方法和装置及对象群识别方法和装置
JP7388566B2 (ja) データ生成プログラム、方法及び装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170822

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20180808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180809

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180918

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181213

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20190530

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190619

R150 Certificate of patent or registration of utility model

Ref document number: 6548209

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees