JP5013506B2 - Application program execution method, apparatus and program - Google Patents

Application program execution method, apparatus and program Download PDF

Info

Publication number
JP5013506B2
JP5013506B2 JP2006159552A JP2006159552A JP5013506B2 JP 5013506 B2 JP5013506 B2 JP 5013506B2 JP 2006159552 A JP2006159552 A JP 2006159552A JP 2006159552 A JP2006159552 A JP 2006159552A JP 5013506 B2 JP5013506 B2 JP 5013506B2
Authority
JP
Japan
Prior art keywords
constraint
variable
definition
data domain
name
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.)
Expired - Fee Related
Application number
JP2006159552A
Other languages
Japanese (ja)
Other versions
JP2007328580A (en
Inventor
公雄 土川
晴久 野末
中島  一
哲哉 山村
健 増田
晴夫 大石
志朗 小笠原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2006159552A priority Critical patent/JP5013506B2/en
Publication of JP2007328580A publication Critical patent/JP2007328580A/en
Application granted granted Critical
Publication of JP5013506B2 publication Critical patent/JP5013506B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、特に制約プログラミングを用いたアプリケーションプログラム(以下、単にアプリケーションと呼ぶ。)を実行する技術に関する。   The present invention particularly relates to a technique for executing an application program using constraint programming (hereinafter simply referred to as an application).

制約プログラミングとは、制約条件を満たす答えを探して見つけ出す問題を解くための手法・考え方の枠組みである。制約プログラミングにおいては、解くべき問題の宣言と、問題を満たす解の探索という2つの手順を踏む。ここで、解くべき問題の宣言とは、取り得る値の集合からなる「制約変数」と呼ばれる変数を定義し、制約条件を表す「制約変数間の関係式」を定義することを意味する。また、解の探索には「制約充足ソルバ」という汎用的なプログラムを利用することが一般的である。   Constraint programming is a framework of methods and ideas for solving problems that find and find answers that satisfy constraints. In constraint programming, two steps are taken: declaration of a problem to be solved and search for a solution that satisfies the problem. Here, the declaration of a problem to be solved means that a variable called a “constraint variable” consisting of a set of possible values is defined and a “relational expression between constraint variables” representing a constraint condition is defined. Further, a general-purpose program called “constraint satisfaction solver” is generally used for searching for solutions.

制約充足ソルバでは、そのインタフェースを通して制約変数や制約条件を当該制約充足ソルバ固有の内部表現へと変換することで、制約条件を満たす解を様々な戦略を用いて効率的に探索することが可能であるという特徴を有する。   In the constraint satisfaction solver, it is possible to efficiently search for solutions that satisfy the constraint conditions using various strategies by converting constraint variables and constraint conditions into the internal representation specific to the constraint satisfaction solver through the interface. It has the characteristic of being.

制約充足ソルバとしては、フリーで利用可能なものや商用で利用可能なものなど複数存在し、例えば、Cream、iZ−C(非特許文献1参照)、ILOG Solver、Chocoなどがある。それぞれの制約充足ソルバは、開発環境、実行環境、インタフェースなどの差異はあるが、基本的な処理の流れは同じである。多くの制約充足ソルバは、制約充足ソルバの生成、初期化、制約変数を内部表現に変換する制約変数定義、制約条件を定義する制約条件式、制約条件式を制約充足ソルバに加えて制約を有効にする制約伝播、制約を充たす解集合を取得する解取得という手順を踏む。
”iZ:Constraint Programing 制約プログラミング入門”、[online]、株式会社NTTデータセキスイシステムズ、[平成18年5月29日検索]、インターネット<URL:http://www.isac.co.jp/iz/tutorial.html>
There are a plurality of constraint satisfaction solvers, such as those that can be used for free and those that can be used for commercial purposes. Each constraint satisfaction solver has a difference in development environment, execution environment, interface, etc., but the basic processing flow is the same. Many constraint satisfaction solvers generate constraint initialization solvers, initialize them, define constraint variables to convert constraint variables to an internal representation, constraint expressions that define constraint conditions, and add constraint conditions to constraint satisfaction solvers to enable constraints The steps of constraint propagation to obtain a solution and obtain a solution set satisfying the constraint are taken.
"Introduction to Constraint Programming", [online], NTT DATA Sekisui Systems, Inc. [Search May 29, 2006], Internet <URL: http://www.isac.co.jp/iz/ tutorial.html>

制約プログラミングを用いたアプリケーションは、使用する制約充足ソルバ固有の内部表現による、制約変数の定義と制約条件の定義とからなる解くべき問題の宣言を内部構造として組み込むことが多い。このような場合、開発時に想定した制約条件が変わるような変更が生じると、アプリケーションの改造が必要となるが、そのコストは一般に高く、容易でないという問題があった。   An application using constraint programming often incorporates, as an internal structure, a declaration of a problem to be solved consisting of a constraint variable definition and a constraint condition definition by an internal representation specific to the constraint satisfaction solver used. In such a case, if a change that changes the constraint condition assumed at the time of development occurs, modification of the application is required. However, the cost is generally high and it is not easy.

本発明では、前記課題を解決するため、アプリケーションが扱う制約定義を記憶する制約定義記憶部と、前記アプリケーションが扱うデータドメインを制約変数名とともに記憶するデータドメイン記憶部とを設け、アプリケーションの実行時に、制約定義記憶部から制約定義を読み込み、該制約定義から所定の制約変数名の条件にマッチする制約変数を抽出し、データドメイン記憶部から前記抽出した制約変数の制約変数名をキーとして当該制約変数のデータドメインを取得し、該取得したデータドメイン中の制約変数を制約充足ソルバ固有の内部表現に変換し、これを制約変数名とともに記憶するとともに、前記制約定義から関係式を抽出し、前記記憶した制約充足ソルバ固有の内部表現に変換された制約変数を利用して、前記抽出した関係式を制約充足ソルバ固有の内部表現として構築することにより、アプリケーション自体に、制約変数の定義と制約条件の定義とからなる解くべき問題の宣言を内部構造として組み込むことを不要とした。 In the present invention, for solving the above problems, the constraint definition storage unit for storing a constraint definition that application handles, and a data domain storing unit for storing with constraint variable name data domain that the application is handled provided, when the application execution The constraint definition is read from the constraint definition storage unit, the constraint variable that matches the condition of the predetermined constraint variable name is extracted from the constraint definition, and the constraint variable name of the extracted constraint variable is extracted from the data domain storage unit as a key. Obtain the data domain of the variable , convert the constraint variable in the obtained data domain into an internal representation specific to the constraint satisfaction solver, store this along with the constraint variable name, extract the relational expression from the constraint definition, Using the constraint variables converted to the internal representation specific to the stored constraint satisfaction solver, the extracted function By constructing an expression as constraint satisfaction solver specific internal representation, the application itself, the declaration defining a problem to be solved consists of the definition and constraints of the constraint variables were not necessary to incorporate as an internal structure.

本発明によれば、制約変数の定義と制約条件の定義とからなる解くべき問題の宣言をアプリケーション実行時に動的に取得・構築可能とすることで、従来の手法ではアプリケーションのソースコードの変更が必要となる制約条件に変更が生じた際に、アプリケーションとは独立に定義された、制約条件のみを書き換えることで前述の変更に対処可能であり、アプリケーションのソースコードの改変のコストを削減する効果が期待できる。それに付随して、ソースコードの再コンパイル、再インストールのコストを削減する効果も期待できる。但し、制約定義の変更だけでは対処できない変更、例えば、データ項目の追加、削除、変更などが生じた場合には、ソースコードの改変が必要となることも有り得る。   According to the present invention, the declaration of the problem to be solved consisting of the definition of the constraint variable and the definition of the constraint condition can be dynamically acquired and constructed at the time of application execution. When the required constraints change, it is possible to deal with the above-mentioned changes by rewriting only the constraints defined independently of the application, and the effect of reducing the cost of modifying the application source code Can be expected. Along with this, it can be expected to reduce the cost of recompiling and reinstalling the source code. However, if there are changes that cannot be dealt with only by changing the constraint definition, such as addition, deletion, or change of data items, it may be necessary to modify the source code.

図1は本発明のアプリケーション(プログラム)の実行装置の実施の形態の一例、ここでは周知のコンピュータ上に実現した例を示すもので、図中、1はコンピュータ、2は入力装置、3は表示装置である。   FIG. 1 shows an example of an embodiment of an application (program) execution apparatus according to the present invention, here an example realized on a known computer. In the figure, 1 is a computer, 2 is an input device, and 3 is a display. Device.

コンピュータ1は、制約プログラミングを用いた所定のアプリケーション(プログラム)4及び該アプリケーション4が利用する所定の制約充足ソルバ5に対する実行環境を提供するとともに、記録媒体もしくは通信回線を介してインストールされた、図2及び図3に示すフローチャートに対応するプログラムに従って動作し、この際、制約定義記憶部6、データドメイン記憶部7及び制約処理機能部8を構成する。   The computer 1 provides an execution environment for a predetermined application (program) 4 using constraint programming and a predetermined constraint satisfaction solver 5 used by the application 4, and is installed via a recording medium or a communication line. 2 and the program corresponding to the flowchart shown in FIG. 3. At this time, the constraint definition storage unit 6, the data domain storage unit 7, and the constraint processing function unit 8 are configured.

入力装置2は、キーボード、マウス等からなり、オペレータ(検査者)がコンピュータ1に所定の情報、例えば制約定義記憶部6やデータドメイン記憶部7に記憶させるデータを入力するためのものである。表示装置3は、液晶ディスプレイ、CRT等の画像表示装置からなり、コンピュータ1における所定の処理結果、例えばアプリケーション4による処理結果である制約条件を満たす解をオペレータに提示するためのものである。   The input device 2 includes a keyboard, a mouse, and the like, and is used by an operator (inspector) to input predetermined information such as data to be stored in the constraint definition storage unit 6 or the data domain storage unit 7 in the computer 1. The display device 3 includes an image display device such as a liquid crystal display or a CRT, and is used for presenting a solution satisfying a constraint condition that is a predetermined processing result in the computer 1, for example, a processing result by the application 4, to the operator.

制約定義記憶部6は、入力装置2から直接入力され又は図示しない記憶媒体から読み出されて入力され又は図示しない通信媒体を介して他の装置等から入力された、アプリケーション4が扱う制約変数間の関係式で表される制約条件の集合からなる制約定義を記憶している。また、データドメイン記憶部7は、前記同様の態様で入力された、制約変数の取り得る値の集合であるデータドメインを該制約変数の名前である制約変数名とともに記憶している。   The constraint definition storage unit 6 is a block between constraint variables handled by the application 4 that is directly input from the input device 2 or read from a storage medium (not shown) or input from another device or the like via a communication medium (not shown). A constraint definition consisting of a set of constraint conditions represented by the relational expression is stored. Further, the data domain storage unit 7 stores a data domain, which is a set of values that can be taken by the constraint variable, input in the same manner as described above, together with the constraint variable name that is the name of the constraint variable.

制約処理機能部8は、アプリケーション4から制約定義及びデータドメインそれぞれの所在に関する情報を入力し、これら入力した情報に基づいて、制約定義記憶部6及びデータドメイン記憶部7から、それぞれ制約定義及びデータドメインを読み込む。そして、制約充足ソルバ5に、読み込んだ制約定義及びデータドメインを該制約充足ソルバ5固有の内部表現に変換させ、得られた制約の内部表現をアプリケーション4に出力する。   The constraint processing function unit 8 inputs information on the location of each constraint definition and data domain from the application 4, and based on the input information, the constraint definition storage unit 6 and the data domain storage unit 7 respectively input the constraint definition and data domain. Load a domain. Then, the constraint satisfaction solver 5 converts the read constraint definition and data domain into an internal representation specific to the constraint satisfaction solver 5 and outputs the internal representation of the obtained constraint to the application 4.

これらの機能を実現するため、制約処理機能部8は、制約変数管理手段81及び制約条件構築手段82とからなる構成をとる。   In order to realize these functions, the constraint processing function unit 8 is configured by a constraint variable management unit 81 and a constraint condition construction unit 82.

制約変数管理手段81は、制約定義記憶部6から制約定義を読み込み、該制約定義から制約変数を抽出し、該制約変数の制約変数名をキーとしてデータドメイン記憶部7から当該制約変数のデータドメインを取得し、制約充足ソルバ5固有の内部表現に変換し、これを制約変数名とともに記憶する。   The constraint variable management means 81 reads the constraint definition from the constraint definition storage unit 6, extracts the constraint variable from the constraint definition, and uses the constraint variable name of the constraint variable as a key from the data domain storage unit 7 to the data domain of the constraint variable Is converted into an internal representation specific to the constraint satisfaction solver 5 and stored together with the constraint variable name.

制約条件構築手段82は、前記制約変数管理手段81から渡された制約定義もしくは制約定義記憶部6から制約定義を読み込み、該制約定義から関係式を抽出し、前記制約変数管理手段81に記憶された制約充足ソルバ固有の内部表現に変換された制約変数を利用して、前記抽出した関係式を制約充足ソルバ5固有の内部表現として構築する。   The constraint condition construction unit 82 reads the constraint definition from the constraint variable management unit 81 or the constraint definition from the constraint definition storage unit 6, extracts a relational expression from the constraint definition, and stores it in the constraint variable management unit 81. The extracted relational expression is constructed as an internal representation specific to the constraint satisfaction solver 5 using the constraint variables converted into the internal representation specific to the constraint satisfaction solver.

図2は制約変数管理手段81の処理手順を示すフローチャート、図3は制約条件構築手段82の処理手順を示すフローチャートであり、以下、これらに従って、本発明装置の動作について詳細に説明する。   FIG. 2 is a flowchart showing the processing procedure of the constraint variable management means 81, and FIG. 3 is a flowchart showing the processing procedure of the constraint condition construction means 82. Hereinafter, the operation of the apparatus of the present invention will be described in detail.

最初に、制約変数管理手段81が処理を行う。制約変数管理手段81は、制約定義記憶部6から制約定義を読み込み(s1)、該読み込んだ制約定義から字句を一つずつ抜き出す(s2)。そして、抜き出した字句が予め決められた制約変数名の条件(例えばアルファベットから始まる文字列)にマッチする(s3)なら、その文字列、即ち制約変数名を記憶するとともに、この制約変数名をキーとしてデータドメイン記憶部7から当該制約変数のデータドメインを取得する(s4)。続いて、その字句について、制約充足ソルバ5固有の内部表現に変換する(s5)。そして、制約変数名と変換された制約変数の実体あるいは参照を関連付けて記憶する(s6)。この作業を全ての字句について行い(s7)、その後、制約定義の実体あるいはそれへの参照を制約条件構築手段82へ渡し(s8)、処理を終了する。   First, the constraint variable management unit 81 performs processing. The constraint variable management unit 81 reads the constraint definition from the constraint definition storage unit 6 (s1), and extracts lexical characters one by one from the read constraint definition (s2). If the extracted lexical phrase matches a predetermined constraint variable name condition (for example, a character string starting with an alphabet) (s3), the character string, that is, the constraint variable name is stored, and the constraint variable name is stored as a key. The data domain of the constraint variable is acquired from the data domain storage unit 7 (s4). Subsequently, the lexical word is converted into an internal representation unique to the constraint satisfaction solver 5 (s5). The constraint variable name and the converted constraint variable entity or reference are stored in association with each other (s6). This operation is performed for all the tokens (s7), and then the entity of the constraint definition or a reference to it is passed to the constraint condition construction means 82 (s8), and the process is terminated.

続いて、制約条件構築手段82が処理を行う。制約条件構築手段82は制約定義を読み込み(s11)、該読み込んだ制約定義から関係式を一つずつ抜き出す(s12)。そして、抜き出した関係式の構文解析を行い(s13)、所定の方法により、制約充足ソルバ5固有の内部表現として構築する。   Subsequently, the constraint condition construction unit 82 performs processing. The constraint condition construction means 82 reads the constraint definition (s11), and extracts relational expressions one by one from the read constraint definition (s12). Then, the extracted relational expression is parsed (s13), and is constructed as an internal representation unique to the constraint satisfaction solver 5 by a predetermined method.

具体的には、関係式の中に用いられている字句を一つずつ読み込み、読み込んだ字句について、制約変数名、演算子、括弧に分類した上で、関係式の意味を損なわないために演算子の優先順位、括弧の位置を考慮し、演算子に該当する制約変数間の制約を制約充足ソルバ5に定義されたインタフェースを適宜呼び出すことで該制約充足ソルバ5の中に制約を内部表現として構築する。この処理に必要となる制約変数の実体あるいは参照は、制約変数名をキーに制約変数管理手段81より取得する。そして、このようにして構築した制約充足ソルバ5固有の内部表現による関係式を該制約充足ソルバ5に追加する(s14)。   Specifically, each lexical phrase used in a relational expression is read one by one, and the read lexical expression is classified into a constraint variable name, an operator, and parentheses, and an operation is performed so as not to impair the meaning of the relational expression. Considering the priority of the child and the position of the parenthesis, by appropriately calling the interface defined in the constraint satisfaction solver 5 for the constraint between the constraint variables corresponding to the operator, the constraint is represented in the constraint satisfaction solver 5 as an internal representation. To construct. The entity or reference of the constraint variable necessary for this processing is acquired from the constraint variable management means 81 using the constraint variable name as a key. Then, the relational expression based on the internal expression unique to the constraint satisfaction solver 5 thus constructed is added to the constraint satisfaction solver 5 (s14).

この処理を全ての関係式について個別に行い(s15)、関係式がなくなった時点で処理を終了する(s16)。   This process is performed individually for all the relational expressions (s15), and the process ends when the relational expressions disappear (s16).

以上の処理が終了すると、制約処理機能部8は制約充足ソルバ5の内部表現をアプリケーション4に出力として渡し、処理を終了する。   When the above processing ends, the constraint processing function unit 8 passes the internal representation of the constraint satisfaction solver 5 as an output to the application 4 and ends the processing.

次に、本発明における処理の詳細について例を挙げて説明する。   Next, details of the processing in the present invention will be described with an example.

本例において、アプリケーション4が扱うデータ間の制約(制約定義)は、制約定義記憶部6に記憶されたファイル「const.txt」に記述され、各データのドメインは、データドメイン記憶部7に記憶されたファイル「data.txt」に記述されているとする。「const.txt」及び「data.txt」の内容をそれぞれ図4及び図5に示す。   In this example, the constraint between data handled by the application 4 (constraint definition) is described in the file “const.txt” stored in the constraint definition storage unit 6, and the domain of each data is stored in the data domain storage unit 7. It is assumed that it is described in the file “data.txt”. The contents of “const.txt” and “data.txt” are shown in FIGS. 4 and 5, respectively.

以下、制約処理機能部8がこれらのファイルを入力した時に、制約を構築するまでの処理手順を以下に示す。   Hereinafter, the processing procedure until the constraint is constructed when the constraint processing function unit 8 inputs these files will be described below.

1.制約処理機能部8の制約変数管理手段81は、アプリケーション4よりファイル「const.txt」とファイル「data.txt」の所在の情報を入力する。   1. The constraint variable management unit 81 of the constraint processing function unit 8 inputs the location information of the file “const.txt” and the file “data.txt” from the application 4.

2.制約変数管理手段81は、入力した所在の情報に基づいて、制約定義記憶部6及びデータドメイン記憶部7から各ファイルを入力する。   2. The constraint variable management unit 81 inputs each file from the constraint definition storage unit 6 and the data domain storage unit 7 based on the input location information.

3.制約変数名として「a」を抜き出す。   3. “A” is extracted as a constraint variable name.

4.変数名「a」をキーとしてファイル「data.txt」を参照して値域{1,3,5}を取得する。   4). The range {1, 3, 5} is obtained by referring to the file “data.txt” using the variable name “a” as a key.

