#はじめに
私たちの日常生活では,あらゆる場面のあらゆる段階で様々な計算が行われています.電子計算機で溢れた現代ではその計算量も急激に増加しています.お釣りの計算,電車の乗り換え検索,通販サイトのレコメンド,考え始めるときりがありません.私たちは,明示的に計算が行われる場面の方が少ない,膨大な計算量に支えられた世界で生きています.
一方で,種々の計算に囲まれたこの世界で,計算について考え直すことは少ないのではないでしょうか.計算とはそもそも何らかの目的と意味を持った営みであり,目的達成に向けた位置付けを理解していおく必要があります.今回の記事ではそもそも計算とは何かについて,私見を含めてまとめていきます.
#身の回りの計算
まずは計算を行う場面について考えてみましょう.先ほど挙げた例を取ると,例えばお釣りの計算,電車の乗り換え検索,通販サイトのレコメンドなどがあります.お釣りの計算の場合は,値段と支払額を元に差を取ることでお釣りの額を定めます.電車の乗り換えの場合は各種時刻表や乗り換え時間を元に様々な演算を行うことで最適なルートを決定します.通販サイトのレコメンドの場合は過去のデータを元に統計的・機械学習的な処理を行い適切な商品を提示しています.そもそも,スマホなどの電子計算機自体,画像処理やネットワークなど,背後には膨大な計算が潜んでいます.
#計算の利用
ここで,対象と計算の関係について見てみましょう.今回の記事は計算についてのみ取り上げるため,数理的な処理が可能な対象を想定します.
一般に,①対象を抽象化することでモデルとして表し,②モデルに定式化を行うことで数式として表し,③数式への計算結果をモデルにフィードバックすることでモデル上での適切な結果を定め,④モデルから対象に適用可能な解釈を与えます.
このフレームワークを元に先ほどの問題をそれぞれ考えてみます.お釣りの計算であれば,対象は実際のお金を指し,モデルは金額の値の集合を指し,数式は差の式などを指します.電車の乗り換えであれば(例えば純粋な最適化計算を行うのであれば)対象は実際の電車に関する様々な要素,モデルは時刻表と乗り換え時間と運賃の数値の集合,数式は目標となる式(最適化計算における目的関数,金額最小化や時間最小化)と各種数値の関係式(最適化計算における制約条件,乗車時間と乗り換え時間の関係など)を指すことが想定されます.通販サイトのレコメンドであれば,対象は通販サイトや各ユーザの購入商品や様々な情報,モデルはユーザの購入履歴を表す大規模な行列などの数値の集合,数式は類似ユーザの購入履歴を利用した各種統計的な関係式などが考えられます.スマホなどの電子計算機における暗黙的な計算も,対象が直観的に人が理解できるレベルからできないレベルまで様々ですが,それぞれ意図をもった処理として行われています.
他にも各種問題を思い浮かべてもらうと,誰もが経験的に,対象のうち着目すべき数値的な要素を抜きだして抽象的なモデルと見なし,モデルにおいて成立する十分な数式を用意して適切な計算を行い,結果や解釈を現実の意思決定に利用していることが分かると思います.
#計算の位置付け
それではお題を回収しておこうと思います.計算とは,何らかの対象に所望の振る舞いを期待した意思決定に利用するための,背後の数理的な処理を指します.計算については様々な手法の選択が考えられ,計算結果の量や質,導出時間などに大きく影響するため,実用を考える上での非常に重要な要素となっています.
#おわりに
普段は意識しない,計算の位置付けについてまとめました.計算を現実に生かす際の流れについて体系的に整理しておくことで,複雑な問題を捉える際の一助になれば良いなと思います.
#感想
アドベントカレンダーに参加してみたかったので,記事を書いてみました.かなり急いで書いたので間違った記述もあるかもしれないです,指摘いただけると修正します.本来であればモデルについてしっかり書くべきところなんですが,時間かかりそうだったので諦めました.計算は所詮手続きであって,実際,モデル化の方が遥かに大切です.気が向いたらまたいつか書くかもしれません.興味がある方はワイスバーグの科学とモデルが面白いと思います.
最後までお読みいただきありがとうございました.