[プロ技]複雑なアルゴリズムはいかにして作るか

woody_1227 オーナー 公式アカウント


ログインすると、チェック機能を利用できるようになります。
○複雑なアルゴリズムは① で組み立てる
①とは、複雑な問題をより簡単な② し、1つ1つの処理を考えやすくしていき、
小問題がそれ以上分割できないレベルに達したら、各小問題を分割前の問題に③ していきながら、
アルゴリズムを組み立てていく方法のこと。

制御構造の④ とは、ある制御構造を他の制御構造へはめ込む操作のこと。
入れ子操作は、⑤ に基づく。

⑤とは、どんなアルゴリズムも、⑥ であるような「⑦ 」、「⑧ 」、「⑨ 」の3つの制御構造の組み合わせのみで表現できること。

①は、疑似コード(プログラミング言語の制御構造を用い、日常使う言語でアルゴリズムを表現したもの)を使い、⑩ を残しながら記述していく。

「⑩は⑪

・⑫ 構造
・⑬ 構造
・⑭ 構造

○⑮ プログラミング
「きれいな制御構造」のみを用いてプログラムを作る。
①により、構造の把握しやすいプログラムにする。
①の各段階において、プログラムの正しさを検証する。

○⑯ プログラミング
⑮とほぼ同様の概念。プログラミングの全過程(設計、コーディング、テスト)において大局から細部へと作業を進める。

プログラミング
細部から大局へと作業を進めるプログラミング。プログラムの小さな部品を組み合わせ、全体を構成していく。

○①における留意点
(1)①によって問題を分割するとき、分割された小問題の間で引き渡されるべき⑱ や、それに対する⑲ を明確にする。
(2)分割された小問題の一方を⑳ おいたままで、他方の小問題をあまり㉑ まで詳細化しない(残された小問題を検討する段階になって、すでに行った詳細化の努力が無駄になるおそれがある)。
(3)完成したアルゴリズムをもう一度見直し、「㉒ はないか」、「さらに㉓ する余地はないか」十分に検討する。