インタビュアー: アルゴリズムについての理解について教えてください。応用シナリオ?

インタビュアー: アルゴリズムについての理解について教えてください。応用シナリオ?

[[424227]]

1. 何ですか

アルゴリズムとは、問題に対する解決策の正確かつ完全な説明を指します。これは、問題を解決するための一連の明確な指示です。アルゴリズムは、問題を解決するための戦略メカニズムを説明する体系的な方法を表します。

つまり、一定の標準入力に対して、限られた時間内に必要な出力を得ることができます。

アルゴリズムに欠陥があったり、問題に対して不適切であったりする場合、そのアルゴリズムを実行しても問題は解決されません。

プログラム = アルゴリズム + データ構造。データ構造はアルゴリズム実装の基礎です。アルゴリズムは常に何らかのデータ構造に依存して実装されます。この 2 つは切り離せません。

したがって、アルゴリズムの設計と選択は、データ構造と組み合わせる必要があります。簡単に言えば、データ構造の設計とは、問題内の情報が配列に格納されるか、通常の変数またはその他のより複雑なデータ構造に格納されるかを決定するなど、格納方法を選択することです。

上記に基づいて、次のような結論を導き出すことができます。異なるアルゴリズムでは、同じタスクを完了するために異なる時間、スペース、または効率を使用する可能性があります。

2. 特徴

アルゴリズムの 5 つの主な特徴は次のとおりです。

  • 有限性: アルゴリズムは、有限数のステップを実行した後に終了することが保証される必要があります。
  • 明確性: アルゴリズムの各ステップには正確な定義が必要です。
  • 入力: アルゴリズムには、操作オブジェクトの初期条件を特徴付ける 0 個以上の入力があります。いわゆるゼロ入力は、アルゴリズム自体が初期条件を与えることを意味します。
  • 出力: アルゴリズムには 1 つ以上の出力があります。出力のないアルゴリズムは意味がない
  • 有効性: アルゴリズムで実行される計算ステップは、実行可能な基本操作ステップに分解できます。つまり、各計算ステップは有限時間内に完了できます (有効性とも呼ばれます)。

3. 応用シナリオ

フロントエンド分野では、データ構造とアルゴリズムが不可欠です。たとえば、現在の Vue や React プロジェクトでは、次の単純な仮想 DOM に示すように、仮想 DOM または Fiber 構造の実装は基本的にデータ構造です。

  1. {
  2. タイプ: 'div'
  3. 小道具: {
  4. 名前: 'ルシファー'  
  5. },
  6. 子供たち: [{
  7. タイプ: 'span'
  8. プロパティ: {},
  9. 子供たち: []
  10. }]
  11. }

Vue と React はどちらも、対応するデータ構造に基づいて diff アルゴリズムを実装できるため、フレームワーク全体のパフォーマンスとスケーラビリティが向上します。

フロントエンドのJavaScriptがコンパイルされるときも含め、対応する抽象構文木ASTが生成されます。構文自体は含まれていないため、任意の構文を任意の構文にエスケープするための対応するエスケープルールを記述するだけで済みます。これは、babel、PostCSS、prettier、typescriptでも同様です。

これらのフレームワークやツールの基盤で使用されているアルゴリズムやデータ構造は、日常業務でも広く使用されています。たとえば、関連付け機能を備えた入力ボックスは次のように実装されます。

この機能を実装したい場合は、次のようにプレフィックス ツリーを使用できます。

フロントエンドは、2 つの文字列「每日一题」と「js每日一题」の類似性を比較するなど、文字列の類似性検出を行う場合があります。この場合、「最小編集距離」アルゴリズムを使用できます。a と b の編集距離が小さいほど、それらはより類似していると考えられます。

日常生活でコードを書くときは、優れたアルゴリズム思考が必要です。適切なアルゴリズムやデータ構造を選択すると、プログラム全体の効率が向上します。

参考文献

https://baike.baidu.com/item/%E7%AE%97%E6%B3%95/209025

https://lucifer.ren/blog/2019/09/18/algorthimn-fe-1/

<<:  AI のブラックボックスを開く: 「説明可能な」人工知能 (XAI) への認知ガイド!

>>:  推薦システムで学ぶべき対照的な学習方法

ブログ    

推薦する

よく使われる6つのクラスタリング評価指標

クラスタリング結果の妥当性を評価すること、つまりクラスタリング評価または検証は、クラスタリング アプ...

...

ディープラーニングで知っておくべき活性化関数トップ10

みなさんこんにちは、ピーターです〜最近、reddit で非常に鮮明な mó xìng の写真を見まし...

中国の自動運転はアメリカの自動運転と比べてどう劣っているのか?

アリゾナ州フェニックスからテキサス州エルパソまでの距離は約 690 キロメートルで、地図に示されてい...

人工知能の役割がクローズアップ!ロボットが増えると雇用に影響が出るでしょうか?

短期的には、人工知能が雇用全体に与える影響は比較的軽微であり、構造的影響が量的影響を上回っている。し...

特許出願は世界中に広がっています!中国の新興人工知能についてあなたが知らないこと

待望の2020年世界インターネット会議が先日、烏鎮で開催されました。中国サイバースペースアカデミーが...

今後数年間の AI テクノロジーの分野で最も注目される新しい方向性は何でしょうか?

近年、AI の分野を調査しているうちに、世界中の研究者の視野の中に敵対的攻撃という概念が徐々に現れて...

サイバー防御にAIを活用する

サイバー防御能力は、より高度なサイバー攻撃能力の発展に追いつくのに苦労している。人工知能、特に最先端...

人工知能が人事を変える7つの方法

[[357616]] International Journal of Engineering an...

ImageNet-1K 圧縮 20 倍、Top-1 精度が初めて 60% を超える: 大規模データセット蒸留の転換点

データの圧縮や蒸留というタスクは、ここ数年大きな注目を集めています。データ圧縮方法は、大規模なデータ...

アートデザインにおける人工知能

AdobeやCelsysなどのソフトウェア企業は近年、デジタルデザインソフトウェアに人工知能機能を追...

プロフェッショナルスキルを向上させる: 10のNLPテクニックを理解して習得する

1. 感情分析感情分析とは、ツイート、製品レビュー、顧客からのフィードバックなどのテキストの背後にあ...

AWS でディープラーニングを使用するための 10 個の Linux コマンド

[[202723]] AWS 上で大規模なディープラーニング処理を実行することは、学習と開発を行うた...

150億のパラメータと60%以上の初回合格率を持つHuaweiの大規模モデルが登場、コーディング能力はGPT3.5を超える

大規模モデルが AI 開発の新たなパラダイムとなるにつれ、大規模言語モデルをプログラミング分野に統合...

WaymoとGoogleが自動運転のマルチ軌道行動予測を実現するTNTモデルを提案

はじめに: Waymo は最近、フェニックス地域で安全担当者なしの無人タクシーの運行を開始すると発表...