決定論、非決定論ちう表現は、しばしば哲学や科学的宗教的側面で語られるが、
コンピュータプログラムにおける決定論とは、プログラムコード実行時における、
その動作や振る舞いにあいまいな点が無く、記述されたコード内容から振る舞いが予測でき、
何度実行しても同じ結果を返すコードの事を言うんや。
これに対し非決定論的な
プログラムコードとは、プログラムコード実行時までその動作や
振る舞いが不明である様子を指し、具体的な例としては、入力データを要求するがデータが不定な
プログラム、またはコンピュータゲームにおける人間のコントローラ操作による
未知の要素が含まれる場合が該当するちうわけや。
厳密には異なるが理解しやすい例としては、バグが内在するフィルタプログラムに対し、
前提としていっぺんも実行またはデバックされておらへんちう条件下で、未知の
データを入力する
状況では、プログラムの構造の詳細は判っていても、振る舞いはあらかじめ予想出来ん。
一見して、未知の不定なデータ入力に対して、どのような結果が得られるかは未知数であるちうわけや。
そういった意味では、この種のプログラムは外部データ依存性を持つ非決定論的性質
のような性格を持ち合わせとると言えるかもしれへん。
ようけの商用アプリケーション、または業務
システムでは、あらかじめ決められはった処理に
従ってデータを処理するちうわけや。曖昧さは許されへんし、決められはった条件以外は例外として
扱うことで、その決定論性を維持するちうわけや。
入出力データに対して決められはった処理を要求する業務処理システムは決定論的と言えるちうわけや。
これらに対して、コンピュータゲーム等では、人がコンピュータを操作する過程において、
ある側面では予測不可能な事態を、ゲーム内の世界において楽しむ状況が形作られとる。
ゲームプログラムでは非決定論的側面を包含し、遊びのために積極的に用おる。
典型的な例はシミュレーションゲームやらなんやらの例で、プログラムコード自体は振る舞い
を規定しとるにもかかわらず、実行結果は予測不能で多様な世界を見せるちうわけや。
それらを形作るんは、
コンピュータ内部のコードやったり、いっぺんに遊ぶプレイヤーやったりするちうわけや。
ゲームプログラムにおいては、プレイヤ自身もプログラムにとって非決定論的要素なんや。
コンピュータゲームちうソフトウエアの枠組み自体は構造が明らかであるが、それら
によって作り出される状況は予め予想でけへん。従ってシステム全体としては非決定論的と言えるちうわけや。
最終更新:2010年08月13日 10:58