本研究では、探索や試行錯誤的な解法を必要とする並列性の高い問題に対する並列プログラミング方法論を確立することを目的とし、応用問題を通じてその有効性を実証することを目指した。知識情報処理などの人工知能の分野では、解を得るための最適なアルゴリズムが知られておらず、部分解からより完全な解を構築する方法や解自体が満たさなければならない制約条件を記述することによって問題を解く手掛かりにすることが多い。このような問題に対して解を構成する断片的な要素や部分解を並列プロセスとして表現することによってプログラミングを行う方法論について研究した。 本年度は幾つかの探索問題について問題の再帰的な記述および制約条件の付加を行ない、そこから並列プログラムを導出する研究を行なった。その結果、再帰的に定義された探索問題の記述から半自動的に、並列プロセスに基づくプログラミングが可能であることを示した。 また、並行プログラミング方法論の応用として自然言語の解析システムを並行実行可能な枠組でプログラミングを行ない、自然言語に存在する多様な現象を解析する手法を個別に記述し、それらを並行プログラミングの考え方によって自然に結合することにより、様々な言語現象の複合的な現れに対処できる手法を考案した。 具体的には、自然言語の特定の単語に関連して現れる熟語、または、慣用句的な表現と一般的な文法規則を例にとり、一般的な規則は文法現則として、熟語的な表現は語の中に局所的な規則として記述し、両者を並行プロセスとして実現した。個別に記述されたこれらの並行プログラムの断片を同時に動作させることにより、両者が解析実行中に動的に相互干渉して正しく動作することを確認した。これは、モジュ-ル性の高い記述と見通しのよいソフトウェア構成法の実現と考えることができる。
|