技術ノート 特徴 コンピューター アルゴリズムとは何ですか?またどのように機能するのですか?

コンピューター アルゴリズムとは何ですか?またどのように機能するのですか?

コンピューター アルゴリズムとは何ですか?またどのように機能するのですか?

数学やプログラミングに興味がない限り、「アルゴリズム」という言葉はギリシャ語かもしれませんが、この記事を読むために使用しているすべてのものの構成要素の 1 つです。ここでは、それらが何であるか、そしてそれらがどのように機能するかを簡単に説明します。

コンピューター アルゴリズムとは何ですか?またどのように機能するのですか?

免責事項: 私は数学やコンピューター サイエンスの教師ではないため、使用する用語のすべてが専門的なものであるわけではありません。それは、数学にあまり慣れていない人のために、すべてを平易な英語で説明しようとしているからです。そうは言っても、いくつかの数学が関係しており、それは避けられません。数学オタクの皆さん、コメントで自由に修正したり、より適切に説明したりできますが、数学に興味のない人のために簡潔にしておいてください。

画像提供者: Ian Ruotsala

アルゴリズムとは何ですか?

「アルゴリズム」という言葉は「代数学」と似た語源を持っていますが、これはアラビアの数学者アル・フワリズミー自身を指している点が異なります(ちょっと興味深い豆知識です)。プログラマーではない私たちにとって、アルゴリズムとは、入力 A を受け取り、何らかの方法で関係するデータを変更する出力 B を提供する一連の命令です。アルゴリズムにはさまざまな用途があります。数学では、より高度な機能の中でも特に、データセット内の点から関数を計算するのに役立ちます。プログラミング自体での使用とは別に、ファイル圧縮やデータ暗号化などでも重要な役割を果たします。

コンピューター アルゴリズムとは何ですか?またどのように機能するのですか?

基本的な手順セット

あなたの友人が食料品店であなたと会っていて、あなたが彼をあなたに向かって案内しているとします。 「右側のドアから入ってください」「左側の魚売り場を通り過ぎてください」「乳製品が見えたら私を通り過ぎました」などと言います。アルゴリズムはそのように機能します。フローチャートを使用すると、事前にわかっている基準、またはプロセス中に判明した基準に基づいて手順を説明できます。

(「 アイスブレーキング ルーチン 」というタイトルの画像編集: Trigger および Freewheel の提供)

START から道を進み、何が起こるかに応じて最終結果に至るまでの「流れ」に従います。フローチャートは、コンピューターで使用される一連の命令をよりわかりやすく表現できる視覚的なツールです。同様に、アルゴリズムは、より数学ベースのモデルでも同じことを行うのに役立ちます。

コンピューター アルゴリズムとは何ですか?またどのように機能するのですか?

グラフ

グラフを使用して、方向を示すさまざまな方法を説明してみましょう。

このグラフは、そのすべての点間の接続として表現できます。このイメージを再現するために、他の人に一連の指示を与えることができます。

方法 1

これを一連の点として表すことができ、情報はグラフ = {(x1, y1), (x2, y2), …, (xn, yn)} の標準形式に従います。

グラフ = {(0,0)、(3,0)、(3,3)、(5,5)、(7,10)、(8,7)、(9,4)、(10,1) }

各ポイントを 1 つずつプロットし、前のポイントに接続するのは非常に簡単です。ただし、1,000 個の点または複数のセグメントがあらゆる方向に進むグラフを想像してください。そのリストには大量のデータが含まれますよね?そして、一度に 1 つずつ接続する必要があるのは面倒なことです。

方法 2

もう 1 つできることは、開始点、つまり開始点と次の点の間の線の傾きを指定し、標準形式の chart={(開始点}, [m1, x1, h1) を使用して次の点が予想される場所を示すことです。 ], …, [mn, xn, hn]} ここで、変数「m」は線の傾きを表し、「x」はカウントする方向 (x または y) を表し、「h」はそれを示します。それぞれの動きの後に点をプロットすることを忘れないでください。

グラフ = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2.5,x,2], [-3,x,1], [-3,x,1], [-3,x,1]}

最終的には同じグラフが得られます。この式の最後の 3 つの用語は同じであることがわかります。そのため、何らかの方法で「それを 3 回繰り返す」と言うだけで、それを削減できるかもしれません。変数「R」が表示されるたびに、それは最後のことを繰り返すことを意味するとします。できるよ:

グラフ = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2.5,x,2], [-3,x,1], [R=2]}

個々の点は実際には重要ではなく、グラフ自体だけが重要である場合はどうなるでしょうか?最後の 3 つのセクションは次のように統合できます。

グラフ = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2.5,x,2], [-3,x,3]}

以前よりも少し短くなります。

方法 3

これを別の方法でやってみましょう。

y=0、0≤x≤3

x=0、0≤y≤3

y=x、3≦x≦5

y=2.5x-7.5、5≤x≤7

