JPS6219962A - 並列処理方式 - Google Patents

並列処理方式

Info

Publication number
JPS6219962A
JPS6219962A JP60159099A JP15909985A JPS6219962A JP S6219962 A JPS6219962 A JP S6219962A JP 60159099 A JP60159099 A JP 60159099A JP 15909985 A JP15909985 A JP 15909985A JP S6219962 A JPS6219962 A JP S6219962A
Authority
JP
Japan
Prior art keywords
processing
cut
goal
rule
stack
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.)
Pending
Application number
JP60159099A
Other languages
English (en)
Inventor
Akihiro Itashiki
板敷 晃弘
Hideho Masuzawa
増沢 秀穂
Takeshi Sato
健 佐藤
Koichi Kumon
耕一 久門
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP60159099A priority Critical patent/JPS6219962A/ja
Publication of JPS6219962A publication Critical patent/JPS6219962A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Devices For Executing Special Programs (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔目 次〕 概要 産業上の利用分野 従来の技術 発明が解決しようとする問題点 問題点を解決するための手段 作用 実施例 プログラム実行部(第1図) 処理例(第2図) 発明の効果 〔概 要〕 PR()LOG等のカット機能を含む非決定性プログラ
ムの並列処理の制御方式である。質問データのボディ又
は、ユニファイするルールのボディにあるカット記号の
個数を累積した値から、処理済のカットの個数を減じた
値を保持するカットレベルレジスタを設ける。ゴールス
タックには、各ゴールのスタック時の該レジスタ値を保
持し、力・ノド処理に使用する。このようにして、ゴー
ルスタックの中で、レジスタ値がOを持ち、且つ有効な
ゴールがあれば他処理装置へ分割する候補とする。
〔産業上の利用分野〕 本発明はいわゆる非決定性プログラムの処理に係り、特
に該処理を複数の処理装置で実行するための並列処理方
式に関する。
人工知能の研究分野等において、例えばPROLOGと
よばれるような非決定性プログラミング言語が使用され
る。
よく知られていするように、PROLOGで記述される
プログラムは、ルールとよばれるデータの集まりで構成
され、質問データをルールと照合して、所定の関係を満
足するという意味で質問にマツチするルールを検索し、
マツチするルールによって、次の質問データを構成する
という処理の反復によって、プログラム実行が進行する
このような処理を次々に構成される質問について進める
ことにより、次の質問データを構成する処理において、
変数の値が逐次確定するというような過程を経て、最後
に質問が空になったときに、例えば変数に与えられてい
る値によって解が求まる。
■の質問にマツチするルールは一般に複数存在し得るの
で、PROLOGプログラムの実行の全体は、そのよう
な複数のルールがある処理ステップで分枝を有する探索
木を構成し、一般に、■の質問入力について複数組の解
が存在し得る。
従って、複数の処理装置の並列処理によって、複数組の
解の探索を並行に進めることは特に有用である。
〔従来の技術〕
PI?0LOGプログラムは、ルールの集まりとして構
成され、各ルールは下記の形式を有する。
ヘッドニーボディ こ−で、ヘッドは1個の述語、ボディは1個の述語か、
“、”で連結された2個以上の述語からなる述語列(即
ち、述語、述語、−・−1述語)、又は空であり、ボデ
ィが空のルールはヘッドのみの形式とする。
述語は、 述語名(引数、引数1−’l 引数) の形式を持つ。こ\で引数は定数、変数又は構造体であ
り、定数は小文字で始まる文字列、変数は大文字で始ま
る文字列であり、構造体は、構造体温(引数、引数、・
−1引数) の形式を持つ。又、述語名及び構造体温は小文字で始ま
る文字列である。
このようなルールの列で構成されるPROLOGプログ
ラムの実行は、例えば“?−述語列(、又は述語)”の
形式で指定される質問を入力することによって開始され
る。この質問の質問データである述語列(又は述語)を
ゴールという。
プログラムの実行は、ゴールと同じ述語名のヘッドを持
つルールを探索し、一致したら両者の引数を比較して、
各対応位置の引数が所定の関係にあれば両者のマツチが
得られたとする。
マツチが得られた場合には、そのルールのボディを新た
にゴールとして上記の処理を進める。このとき、ボディ
を構成する述語の引数の変数に既に定まる値がある場合
には、その値によって置換する等の処理をして、新ゴー
ルとする。(上記の、ゴールとルールのヘッドとのマツ
チを得、要すればそのボディの変数に所要の置換を行う
処理を、以下においてユニファイという)。
このようにして、ゴールのすべての述語が、ボディの空
なルールとユニファイすることにより、解の一つに達す
るプログラム実行は終わる。
しかし、一つのルールの述語とユニファイされるルール
は複数個あり得るので、そのような場合にはそのステッ
プで探索木の分枝が生じ、それぞれの分枝についての個
別の実行が有り得る。
こ゛のような実行態様を考慮して、以下に述べるような
並列処理方式が提案されている。
即ち、前記のようにPROLOGプログラムの実行の全
体は探索木の構造となるが、その分枝点に到達した処理
装置が分枝の1技の処理を深める方向に処理を進めれば
、一般に未処理の枝が残るようになる。
従って、分枝点において処理を分割することにすれば、
並列処理のための分割点の候補が、処理の進行に伴って
自動的に設定される。
この分枝点とは、前記PROLOGプログラム実行の説
明から明らかなように、質問データを構成する1述語と
のマツチを探索する必要のあるルール、より具体的には
質問データの述語名と同じ述語名をヘッドに持つルール
、が複数個ある場合を言っている。
このような分枝点において、未処理の質問データの1組
を分割し、要すれば、走査開始点とすべき先頭のルール
を指定して、それらを遊び状態の処理装置に渡せば、そ
の処理装置は以降の処理を、分割元との通信等の必要無
く、すべて単独に実行することができる。
第3図は、このような方式で並列処理を実行するための
情報処理システムの一構成例である。
図において、各処理装置1は、それぞれ独立にPROL
OGを実行できる処理装置である。
各処理装置1は、隣の処理装置1で発信又は中継される
要求メツセージを、通知線2から受は取る。このとき、
もし前記の意味で分割できる処理がある場合には、交換
機3を介して該要求の発信元処理装置1へ、前記のよう
な所要の分割データを送ることにより、処理を分割する
分割すべき処理が無い場合には、通知線2により、受信
した要求メソセージを次の処理装置1へ中継する。又、
自身が遊び状態になった場合には、要求メソセージを生
成して、次の処理装置1へ発信する。
なお、各処理装置1は交換機3を介して゛周辺装置4と
接続し、プログラム、データ等の入出力及び外部との通
信を行うことができる。
第4図は各処理装置1の一構成例を示すブロック図であ
る。
受信部20は交換機3を経て、周辺装置4又は他の処理
装置1から、ルールのデータ、質問データ及び所要の制
御情報等を受信して、プログラム実行部21に渡す。
プログラム実行部21は受は取った質問データによって
プログラムを実行し、又併せて処理を分割するため9情
報を構成する。
通知制御部22は通知線23.24と接続し、通知線2
3から要求元処理装置1のアドレスを表示する要求メツ
セージを受信すると、これを分割制御部25に通知し、
分割制御部25から、分割する処理が無い旨の応答が有
ったときは、受信したメソセージを通知線24により隣
接処理装置へ中継する。又、遊び状態になると、自処理
装置アドレスを表示する要求メツセージを発信する。
要求メツセージを受信し、プログラム実行部21に分割
する処理がある場合には、分割制御部25は所要の情報
をプログラム実行部21から取り出して、送信部26か
ら交換機3を経て、要求元処理装置宛に送出する。又、
プログラム実行部21内の該当処理を処理済とする。
第5図はプログラム実行部21の主要部の一構成例を示
すブロック図である。
処理部27は記憶部28のデータによってプログラムを
実行する。記憶部28のデータテーブル30にはプログ
ラムを構成するルールと、質問のデータがテーブル形式
で保持される。
ゴールスタック31は、データテーブルし30上の、次
に探索するルールを指すポインタ (以下において、ル
ールポインタという)と、ゴールのデータを指すポイン
タ(以下において、ゴールポインタという)の対を、い
わゆるスタック方式で格納する領域である。
作業域32には、処理中の述語内の変数の値及びその他
の制御情報が保持される。
次に、第1表に示す簡単なルールに、質問として、?−
f(a、A)、p(B、C)が与えられた場合を例とし
て、処理の分割を説明する。
第6図は、該処理における、1つの処理装置1のデータ
テーブル30とゴールスタック3Iの状況を示す。図に
おいて、ゴールスタックの各項の、gはゴールポインタ
、rはルールポインタを示すものとする。
第6図の(a)に示す初期状態では、ゴールポインタが
データテーブルの最終項にある質問データの最初の述語
f (a、 A)を指し、ルールポインタは先頭のルー
ルのヘッドを指している。
従って、ルールの先頭からf(a、A)とマツチするル
ールを走査し、第3のルールf (a、 b)でマツチ
するので、Aにはhが代入され、このルールはボディが
ないので、質問の次のゴールを処理するために、ゴール
スタックに第2項が追加されて、ゴールとしてp (B
 、 C)をポイントし、ルールポインタは先頭のルー
ルを指す。
又、ゴールスタックの第1項は、いわゆるバンクトラン
クのために、ルールポインタを次の第4のルールへ移す
ゴールp(B、C)は、第1のルールとユニファイされ
るので、次のゴールは第1のルールのボディのf(X、
Y)になり、それを指すゴールポインタがゴールスタッ
クの第3項としてスタックされ、第2項のルールポイン
タは、前記と同様に、次の第2のルールへ移される。
このようにして、1つの処理装置1内の処理が進められ
るが、もし第6図のib)又は(C)の状態において、
他の処理装置1からの要求メツセージを受信した場合に
は、例えば、ゴールスタックの最終項より前の1項のゴ
ールポインタ及びルールポインタの情報、及び所要の変
数値等を通知して、自身のゴールスタックからは、その
項を除くことにより、有効に処理の分割ができる。
〔発明が解決しようとする問題点〕
PROLOG等には、公知のようにカッ) (cut)
  と呼ばれる機能がある。
