• ベストアンサー

アルゴリズムとは・・・?

「パターン認識」という授業のレポートでアルゴリズムを考えよという課題があるのですが、アルゴリズムとはどういったものなのでしょうか?また、どう記述すればいいのでしょうか?教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • poohron
  • ベストアンサー率59% (574/971)
回答No.4

アルゴリズムの意味は皆さんがご回答されている通りで良いと思います。 では、身近な事でアルゴリズムの具体例を出しましょう。 (かなり単純化したアルゴリズムですし、本来の記述法は無視しています) 【テーブル上のコップを持ち上げる】  コップの場所を認識する     ↓  腕を動かす     ↓  腕はコップの近くまで到達したか?     ↓(Yes)       ↓(No)  腕の動きを止める   「腕を動かす」へ戻る     ↓  手のひらを広げる     ↓  手のひらでつかめるように腕の位置を調整する     ↓  コップをつかむ為、手のひらをすぼめる     ↓  指先までコップに触れたか?     ↓(Yes)       ↓(No)  つかむ力を加減する  「手のひらをすぼめる」へ戻る     ↓  腕を移動させる     ↓  コップが傾いていないか?     ↓     ↓(No)               ↓(Yes)  コップの傾きを調整     ↓     ↓  腕は目的の場所まで動いたか?     ↓(Yes)      ↓(No)  処理終了       「腕を移動させる」へ戻る 人間が無意識にしている動作も、機械に正しくやらせようと思うと、 このような(本当はもっと細かな)手順を機械に教えなければなりません。 アルゴリズムに誤りがあったり、穴があったりすると 結果が間違ったものになってしまうのです。 上の例で言えば コップの場所を認識しなければ腕を動かしたときにコップを倒してしまうかもしれないし、 指先までコップに触れたかチェックしないとコップを握りつぶしてしまうかもしれないし、 コップが傾いていないかチェックしなければ水がこぼれてしまうかも知れないのです。 注意しなければならないのは、結果に問題が出ないように あらゆる可能性を考慮したアルゴリズムを作ることでしょう。 例えば割り算のアルゴリズムなら割る数が0にならないようにチェックするとか。

Mitu1130
質問者

お礼

回答をしていただき、どうもありがとうございました。具体例までつけていただき、分かりやすい回答でとても助かりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • hpsk
  • ベストアンサー率40% (48/119)
回答No.3

アルゴリズムの意味は、直観的には#1,#2の方の回答でいいと思います。 厳密には有限時間で停止することが保障されていないとだめで、 もっと厳密にはチューリングマシンの状態遷移図と等価なものという定義になっています。 (パターン認識とかをやる分野を勉強されているなら、この厳密な定義も教養として知っておいてもいいでしょう) で、どう書けばいいかについては、#2の方が言われているような記述方法でもいいですが、特に指定がないなら自然言語(日本語とか英語とか)でもいいと思いますよ。 最も有名な「アルゴリズム」の一つである「ユークリッドの互除法」などを調べてると、感覚がつかめると思います。

Mitu1130
質問者

お礼

回答をしていただき、どうもありがとうございました。回答を元にもう少し調べてみたいと思います。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

> アルゴリズムとはどういったものなのでしょうか? 直感的には、「与えられた問題を解決するための明確な手順」ということになります。 > どう記述すればいいのでしょうか? アルゴリズムの記述方法としては、 ・フローチャート ・NSチャート ・PAD ・擬似コード などがあります。 課題に関してですが、単に「アルゴリズムを考えよ」という出題はされないように思います。 何かパターン認識のある問題を提示され、「この問題を解くアルゴリズムを考えよ」という内容ではないでしょうか?

Mitu1130
質問者

お礼

回答にある記述方法についてもう少し詳しく調べたいと思います。どうもありがとうございました。

Mitu1130
質問者

補足

回答をしていただき、どうもありがとうございました。確かにおっしゃるとおり、「○○を○○として認識するアルゴリズムを書け」のような問題でした。ただ、あまり細かい問題の内容を書き込んでしまうと問題の答えを聞いているような形になってしまい、いけない思ってこのような質問になってしまいました。どうもすみません。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

辞書によりますと・・・ コンピュータを使ってある特定の目的を達成するための処理手順。アルゴリズムをプログラミング言語を用いて具体的に記述したものをプログラムという。 と書いてあります。 僕はC言語をやっていたのですが、よくアルゴリズムという単語を使いました。

Mitu1130
質問者

お礼

