雑記帳または /dev/null

ソフトウェア開発、哲学、プログラミング、その他雑多なものもののメモ

問題領域と解決領域の関係について

問題の形は解法のそれと必ずしも一致しない。 むしろ、問題の形は解法の形について、何も指示していない。 問題と解法の形が一致していないことは、必ずしも解法の不調和を意味しない。

では、解法から見た時はどうか。 解法は、「問題」なるものをどのように捉えたかを映し出す。 問題に基づいて解法が決定されるのではなく、むしろ解法が問題を定義する。

「1以上10以下の自然数の合計を求めよ」という問題について。 この問題の外観をそのままなぞれば、おそらく 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55 という形になる。 これは「1以上10以下の自然数の合計」という問の形に、ほぼそのまま依存した形となっている。

これを、11 * 5 = 55 と解くこともできる。 「1以上10以下の自然数の合計」を (1 + 10) + (2 + 9) + (3 + 8) + (4 + 7) + (5 + 6) と整理してといたもの。 これは、「(A1 + An) + (A2 + An-1) + ... (An/2 + A(n/2 + 1))」の合計という形に問題を改変してしまっている。 掛け算による表記は、さらにそこから「和がnとなる自然数のペアの個数」という形にまで、跡形もないレベルでの改変を生じさせている。

「1以上10以下の自然数」を、「1 <= n <= 10、等差1の等差数列」と捉えれば(改変すれば)、シグマによる一般化した記述も可能となる。 この場合、もはや個々の数とその合計を示す計算式を記述する必要すらなくなる。

これらに共通しているのは、問題から解法が導かれるのではなく、むしろ問題について「このように解決できる」という認識から問題が改変されている様子だ。 問題によって解法が定まるのではなく、むしろ、解法が問題を定義しているのではないか。