5.「a」を制約充足ソルバ5のインタフェースを用いて制約充足ソルバ5固有の内部表現に変換し、制約変数名をキーとして変換された実体への参照を記憶する。   5). “A” is converted into an internal representation unique to the constraint satisfaction solver 5 using the interface of the constraint satisfaction solver 5, and a reference to the converted entity is stored using the constraint variable name as a key.

6.制約変数名として「bb」を抜き出す。   6). “Bb” is extracted as the constraint variable name.

7.変数名「bb」をキーにファイル「data.txt」を参照して値域{2,3,4}を取得する。   7). The range {2, 3, 4} is acquired by referring to the file “data.txt” using the variable name “bb” as a key.

8.「bb」を制約充足ソルバ5のインタフェースを用いて制約充足ソルバ5固有の内部表現に変換し、制約変数名をキーとして変換された実体への参照を記憶する。   8). “Bb” is converted into an internal representation unique to the constraint satisfaction solver 5 using the interface of the constraint satisfaction solver 5, and a reference to the converted entity is stored using the constraint variable name as a key.

9.制約変数名として「c1」を抜き出す。   9. “C1” is extracted as the constraint variable name.

10.変数名「c1」をキーにファイル「data.txt」を参照して値域{3,4}を取得する。   10. The range {3, 4} is acquired by referring to the file “data.txt” using the variable name “c1” as a key.

