「問題」はすぐには解決できません.それでその「問題」を,「それよりは解決しやすそうな部分問題」に分割することを考えましょう.ピザの問題の場合,たとえば次のように分割します.
分割によって得られたものを部分問題(subproblems),あるいは解決すべき目標という意味で部分目標(subgoals)と呼びます.
多くの場合,部分問題自体もそのままではすぐには解決できません.「ピザ店の電話番号を探す」にしても,職業別電話帳から探す,新聞にチラシが入ってないかどうか探す,あるいは友人に教えてもらう,というような「解決」がさらに必要です.このように「問題-部分問題」構造は何段にも多重になります.もちろん個々の「部分問題」はより細かく,単純なものになってゆきます.そして,「もうそれ以上の分割をしないでも解決できる」という段階まで到達したら,それ以上は細かくせずに済みます.そして,分割された部分問題のすべてについてこの状態になった時点で,もとの問題に対する「解決法」が得られ,「問題解決」の手順記述が終了したことになります.
ここでは「ピザを食べたい」という問題を解決するための手順,すなわち「ピザを食べるためのプログラム」を作ってみました.このような作業をプログラミング(progamming)と呼びます.
26.2 プログラミングの概念 | 26.2.1 問題の分割 | 26.2.2 分割の考え方 | ||
2009年度版に向けて現在作業中です.
このページに関してお気づきの点がありましたら
コメント投稿システムまでお願いします.
|
Mon, 21 Mar 2005 12:18:35 JST (1593d) |