image

  • 特に工場で物理的な製品を作るようなビジネスモデルにおいては、生産する個数が増えると1個あたりのコストが下がる
  • しかし「規模が大きいほどコストが安い」これは常に成り立つ現象ではない
    • 特に情報処理に関してはデータ量が増えるほど1件あたりの処理コストが増えるケースがある

シンプルな例

  • 顧客が受付に来て自分の名前を言う。その名前を元に、その顧客の情報を取り出したい
  • 顧客が100人の場合、1万人の場合、100万人の場合、その処理にかかる時間コストはどう変動するか?
  • 素朴な実装(線形探索)だと顧客総数Nに比例する時間コストがかかる
  • これを「O(N)の処理だ」(オーダーエヌ)と表現する

アルゴリズムを工夫することで、O(log(N))で同じ目的を実現できることが知られている(オーダーログエヌ) see 平衡二分探索木

  • image
  • 複雑なアルゴリズムは多くの場合オーバーヘッドが大きいので、データ量が少ない時にはかえって高コストになる
  • 実稼動時のデータ量によって、どのアルゴリズムを使うのが適切かが変わる。
    • 適切なアルゴリズムを選択することは情報処理技術をビジネス応用する上で重要な設計判断になる

どうして特に情報処理に関してこういう現象が起きるのか

  • 「規模が増えるほどコストが下がる」現象は、個数によらずかかるコストを生産した製品で分担することによって発生する
  • image
  • 情報処理に関しては、工場などの装置産業と比べて、このコストが全体のコストに占める割合が低いことが多い
    • 例えばサーバ費用に関しても、最初に固定額を払うのではなく、Amazon Elastic Compute Cloud(AWS EC2)などのような顧客の量に応じて柔軟に増減できるサービスがしばしば使われている
    • その結果、相対的に「規模増加によってコストが安くなる効果」が小さくなり、目立たなくなる