11.「c1」を制約充足ソルバ5のインタフェースを用いて制約充足ソルバ5固有の内部表現に変換し、制約変数名をキーとして変換された実体への参照を記憶する。   11. “C1” is converted into an internal representation unique to the constraint satisfaction solver 5 using the interface of the constraint satisfaction solver 5, and a reference to the converted entity is stored using the constraint variable name as a key.

12.制約変数管理手段81は、以降の字句がないことを認識し、ファイル「const.txt」を制約条件構築手段82へ渡し、処理を終了する。   12 The constraint variable management unit 81 recognizes that there is no subsequent token, passes the file “const.txt” to the constraint condition construction unit 82, and ends the process.

13.制約条件構築手段82は、制約変数管理手段81からファイル「const.txt」を入力する。   13. The constraint condition construction unit 82 inputs the file “const.txt” from the constraint variable management unit 81.

14.関係式「(a==3)‖(bb!=2)」を抜き出す。   14 The relational expression “(a == 3) ‖ (bb! = 2)” is extracted.

15.関係式「(a==3)‖(bb!=2)」に相当する制約定義を制約充足ソルバ5のインタフェースを用いて制約充足ソルバ5固有の内部表現として構築し、制約充足ソルバ5に出力する。この時、字句「a」と「bb」は、制約変数名をキーとして参照を取得し、制約定義の構築に利用する。   15. A constraint definition corresponding to the relational expression “(a == 3) ‖ (bb! = 2)” is constructed as an internal representation unique to the constraint satisfaction solver 5 using the interface of the constraint satisfaction solver 5 and output to the constraint satisfaction solver 5 To do. At this time, the lexicals “a” and “bb” are obtained with reference to the constraint variable name as a key and used for construction of the constraint definition.

