アルゴリズムとロジックの境界線
- ロジカル(logical)
- 「論理的な」「筋の通った」という意味。
- 使い方:「彼はロジカルに話すので説得力がある」
- ロジックが通る / 通らない
- 話の筋道が通っているか、矛盾がないかを表す。
- 使い方:「その主張は少しロジックが通っていない(理屈がおかしい)」
- ロジカルシンキング
- 物事を体系的に整理し、筋道を立てて考える「論理的思考」のこと。
大方この理解で間違いありません。
この定義に従うなら、ロジックは「人間の分野」だと私は感じます。
なぜなら、ロジックには理由があるからです。
「なぜ、その条件を見るのか」
「なぜ、その数値を重視するのか」
「なぜ、この場合は見送るのか」
「なぜ、この順番で判断するのか」
このような問いに対して、人間が筋道を立てて考える部分がロジックです。
一方で、アルゴリズムはその考え方を、パソコンが実行できる形に並べたものです。
つまり、
ロジックは、人間が考える判断の筋道。
アルゴリズムは、その筋道をパソコンに実行させるための手順。
このように分けて考えると、少し整理しやすくなります。
たとえば人間が、
「この条件のときは少し有利だと考える」
「この条件が重なったときは危険だと判断する」
「この数値が低い場合は評価を下げる」
と考えたとします。
これはロジックです。
しかし、このままではパソコンは動けません。
パソコンに実行させるためには、
「Aの値を確認する」
「Bの値が一定以上か判定する」
「条件を満たせば点数を加える」
「条件を満たさなければ点数を加えない」
「最後に合計点を出す」
というように、具体的な手順へ変換する必要があります。
これがアルゴリズムです。
競艇ソフト制作で難しいのは、いきなりプログラムを書くことではありません。
本当に難しいのは、
自分が何を根拠に判断しているのか。
その判断に矛盾はないのか。
それをパソコンに渡せる形まで分解できるのか。
この部分です。
ロジックが曖昧なままアルゴリズムを作ると、ソフトは一応動きます。
しかし、なぜその結果になったのか分からないソフトになります。
逆に、ロジックが整理されていれば、アルゴリズムは後から修正できます。
条件を増やす。
重みを変える。
判定の順番を変える。
使うデータを変える。
このような改善ができるようになります。
だから、競艇ソフト制作では、
「まずロジックを考える」
「次にアルゴリズムへ落とし込む」
「最後にプログラムとして動かし検証する」
この順番が大切でここはあなたの作業なのです。
アルゴリズムは、パソコンを動かすための手順です。
ロジックは、その手順に意味を与える考え方です。
この二つを混同しないことが、競艇ソフト制作の第一歩になります。