y=-3x+29、7≤x≤8

y=-3x+29、8≤x≤9

y=-3x+29、9≤x≤10

ここではそれを純粋な代数用語で説明します。もう一度言いますが、点自体は重要ではなく、グラフのみが重要な場合は、最後の 3 つの項目を統合できます。

y=0、0≤x≤3

x=0、0≤y≤3

y=x、3≦x≦5

y=2.5x-7.5、5≤x≤7

y=-3x+29、7≤x≤10

さて、どの方法を選択するかはあなたの能力によって異なります。おそらくあなたは数学とグラフ作成が得意なので、最後のオプションを選択するでしょう。おそらくあなたはナビゲートするのが得意なので、2 番目のオプションを選択します。しかし、コンピュータの領域では、さまざまな種類のタスクを実行することになりますが、コンピュータの能力は実際には変わりません。したがって、アルゴリズムは、完了するタスクに合わせて最適化されます。

注意すべきもう 1 つの重要な点は、各メソッドがキーに依存していることです。それぞれの命令セットは、それをどう扱うかが分からなければ役に立ちません。各点をプロットして点を接続する必要があることを知らなければ、最初の点のセットは何の意味も持ちません。 2 番目のメソッドでの各変数の意味が分からない限り、暗号の鍵と同じように、それらを適用する方法もわかりません。そのキーはアルゴリズムを使用する上で不可欠な部分でもあり、多くの場合、そのキーはコミュニティまたは「標準」を通じて見つかります。

コンピューター アルゴリズムとは何ですか?またどのように機能するのですか?

ファイル圧縮

.zip ファイルをダウンロードすると、その内容が抽出され、その中に含まれているものを使用できるようになります。現在、ほとんどのオペレーティング システムは、通常のフォルダーであるかのように .zip ファイルにアクセスし、すべてをバックグラウンドで実行できます。 10 年以上前の Windows 95 マシンでは、内部のファイル名以外のものを確認するには、すべてを手動で抽出する必要がありました。これは、.zip ファイルとしてディスクに保存されていたものが使用可能な形式ではなかったためです。引き出し式ソファを思い浮かべてください。ベッドとして使用したい場合は、クッションを外して広げる必要があり、さらにスペースをとります。不要なときや持ち運びたいときは折りたたむことができます。

圧縮アルゴリズムは、対象となるファイルの種類に合わせて調整および最適化されます。たとえば、オーディオ形式はそれぞれ異なる方法を使用してデータを保存し、オーディオ コーデックによってデコードされると、元の波形に似たサウンド ファイルが得られます。これらの違いの詳細については、以前の記事「 これらすべてのオーディオ形式の違いは何ですか?」 を参照してください。ロスレス オーディオ フォーマットと .zip ファイルには共通点が 1 つあります。それは、どちらも解凍プロセス後に元のデータを正確な形式で生成することです。非可逆オーディオ コーデックは、人間の耳には聞こえない周波数をトリミングしたり、部分的な波形を滑らかにして詳細を取り除いたりするなど、ディスク領域を節約するために他の手段を使用します。結局のところ、MP3 トラックと CD トラックの違いを実際に聞くことはできないかもしれませんが、前者では情報が不足していることは間違いありません。

コンピューター アルゴリズムとは何ですか?またどのように機能するのですか?

データ暗号化

アルゴリズムは、データや通信回線を保護するときにも使用されます。データは、使用するディスク領域が少なくなるように保存するのではなく、他のプログラムによって検出できない方法で保存されます。誰かがあなたのハードドライブを盗んでスキャンを開始した場合、転送先がなくなってもデータ自体はまだ残っているため、ファイルを削除した場合でもデータを拾われる可能性があります。データが暗号化されると、保存されているものはすべて、それが何であるかのように見えなくなります。通常、時間の経過とともに断片化が蓄積したかのように、ランダムに見えます。データを保存して、別の種類のファイルとして表示することもできます。たとえば、画像ファイルや音楽ファイルは、疑いを持たれることなく非常に大きくなる可能性があるため、これに適しています。これらはすべて、ある種の入力を受け取り、それを別の非常に特殊なタイプの出力に変換する数学的アルゴリズムを使用して行われます。暗号化の仕組みの詳細については、 「HTG Explains: What is Encryption and How Does It Work?」 を参照してください。


アルゴリズムは、コンピューター サイエンスでさまざまな用途を提供する数学的ツールです。これらは、始点と終点の間のパスを一貫した方法で提供し、それに従うための指示を提供するように機能します。私たちが強調したこと以上のことを知っていますか?コメントであなたの説明を共有してください!

「コンピューター アルゴリズムとは何ですか?またどのように機能するのですか?」に関するベスト動画選定!

ゼロからわかる!コンピュータの仕組み【数学・論理学・工学について】
【A試験_アルゴリズムとプログラミング】04.プログラム実行手順| 基本情報技術者試験