|
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。 ・ 帰納 : [きのう] (n,vs) inductive ・ プログラミング : [ぷろぐらみんぐ] 【名詞】 1. programming 2. programing, (n) programming/programing
帰納プログラミング (Inductive Programming, IP) は人工知能とプログラミングの研究分野をまたぐ自動プログラミングの特殊分野である.通常,入出力例や制約などの不完全な仕様からの,宣言型(論理型または関数型)言語のプログラムの学習を扱う.学習されるプログラムはしばしば再帰的である. 使用するプログラミング言語によって,いくつかの種類の帰納プログラミングが存在する.LispやHaskellなどの関数型言語を用いる帰納関数プログラミング,そして特に,Prologのような論理型言語やのようなその他の論理的表現を用いる帰納論理プログラミングがこれまでよく知られていたが,制約プログラミングや確率プログラミングのようなその他のプログラミング言語も用いられている. ==定義== 帰納プログラミングは,不完全な形式的仕様からのプログラムやアルゴリズムの学習に関する全てのアプローチを含んでいる.帰納プログラミングシステムへの可能な入力形態としては,訓練入力と対応する出力の組の集合や出力評価関数,意図したプログラムの望ましい挙動の記述,トレースすなわち特定の出力を計算する過程を記述した行動系列,得られるプログラムの計算量を考慮した制約,種々の背景知識が挙げられる.背景知識としては,標準的なデータ型,使用する定義済み関数,データの流れや意図したプログラムを記述するプログラムの概形あるいはテンプレート,解の探索を誘導するヒューリスティクスやその他のバイアスが挙げられる. 帰納プログラミングシステムの出力は,条件分岐やループや再帰構造を含む様々なプログラミング言語や,その他のTuring完全な表現言語の形態を取り得る. 多くの応用において,出力プログラムは例や不完全な仕様と合致することが要求される.このため,通常完全な仕様を用いる演繹的プログラム合成と対比されて,帰納プログラミングは自動プログラミングやプログラム合成の分野内において特殊な分野と考えられている. 場合によっては,帰納プログラミングは,宣言型プログラミングや表現言語を用いることができる,より一般的な領域と考えられることもある.一般の機械学習や,の特定領域や,記号人工知能の領域に見られるように,例の中にある程度の誤りを認めることもある.これらの他分野との明らかな違いの1つは,必要とされる例や不完全仕様の数である.一般に,帰納プログラミング手法は少ない例から学習することができる. 帰納プログラミングの多様性は,適用先や使用言語の多様性から来ていることが多い.論理プログラミングや関数プログラミングの他にも,関数論理プログラミング,制約プログラミング,確率プログラミング,abductive logic programming, 様相論理,action language, agent languageや多くの種類の命令型言語など,多くのプログラミング言語や表現言語が,使用され,または使用することが提案されている. 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「帰納プログラミング」の詳細全文を読む スポンサード リンク
|