16.関係式「(c1>=4)&&(a<=5)」を抜き出す。   16. The relational expression “(c1> = 4) && (a <= 5)” is extracted.

17.関係式「(c1>=4)&&(a<=5)」に相当する制約定義を制約充足ソルバ5のインタフェースを用いて構築し、制約充足ソルバ5に出力する。この時、字句「c1」と「a」は、制約変数名をキーとして参照を取得し、制約定義の構築に利用する。   17. A constraint definition corresponding to the relational expression “(c1> = 4) && (a <= 5)” is constructed using the interface of the constraint satisfaction solver 5 and output to the constraint satisfaction solver 5. At this time, the lexical phrases “c1” and “a” are obtained with reference to the constraint variable name as a key and used to construct the constraint definition.

18.制約条件構築手段82は、以降の制約条件がないことを認識し、処理を終了する。   18. The constraint condition construction unit 82 recognizes that there is no subsequent constraint condition, and ends the process.

以上の手順により、独立に定義された制約条件をアプリケーション4の実行時に動的に取得し、構築することが可能となる。   With the above procedure, it is possible to dynamically acquire and construct independently defined constraint conditions when the application 4 is executed.

これ以降は、制約充足ソルバ5のインタフェースを適切に呼び出すことで、制約条件に示された制約を満たす解集合を取得することが可能である。   Thereafter, by appropriately calling the interface of the constraint satisfaction solver 5, it is possible to acquire a solution set that satisfies the constraints indicated in the constraint conditions.

