ホーム > システムアーキテクト試験 > 2014年
システムアーキテクト試験 2014年 午前2 問11
論理型プログラミングにおいて、命題の証明を行うための基本的な操作はどれか。
ア:オーバライド
イ:オーバロード
ウ:メッセージパッシング
エ:ユニフィケーション(正解)
解説
論理型プログラミングにおいて、命題の証明を行うための基本的な操作はどれか【午前2 解説】
要点まとめ
- 結論:命題の証明に必要な基本操作は「ユニフィケーション」である。
- 根拠:ユニフィケーションは論理式の変数を具体的な値や他の変数に置き換え、一致させる操作であり、推論の基盤となる。
- 差がつくポイント:オーバーライドやオーバーロードはオブジェクト指向の概念、メッセージパッシングはオブジェクト間通信の手法であり、論理型プログラミングの証明操作とは異なる。
正解の理由
論理型プログラミングでは、命題の証明や推論を行う際に、変数や項を一致させる「ユニフィケーション」が不可欠です。ユニフィケーションは、異なる論理式の変数を適切に置き換え、両者を同一視できるようにする操作で、推論エンジンが証明を進めるための基本的な手続きです。これにより、論理プログラムは条件を満たす解を探索し、命題の真偽を判断します。
よくある誤解
オーバーライドやオーバーロードはプログラミングの多態性に関する用語であり、論理型プログラミングの証明操作とは無関係です。メッセージパッシングはオブジェクト指向の通信手法で、論理推論の基本操作ではありません。
解法ステップ
- 問題文から「論理型プログラミング」と「命題の証明」に関するキーワードを確認する。
- 各選択肢の意味を整理し、論理型プログラミングに関連する用語を特定する。
- ユニフィケーションが論理式の変数を一致させる操作であることを理解する。
- 他の選択肢がオブジェクト指向や手続き型の用語であることを確認し、除外する。
- 正解は「ユニフィケーション」であると判断する。
選択肢別の誤答解説
- ア: オーバライド
メソッドの再定義を指し、オブジェクト指向の概念であり、論理型プログラミングの証明操作ではない。 - イ: オーバロード
同名のメソッドを引数の型や数で区別する多態性の一種で、論理推論とは無関係。 - ウ: メッセージパッシング
オブジェクト間の通信手法であり、命題の証明や論理推論の基本操作ではない。 - エ: ユニフィケーション
論理式の変数を適切に置き換え、一致させる操作で、命題の証明に不可欠な基本操作。
補足コラム
ユニフィケーションはPrologなどの論理型プログラミング言語で中心的な役割を果たします。具体的には、クエリとルールのパターンを照合し、変数に具体的な値を割り当てることで推論を進めます。この操作がなければ、論理プログラムは条件を満たす解を見つけることができません。
FAQ
Q: ユニフィケーションはどのような場面で使われますか?
A: 論理型プログラミングで命題の証明や推論を行う際に、変数の値を決定し、論理式を一致させるために使われます。
A: 論理型プログラミングで命題の証明や推論を行う際に、変数の値を決定し、論理式を一致させるために使われます。
Q: オーバーライドとオーバーロードの違いは何ですか?
A: オーバーライドは親クラスのメソッドを子クラスで再定義すること、オーバーロードは同じ名前のメソッドを引数の型や数で区別して定義することです。
A: オーバーライドは親クラスのメソッドを子クラスで再定義すること、オーバーロードは同じ名前のメソッドを引数の型や数で区別して定義することです。
関連キーワード: ユニフィケーション, 論理型プログラミング, 命題証明, 推論, Prolog