カットは、ルール等の中で、述語と同等の位置に記述さ
れる「!」で表されるカット記号によって指定され、カ
ット記号より後の述語列の操作の結果として、該カット
記号より以前の述語列の操作へ戻ることを禁止するもの
である。
前記第1表に示したルールにカットを追加して、第2表
のように変更したものとし、質問として、?−f(a、
A)+!、p(B、C)が与えられた場合を例として、
処理を第7図を参照して説明する。
第7図(a)では、第6図の場合と同様に、最初のゴー
ルと走査開始点がポイントされている。
走査の結果、ルールの第3項と、f(a、A)がユニフ
ァイされるので、(b)に示すように、ゴールスタック
の第1項のルールポインタは、次のルールを指定するよ
うに変更される。
又、ユニファイしたルールにはボディがあるので、その
ボディを新たなゴールとするように、スタックの第2項
が追加される。
ゴールスタックの第2項の指定を実行子ると、ゴールが
カット記号であるので、この実行は完了して、ゴールス
タックのこの項は除かれる。又、ルールf(a、b)の
ボディを完了したことになるので、質問のゴールに戻り
、ゴールf (a、 A)の処理はカットされるので、
ルールポインタの値を無効を示すナル(null)記号
とし、fc)に示すように次の述語をゴールとして指定
する。
このようにカット指定のあるプログラムを前記従来の並
列処理方式によって処理した場合には、例えば第7図(
blの状態で要求メツセージを受は取ると、ゴールスタ
ックの第1項で指定される処理を分割するので、前記の
ように第3のルールのボディのカットが効果するべきで
あるにも関わらず、それが無視されて、質問のゴールf
(a、A)とルールf(a、c)とのユニファイ及びそ
れ以降の処理が実行されてしまうという問題があり、前
記並列処理方式ではカット機能を使用できなかった。
C問題点を解決するための手段〕 第1図は、本発明の構成を示すブロック図である。
図は、前記処理装置lのプログラム実行部21に代わる
、プログラム実行部の詳細構成を示し、40は処理中の
カットの多重レベルを示すカットレベルレジスタ、41
はゴールスタックである。
〔作用〕
本発明のプログラム実行部は、以下に述べるカットに関
する処理の他は、前記従来のプログラム実行部21と同
様に動作する。
カットレベルレジスタ40は、処理中において、現に処
理中のゴールが何重のカント記号を経過した、カントの
多重レベルにあるかを示す数値を保持する。
ゴールスタック41のスタックの各項は、従来と同様の
ゴールポインタfg)及びルールポインタ(rlの他に
、その項のゴールについて、その処理が何重のカントの
中にあるかを示すカットレベル値(C)を存する。
カントレベルレジスタ40の値、及びゴールスタック4
1の各項のカットレベル値(C)は、カット記号をボデ
ィに含むルールを処理した場合、及びカットを処理した
場合に所定の更新が行われる。
このようにして処理をしているときに要求メツセージを
受は取った場合には、ゴールスタックの最終項より前の
項の中から、カットレベル値が0であり、ルールポイン
タが有効である(ナルでない)項を選び、それを分割す
る。
この構成により、分割される処理は、カットの影響がな
く、且つ走査すべきルールが存在するゴールの処理とな
り、前記の問題は解消される。
〔実施例〕
1立久i人夫丘皿 第1図において、 本発明のプログラム実行部は、以下
に述べるカットに関する処理の他は、前記従来のプログ
ラム実行部21と同様に動作し、処理部27は記憶部2
8のデータによってプログラムを実行する。
記憶部28のデータテーブル30には、プログラムを構
成するルールと質問のデータがテーブル形式で保持され
ている。又、作業域32には、処理中の述語内の変数値
及びその他の制御情報が保持される。
カットレベルレジスタ40の値(以下において、cut
levelとして示す)は最初Oとし、質問データのボ
ディ又は、ユニファイするルールのボディにあるカット
記号の個数を累積した値に更新され、ゴールスタック4
1の各項のCは、その項がスタックされるときのcut
levelに等しくされる。
又、カット処理を実行したときは、ゴールスタック41
の各項を、順次以前に遡ってc < cutlevel
の項に到達するまで調べ、C≧cutleve[の各項
について、r =nullとして処理を不要にし、且つ
Cを1減じる。その後cutlevelも1減じる。
処理± 以上の処理を前記第7図と同様の場合について、第2図
を参照して以下に説明する。
第2図(alにおいて、ゴールポインタ(glとルール
ポインタ(rlは従来と同様であり、こ\でゴールポイ
ンタが指す質問データのボディに、カット記号が1個あ
るので、カットレベルレジスタ40の値であるcutl
evelは1にセットされる。
こ\でf(a、A)と第3のルールとのユニファイが行
われて、(blに示すように、ゴールスタック4Iの第
1項のルールポインタ(0は次のルールを指定するよう
に変更される。ユニファイした第3のルールには図示の
ようにカット記号を1個含むので、cutlevelは
+1して2となり、Cの値もcutlevelの値2に
設定される。
ユニファイしたルールにはボディがあるので、そのボデ
ィを新たなゴールとするように、スタックの第2項が追
加される。
ゴールスタックの第2項の指定を実行すると、ゴールが
カット記号であるので、この実行は完了して、ゴールス
タックのこの項は除かれ、(C)に示す状態になる。
力・7トが実行されたので、(b)から(C1に移行す
る過程で、ゴールスタック41が遡って調べられる。
現在は2項しかないので、第1項のみ処理され、C≧c
utlevelを満足するので、Cは−1して1になり
、ルールポインタ(r)はナルにされる。これでスタッ
クの遡行処理が終わり、その後cutlevelも−1
して1にされる。
ルールf(a、、b)のボディを完了したことになるの
で、fc)におけるゴールスタック41の最終項のゴー
ルポインタ(g)は質問データに戻り、次の述語をゴー
ルとして指定する。
質問データの第2の述語はカット記号であるので、カッ
ト処理が実行され、第2図Fdlに示すように、次の処
理を示すゴールポインタ(g)は質問データの第3の述
語に移る。又、前記の場合と同様に、ゴールスタック4
1の遡行処理の結果、第1項のC及びcutlevel
がそれぞれ−1されて、何れもOになる。
ゴールスタック41の第2項の指すゴールは、第1のル
ールとユニファイされるので、ゴールスタック41は(
e)に示す状態になる。そこで、ゴールスタック41の
第3項により、第1のルールのボディをゴールとして、
第3のルールとのユニファイが実行される結果、(f)
の状態へ移行する。
その場合に、ユニファイしたルールにカット記号が1個
あるので、前記と同様にcutlevelは+1されて
1となり、スタック第3項のCもcutlevelと同
じ1に設定される。
このようにして処理をしているときに要求メソセージを
受は取った場合には、ゴールスタックの最終項より前の
項の中から、C=Oで、ルールポインタが有効である(
ナルでない)項を選び、それを分割する。即ち、第2図
(a)〜(f)に示した状態では、(e)又は(flの
場合のスタックの第2項のみが分割可能となり、例えば
(b)の状態でスタックの第1項の処理が分割されると
いうようなことを避けることができる。
〔発明の効果〕
以上の説明から明らかなように本発明によれば、PRO
LOGプログラム等の並列処理が、カットを含むルール
にも適用可能になるので、情報処理システムの性能、効
率を改善するという著しい工業的効果がある。
【図面の簡単な説明】
第1図は本発明の実施例構成ブロック図、第2図は本発
明の処理説明図、 第3図は情報処理システムの一構成例ブロック図、第4
図は処理装置の一構成例ブロック図、第5図はプログラ
ム実行部の一構成例ブロック図、第6図は従来の処理説
明図、 第7図は従来のカット処理説明図 である。 図において、 1は処理装置、    2.23.24は通知線、3は
交換機、     4は周辺装置、20は受信部、  
   21はプログラム実行部2.22は通知制御部、
   25は分割制御部、26は送信部、     2
7は処理部、28は記憶部、     30はデータテ
ーブル、31.41はゴールスタック、 32は作業域、 40はカットレベルレジスタ 本発明のnf+1(JII t+’!成ブロック図第1
図 情報処理システムの一構成例ブロック図第3図 第2図ta+〜(C1 処理装置の−t14成例ブロック図 第4図 プログラム実行部の従来構成ブロック図第5図 第6図 従来″糸′y処冒説明図

Claims (1)

  1. 【特許請求の範囲】 1以上のルールからなるデータから、質問データと所定
    の関係を満足するルールを探索し、該所定の関係を満足
    する1のルールと該質問データとに基づいて次の質問デ
    ータを構成する処理を反復し、 1の該質問データについての上記処理の、上記探索の対
    象とすべき所定条件を有する2以上のルールがある場合
    に、該質問データに始まる処理の未処理部分を実行する
    ための情報を順次スタックし、 該質問データが所定のカット記号である場合には、該未
    処理部分の所定部分の処理実行を禁止するようにされた
    処理を実行する処理装置を複数台有し、 各処理装置は他の処理装置からの要求があったとき、上
    記スタックした1の質問データに始まる未処理部分の処
    理を、該要求元処理装置に分割するようにした情報処理
    システムにおいて、 該所定の関係を満足したルールに含まれる未処理のカッ
    ト記号の個数の累積値であるカットレベルを保持するカ
    ットレベルレジスタ(40)、及び、上記スタックされ
    た各質問データごとに該質問データをスタックしたとき
    のカットレベルの値を保持し、該値は所定条件でカット
    記号が処理されるごとに、減少されるようにした手段(
    41)を有し、 該スタックされた質問データは、該保持されるカットレ
    ベルが0の場合に限り、該質問データに始まる処理を、
    前記分割の候補とされるように構成されていることを特
    徴とする並列処理方式。
JP60159099A 1985-07-18 1985-07-18 並列処理方式 Pending JPS6219962A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60159099A JPS6219962A (ja) 1985-07-18 1985-07-18 並列処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60159099A JPS6219962A (ja) 1985-07-18 1985-07-18 並列処理方式

Publications (1)

Publication Number Publication Date
JPS6219962A true JPS6219962A (ja) 1987-01-28

Family

ID=15686213

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60159099A Pending JPS6219962A (ja) 1985-07-18 1985-07-18 並列処理方式

Country Status (1)

Country Link
JP (1) JPS6219962A (ja)

Similar Documents

Publication Publication Date Title
EP0314650B1 (en) Method for optimized rete pattern matching in pattern-directed, rule-based artificial intelligence production systems
Bauer Programming by examples
Kopelowitz On-line indexing for general alphabets via predecessor queries on subsets of an ordered list
CN105095425B (zh) 一种数据库的跨库结转方法及装置
CN101425084A (zh) 基于有序二叉树的模式匹配方法
CN107315843A (zh) 海量结构化数据的存储方法和系统
CN107818181A (zh) 基于Plcient交互式引擎的索引方法及其系统
Tai Syntactic error correction in programming languages
JPS6219962A (ja) 並列処理方式
Cook The Base Selection Task in Analogical Planning.
WO2018205986A1 (en) Method and system for parallelizing sequential graph computation
WO2012035754A1 (ja) データ統合処理装置、システム、方法及びプログラム
JPS62114032A (ja) 処理分割制御方式
JPS61279939A (ja) 並列処理方式
US5146537A (en) Method for judging whether conditions are satisfied by using a network having a plurality of nodes representing the conditions
JP3637606B2 (ja) データ処理装置
JPS61279928A (ja) プロログ・プログラム並列処理方式
Kandalov et al. Incremental frequent itemsets mining with MapReduce
Benoit et al. Characterization of the optimal solutions of the F2//Cmax scheduling problem
Kazakov et al. Creating a Multi-Agent Information-Analytical System for Implementing Domain-Specific Search for Information
JPS5846439A (ja) 計算機のプログラム編集方法
Hayashi et al. An O ((log log n)/sup 2/) time algorithm to compute the convex hull of sorted points on reconfigurable meshes
Cheng et al. A note on hierarchical minimization of flowtimes on parallel-machines
JPH06222913A (ja) プログラム解析装置
JPH0417031A (ja) 定数値伝播最適化方式