「アルゴリズム」
「ある目的を達成するための、手順を順番にまとめたルール」です。
難しく聞こえますが、実は私たちは日常でも無意識にアルゴリズムを使っています。
🔹アルゴリズムの特徴
🍳 身近なアルゴリズム(お好み焼き編)
広島県発のオタフクソースさんの商品を例に、今回は関西お好み焼の作り方をアルゴリズムとして見てみます。
【用意するもの】
- お好み焼こだわりセット:1袋
- キャベツ:300g
- 青ねぎ:10g、または2本程度
- たまご:2個
- 豚バラ肉:6枚程度
- 水:150ml
- オタフクお好みソース:適量
- お好みで、もち・チーズ・えび・いかなど
材料は公式レシピの2枚分に合わせています。
この手順には、次のようなルールがあります。
【調理手順】
- ・水は150ml
- ・キャベツは300g
- ・生地は押さえつけない
- ・片面を焼いて、裏返して、蒸し焼きにする
- ・最後にもう一度焼いて水分を飛ばす
- つまり、材料、順番、時間、火加減がある程度決まっています。
- これを大きく崩すと、同じような仕上がりにはなりません。
ポイントは、キャベツをたっぷり入れること、厚さ2cmくらいで焼くこと、押さえつけずに蒸し焼きにすることです。
公式ページでも、キャベツ150g、厚さ2cm、中火、蒸し焼きがコツとして紹介されています。
→ これも立派な アルゴリズム
料理の作り方も、立派なアルゴリズムです。
材料の量、混ぜる順番、焼く時間、ひっくり返すタイミング。
これらがある程度決まっているから、同じようなお好み焼きを再現できます。
順番や材料の量が崩れると、うまくいきません。
管理人検証済みですが、正しく作るとバリ旨いです。
ただし、このアルゴリズムを競艇ソフト作成にそのまま当てはめると、重大な欠陥があります。
それは、**「正解(答え)が明確ではない」**ことです。
つまり!美味しいは個人の感想であり効能を保証するものではありません。(よく見る通販の言い訳)よって、私が旨いと言っているだけなのでアルゴリズムの入口として通用しますが、この先は少し定義が厳しくなります。
お好み焼きの正解は主観であり、お好み焼きの場合、完成品を食べた人が、
「うまい」
「まあまあ」
「少し焼きすぎ」
と判断しますあ、これはかなり主観的です。
つまり、
答えが複数あるアルゴリズムは不完全なのです
競艇ソフトに必要な algorithm
ここから少し、パソコンの話に寄せて考えてみます。
コンピューターは、とても賢そうに見えますが、実は人間のように雰囲気で判断することはできません。
「なんとなく良さそう」
「今日は荒れそうな気がする」
「この選手は来そうな気がする」
このような感覚的な判断は、そのままではパソコンに伝わりません。
パソコンに仕事をさせるためには、
何を読み込むのか
どの順番で処理するのか
どの条件を確認するのか
条件を満たしたら何をするのか
満たさなければどうするのか
という形で、手順をはっきり決めてあげる必要があります。
これが、コンピューターにおけるアルゴリズムの基本です。
お好み焼きでいえば、
材料を用意する
水を入れる
粉を混ぜる
キャベツを入れる
焼く
裏返す
仕上げる
という順番がありました。
パソコンの場合も同じです。
ただし、パソコンは人間と違って、途中で気を利かせてはくれません。
「キャベツが多そうだから少し水を減らそう」
「今日は火が強そうだから早めに返そう」
このような判断は、あらかじめルールとして書いておかない限り、実行できません。
つまり、パソコンにとってのアルゴリズムとは、
迷わず、同じ順番で、同じ条件なら同じ結果を出すための手順
だと考えると分かりやすいです。
競艇ソフトを作る場合も、いきなり予想の話に入る前に、まずはこの考え方が必要になります。
データを読み込む。
必要な項目を取り出す。
条件を確認する。
計算する。
結果を表示する。
保存する。
この一つ一つの流れを、パソコンが理解できる形に並べていく作業です。
ここで大事なのは、パソコンは「勝手に考えてくれる道具」ではなく、
人間が決めた手順を、正確に、何度でも繰り返してくれる道具 だということです。
だからこそ、競艇ソフト制作では、まずアルゴリズムを考えることが大切になります。
予想の良し悪しを考える前に、
どのデータを使うのか
どの順番で処理するのか
どこで判定するのか
どこに結果を出すのか
この流れを整理しておかないと、ソフトとして安定して動きません。
アルゴリズムは、競艇の答えをいきなり出す魔法ではありません。
まずは、パソコンに作業をさせるための「道順」です。
この道順があるからこそ、あとからロジックを追加したり、条件を変えたり、検証したりできるようになります。
アルゴリズムとロジックは少し違う
ここで大事なのが、アルゴリズムとロジックは少し違うという点です。
アルゴリズムは、決められた手順に従って答えを出すものです。
たとえば、
勝率が30%以上
オッズが5倍以上
展示タイムが一定以上
条件を満たしたら買う
というルールを作った場合、その条件に従って「買う」「買わない」を判断するのがアルゴリズムです。
ただし、その結果として収支がプラスになるかどうかは、また別の話です。
そこから先は、ロジックの良し悪しの話になります。
つまり、
アルゴリズムは、決めたルールを忠実に実行して、たとえ間違っていても同じ答えを出すもの。
ロジックは、そのルール自体が本当に有効かを考えるもの。
と考えると分かりやすいです。
だからアルゴリズムは競艇ソフトの根幹。
競艇ソフトを自作するなら、アルゴリズムはその根幹です。
ここを大切にしない限り、必ずどこかで破綻します。
なぜなら、アルゴリズムが曖昧なままだと、
- なぜ買ったのか分からない
- なぜ見送ったのか分からない
- なぜ当たったのか分からない
- なぜ負けたのか分からない
- どこを修正すればいいのか分からない
という状態になるからです。
【まとめの一言。】
最初にこのアルゴリズムをタイトルに挙げたのは何故か?
このアルゴリズムを実行することそコンピューターの目的であり、最も得意とする分野だからです!
そこは人間の能力を圧倒的に凌駕する世界です。
パソコンに不慣れな方は「アルゴリズム=コンピューター」と解釈いただいても大丈夫です。


コメント