回答をしていただき、どうもありがとうございました。イメージをつかむことが出来ました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • A*アルゴリズム

    授業のレポート課題で「A*アルゴリズムは最短経路問題を見出すことを証明せよ」とゆう問題が出ました。図書館とかネットを調べましたがわかりません。誰かわかる人がいたら教えてください!

  • アルゴリズムについて

    大学の授業の課題のアルゴリズムについてなのですが、内容的に頭がついて行けず、一切分かりません。問題内容は、最小値を求めるアルゴリズム(必要な箇所を修正して下さい)です。 どなたか詳しい方いらっしゃいますでしょうか? よろしくお願いいたします。 M = -9999 データX入力 while X ≠ 9999 Y M < X N   M = X   データX入力   Mを出力

  • アルゴリズムについて教えてください

    トランプのダイヤのカードが13枚ある。 順序はバラバラになっている。 小さい順に並べるアルゴリズムを考えよ。 という課題が出されました。 アルゴリズムの意味はわかるのですが、やり方がさっぱりわかりません。確率の考え方を使うのですか? ヒントでもいいので教えてください。 よろしくお願いします。

  • アルゴリズムについて

    「手作業によるソート」がレポートの課題として出されました。 「手作業のために効率的なアルゴリズムを考えて提案して分析しなさい」 条件は次の通り: 資料がそれぞれ A4 の紙一枚。見やすい位置に10桁の番号が書かれている。その番号の昇順にソートする。番号の分布については一切不明。二つのケースを想定: 1) 一人で資料5000枚をソート; 2) 20人で資料50000枚をソート。二つのケースに使えるアルゴリズム一つ、又は両ケースに使えるアルゴリズム一つでもよい。分析では O() での計算量 (理由つき) と実際に想定される時間。今まで習ったアルゴリズムとの類似点や相違点、手作業の特徴に考量した点などについても論じる。 何をすれば良いのかが分かりません。少しでも作業の道筋を示していただければ幸いです。 よろしくお願いします。

  • ◆アルゴリズムについて

    ◆アルゴリズムについて なるべく沢山の意見を寄せられると助かります。 関西にある某専門学校の事です。 俺は「初心者でもついていけますか?」と聞き、 受け付けは、「普通の問題だから初心者でもついていけます」と答えました。 それがアルゴリズムなのですが、その参考書を開くとわからないの桁が違い、自習のやり方すら何をすればいいのかわかりません。 勿論、授業もさっぱりわかりませんでした。 先生方や受け付けは、質問すればいい、とか、聞けばわかる、の返答ばかり・・・。 難しすぎて何を質問すればいいのか、わからないくらいのものでした。 授業料を無駄にしたくなく何とかついていこうとして、ついていけず、タガが外れてうつ病にかかりました。 事実上、リタイアしてしまいました。 自分のできる最大限の努力はしたのですが・・・ ・そこで聞きたいのですが、アルゴリズムは普通の問題なのでしょうか? ・初心者でもついていける科目なのでしょうか? ・またアルゴリズムを習得するには、大体何年かかりますか?

  • 数字並び替え全パターン取得のアルゴリズム

    例えば5つの数字1,2,3,4,5の並び替えのパターンは5!=120通りあると思うのですが、このパターン全て取得するようなアルゴリズムはどういうものになりますでしょうか。 1,2,3,4,5 1,2,3,5,4 1,2,4,5,3 1,2,4,3,5 続く。。。。 これら並び替えのパターンを全て取得したい。 アルゴリズムの説明、又はアルゴリズムの名前が存在するようであれば教えていただけると幸いです。 実際には1000個程度の数字の並び替えパターン全てを何らかのコンピュータ言語を使い、アルゴリズムを実装したいと思っています。 よろしくお願いいたします。

  • 学習のアルゴリズム

    次のようなケースで、学習させるうまいアルゴリズムをご存知の方はいっらしゃらないでしょうか? (1)基本のパターンは数万個あります。各パターンには番号が振ってあります。 (2)数百個のパターンの集合と、その中で「最も良い」パターンの番号のデータが数百万個あります。ただし、この「最も良い」の評価は人間の感性のような、結構いいかげんな物だと考えてください。 (3)このようなデータを学習させ、各パターンになんらかの方法で点数を与える。 このようにして出来た学習データを使い、(2)と同じデータを再度与え、「最も良い」パターンが最も点数の高いパターンに一致する確立をなるべく高くしたい。 (2)と同じデータではないが、同様のデータを与え、最も点数の高いパターンが、「同じ感性」で「最も良い」とされる確率ができるだけ高くなるようにしたい: このような学習を行うアルゴリズムについて、なにか良い論文、本などをご存知でしたら御教えください。

  • ソートアルゴリズム

    お忙しいところすいません。 先日授業で出された課題がどうしても分からなかったので教えていただきたいと思っています。 どうやってプログラムを作ればよいでしょうか。 問題は、 『N件の乱数データを用意し、昇順(または降順)に並べる。 データ件数、ソート所用時間を表示する。 ソート時間1~100秒で処理できるデータ件数を確認する。 ソートアルゴリズムは2種以上作成すること。』 です。

  • アルゴリズムが分からない。誰か助けて。。。

    今、授業でアルゴリズムを習っているんですけど、どうやって解けばいいのか分からないです。問題は「キーボードから2つの数値を入力し、大きい数から小さい数を減算した結果を画面表示する。」です。誰か教えてください。出来れば解くコツとかあれば教えてください。

  • 緊急!アルゴリズムについて困っています!!

    学校の授業でこのような問題が出たのですが全くわからずに大変困っています… (1)図(画像)のフローチャートに示すアルゴリズムをJava言語で作成しなさい。ループの繰り返し回数は個人で判断すること。また、BigDecimalなどの多倍長精度の演算を用いること。 (2)このアルゴリズムは何を算出するものか答えてください。 (3)このアルゴリズムの名称を答えてください。 本当に何もわからなくて困っています… 助けてください!!

このQ&Aのポイント
  • 先週遊んだ友達がコロナになったことに対して心配の意を示し、自責の念を抱いている内容のメッセージを送りました。
  • 自分を責める必要はないと伝えつつも、行動にはより一層気をつける必要があると反省し、お大事にという気持ちを伝えました。
  • 友達の回復を願いつつ、元気になったらまた会いたいという気持ちを伝えるとともに、十分な休息を取るように促しました。
回答を見る