なお、これまでの説明では、特に制約充足ソルバを特定しないで発明の処理手順を示したが、先の項でも示したように、種々の制約充足ソルバにおいて処理の流れに本質的な違いはないので、それぞれの制約充足ソルバのインタフェースを適当に用いることで、上記手順は実行可能である。   In the description so far, the processing procedure of the invention was shown without specifying a constraint satisfaction solver, but as shown in the previous section, there is no essential difference in the flow of processing in various constraint satisfaction solvers. Therefore, the above procedure can be executed by appropriately using the interface of each constraint satisfaction solver.

また、本例では、制約定義ファイルのデータ間の制約の表現方法とその意味は、C言語やJava(登録商標)などのプログラミング言語で条件式の記述に用いられているものを利用したが、本来、これは制約処理機能部8が要求するものであり、制約処理機能部8が処理可能なものであることが必要条件である。また、ドメインを管理するファイルやデータベースのデータ構造についても同様で、制約処理機能部8が処理できるものであることが要求される。   In this example, the constraint expression method between the data in the constraint definition file and the meaning thereof are those used in the description of conditional expressions in programming languages such as C language and Java (registered trademark). Originally, this is what the constraint processing function unit 8 requires, and it is a necessary condition that the constraint processing function unit 8 can process. The same applies to the data structure of the file and database for managing the domain, and the restriction processing function unit 8 is required to be able to process.

