Mutable_Yunの業務改善ブログ

業務改善や生産性向上のブログです。自動化の手段として、VBAやRPAの勉強に役立つ解説をしています。

3分で分かるロジックとアルゴリズムの違い

今回はプログラミングで良く出てくる言葉であるアルゴリズムとロジックについて解説します。この考え方はプログラミングだけで無く、業務改善に役立つので、サクッと理解してしまいましょう。

ロジックとは

まずはWikipediaに掲載されている説明を見てみます。

ロジック

論理、論理学 - ギリシア語ロゴスに由来する。(ラテン語:logica、英語:logic、ドイツ語:logik、フランス語:logique)
論理回路など、上記の「論理」に由来する多数の語がある。
ビジネスロジック 本来は上記の「論理」に由来するものの、この語の使用者がそれを意識していることはまずない。一部の業界では単に「ロジック」の語で、こちらの方を100%ほぼ間違いなく指している。
プログラムにおける処理の内容、手順、方法のこと。
<以下、省略ロジック - Wikipedia2019/10/28>

ここではビジネスロジックとプログラムにおける処理について簡単に解説します。

会社で単に「ロジック」と言ったら大抵はビジネスロジックのこと

Wikipediaの説明の中にあるビジネスロジックが、実際に良く耳にする「ロジック」のことです。Wikipedia曰く、本来「論理」に由来しているがそれを意識していることはまず無いそうです。まあ、そうかもしれませんね。ビジネスでロジックと言えばどんな使われ方をするかと言えば、このような感じです。

  • 見込み顧客へのアプローチ成功のロジックをあぶり出す
  • この商品の需要予測ロジックに一次平滑指数法を利用する

これは裏でどのような論理で物事が運んでいるかという意味で、ロジックと言う言葉が使われています。1つ目の例では見込み客に対してアプローチをして、契約が成立するためには何かうまくいく法則のようなものがあって、過去の成功事例からそのうまくいく法則をあぶりだそう、と言う意味で使っています。

2つ目の例では「この商品の場合は、数ある需要予測の手法の中でも、一次平滑指数法を使おう」と言う意味で使っています。

共通するのは「AになるのはBだから」や「もしCだったらDをする」といった因果関係がある事です。

まさにこれこそが私たちが耳にする「ロジック」の意味です。

プログラムにおける「ロジック」

プログラミングをする時にロジックと言えばWikpediaの説明通り、処理の内容や手順の事です。ビジネスロジックでの説明と同様「もし○○なら、△△する」と言う事です。条件によって処理を分岐させるのはプログラミングでよくある事です。Wikipediaの説明にある「処理の内容、手順、方法のこと」とはこの事を意味しています。

業務改善にはロジック化が役立つ

少し余談となりますが、業務においてロジックがしっかりしていると自動化がしやすいのはビジネスロジックのように「もし○○なら、△△する」と言えれば、プログラミングできるためです。人が毎回判断しなくてはいけない様に思っていたが、実は見込み顧客へのアプローチ成功のロジックをあぶり出すと、メールマガジンに登録しているだけでは成約率は低いが、過去1週間以内のウェブサイトへの訪問が3回以上だと成約率が50%に上るというロジックがあぶり出せた。だから、メールマガジンの登録一覧からウェブサイトへの訪問が3回以上の顧客を割り出すと言うロジックで、見込み顧客自動抽出システムを作ろう

って感じですね。業務改善は業務の整理整頓とロジックをあぶり出すところから。

アルゴリズムとは

先ほどと同様Wikipediaに掲載されている説明を見てみます。

アルゴリズム(英: algorithm [ˈælgəˌrɪðəm])とは、<中略>問題を解くための手順を定式化した形で表現したものを言う。算法と訳されることもある。

「問題」はその「解」を持っているが、アルゴリズムは正しくその解を得るための具体的手順および根拠を与える。さらに多くの場合において効率性が重要となる。

コンピュータにアルゴリズムをソフトウェア的に実装するものがコンピュータプログラムである。
<以下、省略
アルゴリズム - Wikipedia
2019/10/28>

アルゴリズムの方のWikpediaの説明はさっきより難しくなっていますね。要するに問題を解くための考え方、と言う事です。先ほどの見込み顧客の例では、「契約を結べる確率の高い見込み顧客を見つけるロジック」を考えました。

今回は、「どうやったら効率よく見込み顧客と効率よく契約を結べるか?」と言う問いを考えます。この問題に答えるのに、先ほどのロジックを使います。メールマガジンに登録している見込み顧客から1週間以内に・・・っていうヤツですね。

つまり・・・問題を解くにはロジックを使う、またはロジックを複数組み合わせて使う、と言う事です。

昨今、流行しているAI(人工知能)を語るときにもアルゴリズムという言葉がよく使われます。ダイナミックプライシングを例に説明します。この分野の専門で無いので違う部分があルカもしれませんが、イメージを掴めればと思います。

ダイナミックプライシングのアルゴリズム例

ダイナミックプライシングとは時期によって売値を変えると言う考え方です。繁閑によってスポーツ観戦のチケットの値段を変えたいとする時、チケット代をいくらにしたら良いか、という問いが生まれます。そのチケット代をどういう風に計算して求めるか、と言うのがアルゴリズムであり、そのアルゴリズムが人工知能と呼ばれる技術として研究されているわけです。以前、これくらいの値段にしたらお客さんが減った、とかこれくらいまでだったら価格を上げても大丈夫だった、という情報を元にお客さんの見込み数を求めてから価格を決めるのですが、この一連の問題の解き方がアルゴリズムです。

アルゴリズムの中に、「ここまで値段を上げるとお客さんが減った」と言うような情報を取り込めば、お客さんが減り始める価格帯が分かるといったロジックと、お客さんの見込み数を求めるロジックとそこから価格を決めるというロジックが組み合わさっていることが分かります。

以上、3分で分かるロジックとアルゴリズムの違いでした。