匿名質問者

アルゴリズムと数学の関係について教えてください。調べても情報が整理されてなくてよくわかりません。

回答の条件
  • 1人50回まで
  • 登録:
  • 終了:2016/02/29 12:05:03

回答4件)

匿名回答1号 No.1

アルゴリズムと数学には,深い関係があります。
何点かに分けて解説します。


(1)アルゴリズムの基礎を理解するためには,数学的で論理的な思考が必要です。

帰納法,再帰的,集合を使った条件の判定など,
数学の分野で学ぶ基礎事項に基づいて
処理や手続きの流れを論理的に考える。
それがアルゴリズムです。

たとえば,「名簿に載っている人のデータを年齢順に並び替える」
というアルゴリズムを考えると,
これはソートアルゴリズムです。

バブルソートやクイックソートなどの手続きを実行した結果,
どうして並び替えが正しく実行されるのか
ステップを1つずつ追いかけて処理の流れを把握するためには,
論理的な思考が必要です。

このような考え方は,文系の人にも理系の人にも必要です。
(1)に限って言えば,アルゴリズムと数学に関係がある理由は
「論理的な考え方をするから」
と言えます。


(2)数学そのものを深く調べるために必要なアルゴリズムもあります。
この場合,ただ単にアルゴリズムを理解するために数学が必要ということではなく,
アルゴリズムの「対象」そのものが数学です。

たとえば,ある数が素数かどうかを判定するアルゴリズム,
円周率を高精度ですばやく計算できるアルゴリズム(つまり計算の方法や手続き)
などは,
数学という研究分野を深めてゆくために利用されるアルゴリズムです。

この場合,(1)とは異なり,数学を専門にする人たちが主に使います。


(3)アルゴリズムの性能を評価するためには,数学的なモデル化や計算が必要です。

あるアルゴリズムが速いか遅いか,データの使い方が効率が良いか
などを定量的に評価するためには,
そのアルゴリズムのスピードを何らかの数学的な関数に当てはめて計算を行い,評価の結論を出します。

たとえば数学では指数関数について学びますが,これは増加がとても速い関数です。
なので,あるアルゴリズムの実行にかかる時間が指数関数的である,と評価した場合には,
そのアルゴリズムの実行にはとても時間がかかるということになります。

バブルソートよりもクイックソートのほうが速いのはどうしてか
具体的にそのスピードの差を計算するために,
このようなモデル化が必要です。

詳しくは,計算量理論(計算複雑性理論)や,アルゴリズムのオーダー,P≠NP問題について調べてください。


(4)少し難しいですが,
アルゴリズムの存在を証明したり,存在しないことを証明したりする場合には,
数学でおこなうような証明の手続きを踏んで結論を出すので,
やはり数学的な考え方が必要です。

つまり,ある複雑な計算を短時間で済ませることが可能かどうか
についてジャッジを下したい場合,
そのような計算の手続きつまりアルゴリズムが存在するかしないか
厳密で論理的な証明が必要になります。

詳しくは,計算可能性理論についてお調べください。


(5)厳密な境目はありません。

うえで述べた事柄は,情報科学,計算機科学,数理科学,シミュレーションなどの理工系の分野に分類されます。

そして,すべての理工系の分野について,初歩の基礎・土台となるのが数学です。

だから,理工系の分野に関わる以上は,
数学に全く関係のない事柄などない,と考えてください。
「アルゴリズムが数学的な考え方に基づいている」というのも同じことです。

他3件のコメントを見る
匿名回答1号

ちなみに,上に挙げた具体的な質問についてコメントすると・・・

「アルゴリズムの歴史を発展させてきたのは,おもに数学者たちだったのか?」
→Yes。
そして20世紀の半ばまで,プログラマになれるのは,主に数学者でした。