<実施の形態の他の例>
前述した実施の形態では、アプリケーションと制約処理機能部を独立にした構成を示したが、制約処理機能部の全部あるいは一部の機能をアプリケーションの内部に組み込む構成も可能である。
<Other examples of embodiment>
In the above-described embodiment, the configuration in which the application and the constraint processing function unit are independent has been described. However, a configuration in which all or a part of the function of the constraint processing function unit is incorporated in the application is also possible.

本発明のアプリケーションの実行装置の実施の形態の一例を示す構成図The block diagram which shows an example of embodiment of the execution apparatus of the application of this invention 制約変数管理手段の処理手順を示すフローチャートFlow chart showing processing procedure of constraint variable management means 制約条件構築手段の処理手順を示すフローチャートFlow chart showing processing procedure of constraint condition construction means 制約条件式の一例を示す図A figure showing an example of a constraint condition expression データファイルの一例を示す図Figure showing an example of a data file

符号の説明Explanation of symbols

1:コンピュータ、2:入力装置、3:表示装置、4:アプリケーション(プログラム)、5:制約充足ソルバ、6:制約定義記憶部、7:データドメイン記憶部、8:制約処理機能部、81:制約変数管理手段、82:制約条件構築手段。   1: computer, 2: input device, 3: display device, 4: application (program), 5: constraint satisfaction solver, 6: constraint definition storage unit, 7: data domain storage unit, 8: constraint processing function unit, 81: Constraint variable management means, 82: Constraint condition construction means.

Claims (3)

制約変数の取り得る値の集合であるデータドメインの中から該制約変数間の関係式で表される制約条件の集合からなる制約定義を充足する制約充足解を、制約変数及び制約定義を固有の内部表現に変換して制約充足解を探索する制約充足ソルバを用いて求めるアプリケーションプログラムの実行方法において、
コンピュータが、
アプリケーションプログラムが扱う制約定義を記憶する制約定義記憶部から制約定義を読み込むステップと、
前記制約定義から所定の制約変数名の条件にマッチする制約変数を抽出するステップと、
前記アプリケーションプログラムが扱うデータドメインを制約変数の名前である制約変数名とともに記憶するデータドメイン記憶部から前記抽出した制約変数の制約変数名をキーとして当該制約変数のデータドメインを取得するステップと、
前記取得したデータドメイン中の制約変数を制約充足ソルバ固有の内部表現に変換し、これを制約変数名とともに記憶するステップと、
前記制約定義から関係式を抽出するステップと、
前記記憶した制約充足ソルバ固有の内部表現に変換された制約変数を利用して、前記抽出した関係式を制約充足ソルバ固有の内部表現として構築するステップとを実行する
ことを特徴とするアプリケーションプログラムの実行方法。
A constraint satisfaction solution that satisfies a constraint definition consisting of a set of constraint conditions represented by a relational expression between constraint variables is specified from the data domain that is a set of possible values of the constraint variable. In an application program execution method obtained using a constraint satisfaction solver that searches for a constraint satisfaction solution by converting to the internal representation of
Computer
Reading the constraint definition from the constraint definition storage unit that stores the constraint definition handled by the application program ;
Extracting a constraint variable matching a condition of a predetermined constraint variable name from the constraint definition;
Acquiring the data domain of the constraint variable using the constraint variable name of the extracted constraint variable as a key from the data domain storage unit that stores the data domain handled by the application program together with the constraint variable name that is the name of the constraint variable;
Converting the obtained constraint variable in the data domain into an internal representation specific to the constraint satisfaction solver, and storing this together with the constraint variable name;
Extracting a relational expression from the constraint definition;
Using the constraint variable converted into the stored internal expression specific to the constraint satisfaction solver, and constructing the extracted relational expression as an internal expression specific to the constraint satisfaction solver. Execution method.
制約変数の取り得る値の集合であるデータドメインの中から該制約変数間の関係式で表される制約条件の集合からなる制約定義を充足する制約充足解を、制約変数及び制約定義を固有の内部表現に変換して制約充足解を探索する制約充足ソルバを用いて求めるアプリケーションプログラムの実行装置において、
アプリケーションプログラムが扱う制約定義を記憶する制約定義記憶部と、
前記アプリケーションプログラムが扱うデータドメインを制約変数の名前である制約変数名とともに記憶するデータドメイン記憶部と、
制約定義記憶部から制約定義を読み込み、該制約定義から所定の制約変数名の条件にマッチする制約変数を抽出し、該制約変数の制約変数名をキーとしてデータドメイン記憶部から当該制約変数のデータドメインを取得し、該取得したデータドメイン中の制約変数を制約充足ソルバ固有の内部表現に変換し、これを制約変数名とともに記憶する制約変数管理手段と、
前記制約定義から関係式を抽出し、前記制約変数管理手段に記憶された制約充足ソルバ固有の内部表現に変換された制約変数を利用して、前記抽出した関係式を制約充足ソルバ固有の内部表現として構築する制約条件構築手段とを備えた
ことを特徴とするアプリケーションプログラムの実行装置。
A constraint satisfaction solution that satisfies a constraint definition consisting of a set of constraint conditions represented by a relational expression between constraint variables is specified from the data domain that is a set of possible values of the constraint variable. In an execution device of an application program obtained by using a constraint satisfaction solver that searches for a constraint satisfaction solution by converting to an internal representation of
A constraint definition storage unit that stores constraint definitions handled by the application program ;
A data domain storage unit that stores a data domain handled by the application program together with a constraint variable name that is a name of a constraint variable;
Read the constraint definition from the constraint definition storage unit, extract the constraint variable that matches the condition of the predetermined constraint variable name from the constraint definition, and use the constraint variable name of the constraint variable as a key to store data of the constraint variable from the data domain storage unit A constraint variable management means for acquiring a domain , converting the constraint variable in the acquired data domain into an internal representation specific to the constraint satisfaction solver, and storing the constraint variable name together with the constraint variable name;
The relational expression is extracted from the constraint definition, and the extracted relational expression is converted into the internal expression specific to the constraint satisfaction solver by using the constraint variable converted into the internal expression specific to the constraint satisfaction solver stored in the constraint variable management unit. An application program execution device comprising: a constraint condition constructing means constructed as follows.
制約変数の取り得る値の集合であるデータドメインの中から該制約変数間の関係式で表される制約条件の集合からなる制約定義を充足する制約充足解を、制約変数及び制約定義を固有の内部表現に変換して制約充足解を探索する制約充足ソルバを用いて求めるアプリケーションプログラムを、コンピュータに実行させるためのプログラムにおいて、
コンピュータに、
アプリケーションプログラムが扱う制約定義を記憶する制約定義記憶部から制約定義を読み込むステップと、
前記制約定義から所定の制約変数名の条件にマッチする制約変数を抽出するステップと、
前記アプリケーションプログラムが扱うデータドメインを制約変数の名前である制約変数名とともに記憶するデータドメイン記憶部から前記抽出した制約変数の制約変数名をキーとして当該制約変数のデータドメインを取得するステップと、
前記取得したデータドメイン中の制約変数を制約充足ソルバ固有の内部表現に変換し、これを制約変数名とともに記憶するステップと、
前記制約定義から関係式を抽出するステップと、
前記記憶した制約充足ソルバ固有の内部表現に変換された制約変数を利用して、前記抽出した関係式を制約充足ソルバ固有の内部表現として構築するステップとを実行させる
ことを特徴とするアプリケーションプログラムの実行プログラム。
A constraint satisfaction solution that satisfies a constraint definition consisting of a set of constraint conditions represented by a relational expression between constraint variables is specified from the data domain that is a set of possible values of the constraint variable. In a program for causing a computer to execute an application program obtained by using a constraint satisfaction solver that converts to an internal representation of
On the computer,
Reading the constraint definition from the constraint definition storage unit that stores the constraint definition handled by the application program ;
Extracting a constraint variable matching a condition of a predetermined constraint variable name from the constraint definition;
Acquiring the data domain of the constraint variable using the constraint variable name of the extracted constraint variable as a key from the data domain storage unit that stores the data domain handled by the application program together with the constraint variable name that is the name of the constraint variable;
Converting the obtained constraint variable in the data domain into an internal representation specific to the constraint satisfaction solver, and storing this together with the constraint variable name;
Extracting a relational expression from the constraint definition;
And executing the step of constructing the extracted relational expression as an internal representation specific to the constraint satisfaction solver using a constraint variable converted into the internal representation specific to the stored constraint satisfaction solver. Execution program.
JP2006159552A 2006-06-08 2006-06-08 Application program execution method, apparatus and program Expired - Fee Related JP5013506B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006159552A JP5013506B2 (en) 2006-06-08 2006-06-08 Application program execution method, apparatus and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006159552A JP5013506B2 (en) 2006-06-08 2006-06-08 Application program execution method, apparatus and program

Publications (2)

Publication Number Publication Date
JP2007328580A JP2007328580A (en) 2007-12-20
JP5013506B2 true JP5013506B2 (en) 2012-08-29

Family

ID=38929005

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006159552A Expired - Fee Related JP5013506B2 (en) 2006-06-08 2006-06-08 Application program execution method, apparatus and program

Country Status (1)

Country Link
JP (1) JP5013506B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5334267B2 (en) * 2010-06-29 2013-11-06 日本電信電話株式会社 Method for determining setting contents of ETH-CC, apparatus and program thereof

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4829441B2 (en) * 2001-09-20 2011-12-07 富士通株式会社 Constraint satisfaction problem solving apparatus and solution
JP2004272830A (en) * 2003-03-12 2004-09-30 Hitachi Ltd Device for supporting software development

Also Published As

Publication number Publication date
JP2007328580A (en) 2007-12-20

Similar Documents

Publication Publication Date Title
Kouzis-Loukas Learning scrapy
Gulwani Programming by examples-and its applications in data wrangling
Rama et al. Some structural measures of API usability
Mazanek et al. Constructing a bidirectional transformation between BPMN and BPEL with a functional logic programming language
US20110119282A1 (en) Systems and methods for generating a language database that can be used for natural language communication with a computer
US20160132304A1 (en) Contraction aware parsing system for domain-specific languages
Burlew SAS macro programming made easy
US10713625B2 (en) Semi-automatic object reuse across application parts
US11003426B1 (en) Identification of code for parsing given expressions
JP2008299723A (en) Program verification method and device
CN115033436A (en) Page testing method and device, electronic equipment and storage medium
Körner et al. Natural language specification improvement with ontologies
US20070255697A1 (en) System and method for enhancing source content
CN101727451B (en) Method and device for extracting information
JP5013506B2 (en) Application program execution method, apparatus and program
Raad et al. DOM: specification and client reasoning
Rosenzweig et al. Oracle PL/SQL by example
Mcpherson Going gas: from VBA to google apps script
Sochor et al. Fuzzing-Based Grammar Inference
JP2013145443A (en) Test code generation device, test code generation method and test code generation program
Sadu Automatic detection of outdated comments in open source Java projects
Browning et al. Pro Python 3: Features and Tools for Professional Development
McNamara Rust in Action
Omar Reasonably programmable syntax
Álvarez-Acebal From JavaScript to React. js: Best Practices for Migration

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080801

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110613

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110614

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110615

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111031

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111222

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120601

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees