人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: 匿名質問者
●カテゴリ:コンピュータ 科学・統計資料
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● 匿名回答1号

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


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

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

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

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

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


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

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

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


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

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

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

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

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


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

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

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


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

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

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

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


匿名回答1号さんのコメント
補足: (2)については,数論的アルゴリズム,数値計算法などと呼びます。

匿名質問者さんのコメント
ということはアルゴリズムを研究するうえで数学も使う、ということであって、数学の定義の中にアルゴリズムは入らないということですか?

匿名回答1号さんのコメント
>数学の定義の中にアルゴリズムは入らないということですか? ↑この質問に答えているのが(5)だと思います。 純粋な数学からはやや外れる,応用分野のひとつである と言えるでしょうね。 似たような問として 「情報科学は数学に含まれるのか?」 という質問を考えてみてください。 この質問には決まった答えがありません。 計算機科学を数学に含める場合も実際にあります。 大学の数学科を考えてみてください。 いろんな研究室がある中で ある研究室は計算機科学とアルゴリズムと専門に研究している ということも多々あります。 しかしそれは,その大学の組織上の都合,分類上の都合であり もし情報科学科を持つ大学の場合, 数学科の中に計算機科学を含めず,独立させるでしょう。 こうしてみると,「数学(科)の中にアルゴリズム(の研究)を含めるのか」 という疑問の答えは,分類の仕方によって変わります。 ですので, これだとあいまいな回答しかできませんので, 質問の観点を具体的に絞ってみるのはどうでしょうか? 「数学の中にアルゴリズムは含まれるのか」 ではなく, 「アルゴリズムの歴史を発展させてきたのは,おもに数学者たちだったのか?」 とか。 「○○大学の数学科に入学を考えているが,そこではアルゴリズムを専門的に研究できるのか?」 とか。 「大学入試の問題で,アルゴリズムに関する問題が出題される際には,数学という科目の中に含められて出題されるが,それはどうしてなのか?」 とか。 いかがですか。

匿名回答1号さんのコメント
ちなみに,上に挙げた具体的な質問についてコメントすると・・・ 「アルゴリズムの歴史を発展させてきたのは,おもに数学者たちだったのか?」 →Yes。 そして20世紀の半ばまで,プログラマになれるのは,主に数学者でした。 「大学入試の問題で,アルゴリズムに関する問題が出題される際には,数学という科目の中に含められて出題されるが,それはどうしてなのか?」 →回答内の(1)にある通り, 文系か理系かを問わず,論理的な思考力を試すのにうってつけだからです。 そのような思考能力は,数学的な素養の一部でもあるので 数学の力をはかる一環として, 高校までの数学の試験にはアルゴリズムが含まれています。 ただしアルゴリズムという言葉は使わず, 「次のような手順で・・・」 「次のような決まりに従って・・・」 「・・・することは可能か?」 「・・・以内に・・・する方法は存在するか?」 のような問いかけ方をします。 こういった質問の仕方は,中学入試において頭の柔らかさを試すために,数学の科目として出題されます。 早い話が論理パズルですが, 論理パズルを国語や理科として出題できないので 数学の中に含めていますね。

匿名回答1号さんのコメント
このように色々考えると, 質問者様のかんがえている疑問は 次のように言いかえることもできるのでは。 「論理パズルは数学か?」 Yesと答える人もいるし,Noと答える人もいます。 広い意味で含まれる場合もあるし,いや純粋な数学ではないから違う,とする人もいますね。 そして両者はイコールではないものの,共通の素養を必要としているのは事実ですね。

2 ● 匿名回答3号

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

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

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

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

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

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


3 ● 匿名回答4号

建築、建築物、建築方法と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
「アルゴリズムとは、数学、コンピューティング、言語学、あるいは関連する分野において、《問題を解くための手順を定式化した形で表現したもの》を言う」


4 ● 匿名回答5号

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

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