「大学入試の問題で,アルゴリズムに関する問題が出題される際には,数学という科目の中に含められて出題されるが,それはどうしてなのか?」
→回答内の(1)にある通り,
文系か理系かを問わず,論理的な思考力を試すのにうってつけだからです。

そのような思考能力は,数学的な素養の一部でもあるので
数学の力をはかる一環として,
高校までの数学の試験にはアルゴリズムが含まれています。

ただしアルゴリズムという言葉は使わず,
「次のような手順で・・・」
「次のような決まりに従って・・・」
「・・・することは可能か?」
「・・・以内に・・・する方法は存在するか?」
のような問いかけ方をします。

こういった質問の仕方は,中学入試において頭の柔らかさを試すために,数学の科目として出題されます。
早い話が論理パズルですが,
論理パズルを国語や理科として出題できないので
数学の中に含めていますね。

2016/01/30 18:59:08
匿名回答1号

このように色々考えると,
質問者様のかんがえている疑問は
次のように言いかえることもできるのでは。

「論理パズルは数学か?」

Yesと答える人もいるし,Noと答える人もいます。
広い意味で含まれる場合もあるし,いや純粋な数学ではないから違う,とする人もいますね。
そして両者はイコールではないものの,共通の素養を必要としているのは事実ですね。

2016/01/30 19:02:53
匿名回答3号 No.2

アルゴリズムとは「手順」のことです

たとえば「テストの平均点を求める」アルゴリズムを考えましょう

まず,このアルゴリズムを日本語で記述すると次のようになります
「まずテストの点を足し合わせて合計を求めて,それから合計をテストの回数で割る」

次に,このアルゴリズムを数式で記述すると次のようになります
 ¥frac{1}{N}¥sum_{i=1}^{N} x_i
ただし  N がテストの回数で, x_i が i 回目のテストの点数です

このようにアルゴリズムは,日本語で記述したり,数式で記述したりできます.

つまり「数学」はアルゴリズムを記述する「言語」と捉えると良いと思います.

匿名回答4号 No.3

建築、建築物、建築方法と3つの言葉を考えたとき、建築方法とにたものがアルゴリズムです。数学は建築のようなものです。

ウィキでは、「数学」について、次の説明をしています。
https://ja.wikipedia.org/wiki/%E6%95%B0%E5%AD%A6
➀ 「数学」は、(a)量、構造、変化、空間といったものを対象として、(b)いくつかの仮定から始めて、決められた演繹的推論を進めることで得られる (C)体系を研究する学問」
② 「数学、特に伝統的な純粋数学」では、数学研究が自己目的化されており、数学への内的な興味のために研究がなされる。 このような数学ではいかに本質的な概念なり定理なりを得て、体系的な数学を構築するかが重要視されており、「数学的対象を記述するのに適した概念や空間を定義したり、数学的事象をうまく表現した定理を得たりすること」が数学者の主な仕事である

おなじくウィキでは、
https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0
「アルゴリズムとは、数学、コンピューティング、言語学、あるいは関連する分野において、《問題を解くための手順を定式化した形で表現したもの》を言う」

匿名回答5号 No.4

アルゴリズムと数学の関係、長い説明はすでにあげられてるので、簡単に。
ある研究者が「アルゴリズム考えたー」と宣言しても、「で?そのアルゴリズム本当に有用なの?」と言われてしまいます。そこで有用性を保証するのに数学を使ったりします。「アルゴリズムの有用性」を数学をつかって裏付けることができるのです!いわゆる「証明」ってやつでね!!まとめると、「あなたの考えたアルゴリズム、数学で有用かどうか証明してみせよう!」これがアルゴリズムと数学の関係だ!

  • 匿名回答2号
    匿名回答2号 2016/01/30 23:11:21
    アルゴリズムは集合論に多く準拠しますね。
    部分集合とか絶対条件とか十分条件とか、そういった考え方を基準にしなければ現実を規定できない。
    帰納法で否定要因を虱潰しに当たる。。。。・・って手もありますけどね。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません