JP5013506B2 - Application program execution method, apparatus and program - Google Patents
Application program execution method, apparatus and program Download PDFInfo
- 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
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などがある。それぞれの制約充足ソルバは、開発環境、実行環境、インタフェースなどの差異はあるが、基本的な処理の流れは同じである。多くの制約充足ソルバは、制約充足ソルバの生成、初期化、制約変数を内部表現に変換する制約変数定義、制約条件を定義する制約条件式、制約条件式を制約充足ソルバに加えて制約を有効にする制約伝播、制約を充たす解集合を取得する解取得という手順を踏む。
制約プログラミングを用いたアプリケーションは、使用する制約充足ソルバ固有の内部表現による、制約変数の定義と制約条件の定義とからなる解くべき問題の宣言を内部構造として組み込むことが多い。このような場合、開発時に想定した制約条件が変わるような変更が生じると、アプリケーションの改造が必要となるが、そのコストは一般に高く、容易でないという問題があった。 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
入力装置2は、キーボード、マウス等からなり、オペレータ(検査者)がコンピュータ1に所定の情報、例えば制約定義記憶部6やデータドメイン記憶部7に記憶させるデータを入力するためのものである。表示装置3は、液晶ディスプレイ、CRT等の画像表示装置からなり、コンピュータ1における所定の処理結果、例えばアプリケーション4による処理結果である制約条件を満たす解をオペレータに提示するためのものである。
The
制約定義記憶部6は、入力装置2から直接入力され又は図示しない記憶媒体から読み出されて入力され又は図示しない通信媒体を介して他の装置等から入力された、アプリケーション4が扱う制約変数間の関係式で表される制約条件の集合からなる制約定義を記憶している。また、データドメイン記憶部7は、前記同様の態様で入力された、制約変数の取り得る値の集合であるデータドメインを該制約変数の名前である制約変数名とともに記憶している。
The constraint definition storage unit 6 is a block between constraint variables handled by the
制約処理機能部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
これらの機能を実現するため、制約処理機能部8は、制約変数管理手段81及び制約条件構築手段82とからなる構成をとる。
In order to realize these functions, the constraint processing function unit 8 is configured by a constraint
制約変数管理手段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
制約条件構築手段82は、前記制約変数管理手段81から渡された制約定義もしくは制約定義記憶部6から制約定義を読み込み、該制約定義から関係式を抽出し、前記制約変数管理手段81に記憶された制約充足ソルバ固有の内部表現に変換された制約変数を利用して、前記抽出した関係式を制約充足ソルバ5固有の内部表現として構築する。
The constraint
図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
続いて、制約条件構築手段82が処理を行う。制約条件構築手段82は制約定義を読み込み(s11)、該読み込んだ制約定義から関係式を一つずつ抜き出す(s12)。そして、抜き出した関係式の構文解析を行い(s13)、所定の方法により、制約充足ソルバ5固有の内部表現として構築する。
Subsequently, the constraint
具体的には、関係式の中に用いられている字句を一つずつ読み込み、読み込んだ字句について、制約変数名、演算子、括弧に分類した上で、関係式の意味を損なわないために演算子の優先順位、括弧の位置を考慮し、演算子に該当する制約変数間の制約を制約充足ソルバ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
この処理を全ての関係式について個別に行い(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
次に、本発明における処理の詳細について例を挙げて説明する。 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
以下、制約処理機能部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
2.制約変数管理手段81は、入力した所在の情報に基づいて、制約定義記憶部6及びデータドメイン記憶部7から各ファイルを入力する。
2. The constraint
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
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
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
12.制約変数管理手段81は、以降の字句がないことを認識し、ファイル「const.txt」を制約条件構築手段82へ渡し、処理を終了する。
12 The constraint
13.制約条件構築手段82は、制約変数管理手段81からファイル「const.txt」を入力する。
13. The constraint
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
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
18.制約条件構築手段82は、以降の制約条件がないことを認識し、処理を終了する。
18. The constraint
以上の手順により、独立に定義された制約条件をアプリケーション4の実行時に動的に取得し、構築することが可能となる。
With the above procedure, it is possible to dynamically acquire and construct independently defined constraint conditions when the
これ以降は、制約充足ソルバ5のインタフェースを適切に呼び出すことで、制約条件に示された制約を満たす解集合を取得することが可能である。
Thereafter, by appropriately calling the interface of the
なお、これまでの説明では、特に制約充足ソルバを特定しないで発明の処理手順を示したが、先の項でも示したように、種々の制約充足ソルバにおいて処理の流れに本質的な違いはないので、それぞれの制約充足ソルバのインタフェースを適当に用いることで、上記手順は実行可能である。 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.
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.
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)
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)
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 |
-
2006
- 2006-06-08 JP JP2006159552A patent/JP5013506B2/en not_active Expired - Fee Related
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 |