SEO の概念を人間の言葉で A から Z まで見てみましょう。 現在の環境では何が機能しますか? SEOの基本概念と原則 ゼロ次検索手法

06.12.2023
1

世界中の多数のユーザーに幅広いクラウド コンピューティング サービスを提供するプロバイダーに対する需要が高まっており、大量のデータを処理することを目的としたアプリケーションの数が増加しています。 したがって、クラウド テクノロジーの導入により、クラウド データベースでのクエリを最適化するための新しいアプローチの出現が決まりました。 この記事では、クエリ最適化の問題を解決するための効果的な方法を分析します。 SQL 形式のクラウド データ センターと NoSQL クエリを構築する新しいパラダイムなど、クラウド データベースの運用を最適化できる主な方向性が強調されています。 この記事では、アーキテクチャに依存するソリューションについて説明します。その特徴は、動的なアプローチの使用です。 実験的な実装の結果が示され、クエリ最適化の方法とアプローチの長所と短所が検討されます。

クエリの最適化

検索の最適化方法

クラウドデータベース

クラウドコンピューティング

1. ニクルチェフ E.V. クラウドインフラストラクチャにおけるソフトウェアデファインドネットワークの動的トラフィ​​ック管理 / E.V. ニクルチェフ、S.V. パヤン、E.V. Pluzhnik // リャザン無線工学大学の紀要。 – 2003. - No. 3. - P.54-57。

2. ニクルチェフ E.V. 対称群を使用して複雑なシステムを識別する / E.V. Nikulchev // 計算技術。 - 2004. - T. 9. - No. 3. - P. 72-80。

3. ニクルチェフ E.V. 幾何学的アプローチに基づくデータ伝送ネットワークにおける通信チャネル負荷モデルの構築 / E.V. ニクルチェフ、S.V. Payain // 高等教育機関のニュース。 印刷と出版の問題 - 2008 - No. 6 - P. 91–95。

4. プルジニク E.V. ハイブリッド クラウド インフラストラクチャの半構造化データベース / E.V. プルジニク、E.V. ニクルチェフ // 科学と教育の現代の問題。 2013.- No. 4. URL: www.. アクセス日: 2013 年 10 月 15 日。

5. プルジニク E.V. ハイブリッド クラウド インフラストラクチャにおける教育システムの機能 / E.V. プルジニク、E.V. ニクルチェフ // 大学のニュース。 印刷と出版の問題。 2013. - No. 3. - P. 96-105。

6. Fegaras L. Map-Reduce クエリのための最適化フレームワーク / L. Fegaras、C. Li、U. Gupta // Proc. 第 15 回データベース技術の拡張に関する国際会議。 – ACM、2012. – P. 26-37。

7. Jahani E. MapReduce プログラムの自動最適化 / E. Jahani、M. J. Cafarella、C. Ré // Proceedings of the VLDB Endowment。 – 2011. – V. 4. – N. 6. – P. 385-396。

8. Jurczyk P. クラウドにおける p2p データ サービスの動的クエリ処理 / P. Jurczyk、L. Xiong // データベースおよびエキスパート システム アプリケーション。 – Springer Berlin Heidelberg、2009. – P. 396-411。

9. Lemmon M. D. クラウド コンピューティングにおける電力制御と応答時間管理のための受動性フレームワークに向けて // In Proc. 第 7 国際空港の フィードバック コンピューティングに関するワークショップ、カリフォルニア州サンノゼ、2012 年。

10. Wang X. クラウド コンピューティングのためのデータセンターの分散型仮想マシン移行アプローチ / X. Wang、X. Liu、L. Fan、X. Jia // エンジニアリングにおける数学的問題 [電子ジャーナル]。 – 2013. – V. 2013. - アクセス モード: http://www.hindawi.com/journals/mpe/2013/878542/、無料。 - アクセス日: 2013 年 10 月 15 日。

11. Zhang G. 大規模クラスターにおける大規模データ クエリの最適化 / G. Zhang、Chao LI、Yong Zhang、Chunxiao Xing。 // 計算情報システムジャーナル。 - 2012. – V. 8. – P. 3191–3198。

導入

「クエリの最適化」という用語には多くの定義がありますが、文献で最もよく見られる定義は次のとおりです。 クエリの最適化は、特定のクエリまたはプロセスに対して可能な限り最適なクエリ実行プランを検索する DBMS 機能として理解されます。クエリの実行時のコンピューティング リソースの使用を削減するために、クエリやデータベース構造 (DB) を変更すること。

現在、クラウドコンピューティング技術が発展・普及しています。 世界中の多数のユーザーに幅広いクラウド コンピューティング サービスを提供するプロバイダーに対する需要が高まっており、大量のデータを処理することを目的としたアプリケーションの数が増加しています。 クラウド環境でデータベースが機能すると、新しいツールを探す必要が生じます。

この作業の目的は、クラウド データベースでの検索を最適化するために使用できる既存の開発を分類し、簡単に分析することです。

クラウド ストレージ システムでのクエリ最適化の問題を解決するときは、ネットワーク トポロジも考慮する必要があることに注意してください。

1. クラウド SQL データベースでのクエリの最適化

クエリ処理は、結局のところ、高レベルのクエリを同等の低レベルの形式に変換することになります。この場合の主な困難は、クラウド ストレージの特性を考慮して、変換の効率を確保することです。

標準 SQL クエリでは、結合、選択、射影、およびグループ化が使用されます。

グローバル クエリ実行スキームで現在のクエリの実行プランを検索するためのセマンティック アルゴリズムに基づいて大量のデータを処理および保存するために設計されたアーキテクチャについて説明します (図 1)。

米。 1. SQLクエリに基づくシステムのアーキテクチャ

このアーキテクチャの主要な原則は次のとおりです。

1. すべてのファイルはローカル ファイル システム (Windows ファイル システム、Linux など) に保存されます。

2. クラウド データベースは、インデックス ファイルとメタデータ ファイルの巨大な配列を保存および管理するように設計されています。 クラウド データベースとそのすべてのコンテンツは、分散ファイル システム上に展開されることに注意してください。

3. クエリの入力と結果の取得は、Web ユーザー インターフェイスを通じて行われます。

4. ユーザーリクエストを受信した後、現在のリクエストの実行プランのセマンティック検索がグローバルスキーマ内で (サブセットとして) 実行されます。

著者らが発表したこのアーキテクチャの実験的実装の結果では、生産性が 4 倍向上したことが示されており、これは使用されたアルゴリズムの有効性を示しています。

2. クラウド NoSQL データベースでのクエリの最適化

マップリデュース (MR) プログラミング モデルは、クラウド内の大量のデータの分析を可能にする人気のクラウド コンピューティング プラットフォームです。 MR は、シェアードナッシング アーキテクチャを備えたクラスター内の大量のデータを分析するための、時間のかかる特殊なタスクの並列実行を容易にします。 MRモデルの基本的な考え方はシンプルです。 各 MR タスクは、マップおよびリデュース タスクとして表されます。 マップ ジョブは、中間ペアのセットを作成するためにキーと値のペアを処理する方法を指定します。一方、reduce ジョブは、単一の中間によって関連付けられたすべての中間値を結合する方法を指定します。 MR コアは分散ファイル システム (DFS) を使用してデータを保存および複製します。

で提案されているアプローチは、クエリ代数の使用と、既存の Map-Reduce システム (Hadoop など) に実装されているいくつかの高次演算子の使用に基づいています。 提案されたアプローチは主に MRQL 言語での使用に焦点を当てていることに注意してください。 非宣言型言語を使用してスクリプトを作成できる他の既存のマップリデュース言語 (HiveQL や PigLatin など) とは異なり、MRQL は非常に表現力が豊かで、広範囲のタスク用の独自のスクリプトを宣言型で作成できます。同時に最適化も可能です。

リレーショナル データベースと同様、MRQL クエリを最適化する目的は、最適な実行プランを見つけることです。 MRQL クエリの実行計画を評価するアルゴリズムは、次の手順で構成されます。

1) リクエストの簡素化。

2) クエリグラフの構築。

3) 代数形式でのクエリ グラフの表現。

4) 代数最適化手法を使用して計画を評価および改善するための代数形式のマップの作成。

5)MRリデュース関数に基づいてMR結合関数を作成する。

このアプローチの利点は、開発されたアルゴリズムがフレームワークの形式で実装され、そのソース コードが自由に入手できることです。 同時に、プロジェクトは現在活発に開発されています。

Manimal システムは、マップリデュース プログラムの最適化を目的としたもう 1 つの開発です。 このシステムは、最適化できるブロックを検出するための静的コード分析メカニズムに基づいています。 著者らによると、ほとんどのプログラミング言語オプティマイザーと同様に、Manimal は最大限に効率的なシステムですが、それにもかかわらず、最適化できるすべての既存のブロックが検出されることを保証するものではありません。将来、結果を自動的に最適化することはできません。

Manimal は、map-reduce プログラムの最適化プロセスを完全に自動化できる 3 つの主要コンポーネントで構成されています。 アナライザーは、ユーザーが送信したマップリデュース プログラムを検査し、結果の最適化記述子をオプティマイザーに送信します。 オプティマイザーは、特定のディレクトリに格納されている事前計算されたパラメーターを含む最適化記述子を使用して、最適な実行プランを選択し、その結果が実行記述子になります。 このハンドルは、元のプログラムのコピーとともに実行ファクトリに送信されます。 実行ファクトリーでは、標準の map-shuffle-reduce シーケンスが保存されることに注意してください。

Manimal によると、最適化には 3 つの異なるアプローチが使用されます。

1) 選択の最適化。 コード内の選択は、map() 関数の結果であり、関連するパラメーターに課せられた特定の条件下でのみ実行されます。 リレーショナル サンプリングと同様、課せられた条件を満たさないデータを処理しても意味がありません。そのようなデータに対する map() の呼び出しは無意味になります。 リレーショナル サンプリングと同様に、B ツリーを使用して最適化を実行できます。 Manimal の大きな成果は、システムが上記の条件を満たすサンプルを自動的に識別できることです。

2) 投影の最適化。 プロジェクションの最適化は、ユーザー コードの実行に実際に必要なバイトのみが保存されるようにディスク上のデータ ファイルを変更します。 未使用のフィールドを削除してソース ファイルを圧縮すると、ファイルのサイズが小さくなり、処理できるようになります。

3) データ圧縮の最適化。 データ圧縮は、Hadoop でサポートされる圧縮とは異なります。 Hadoop は、入力データの圧縮バージョンとその中間イメージをディスクに保存します。 アンパックは、map() 関数とreduce() 関数の直前に行われます。 同時に、Hadoop はすべてのファイルに対して単一のデータ圧縮技術を使用しますが、Manimal では、デルタ圧縮と圧縮データの直接操作という意味的に関連する 2 つの形式の圧縮を使用できます。

5 つのノードからなるクラスター上で Manimal を実験的に実装した結果、4 つのケースのうち 2 つのケースで、リレーショナル DBMS のパフォーマンスに匹敵するパフォーマンスが示されました。 ただし、特定された最適化の機会のほとんどは、大幅なパフォーマンスの向上をもたらしませんでした。 実験に基づいて、Manimal システムには可能性があるが、さらなる開発が必要であると結論付けることができます。

3. アーキテクチャに依存したソリューション

大規模なクラウド処理センターでの仮想マシン移行の分散管理が で提案されています。 このアプローチの主な関心は、その目標が、クラウド環境での仮想マシンの移行を通じて機器の負荷のバランスを取ることであり、それが間接的に検索の品質 (明らかに「クラウドの検索速度」) の向上につながることです。ユーザーのリクエストに応えることは検索品質基準の 1 つです)。

大規模なデータセンター内のリソースを管理するために集中ソリューションが開発および実装されることがよくありますが、この場合、制御ノードで障害が発生するとシステム全体が動作不能になります。 この問題を回避するために、分散メカニズムについて説明します。

図に示すように。 図2に示すように、各アクティブノードは、動作中、所定の間隔でシステムのいくつかのノードに自身の負荷インデックスを選択的に送信し、同時にランダムに選択されたアクティブノードの負荷インデックスを受信する。 この場合、ターゲット ノードは反復ごとに変更されます。 他のノードの負荷に関する情報は、現在のノードの負荷ベクトルに追加されます。 したがって、ノード負荷ベクトルの平均長は、インデックスの送信の反復回数に等しくなります。 負荷に関する情報は分散して保存されるため、一部のノードで障害が発生した場合のトラブルが回避されます。もう 1 つの利点は、ネットワーク トラフィックがすべてのアクティブなノードに分散されることです (すべてのパケットが共通のノードを通過する必要がある集中管理方式とは異なります)。ノード)。

米。 2. 分散型負荷インデックス交換。

ノード負荷インデックスは、次の形式のタプルです。

リ= ,

ここで、src はインデックスの取得元のノードの識別子、dest はインデックスを受け取るノードの識別子、util はソース ノード (src) の CPU 使用率です。

仮想マシンはさまざまな CPU ワークロードを持つさまざまなアプリケーションをホストするため、物理 CPU 使用率は時間の経過とともに大きく変化する可能性があります。 この場合、仮想マシンを移行するかどうかは、次の 2 つのケースで決定できます。

1. CPU 使用率が一定のレベル (上限しきい値) を超えた場合。 上限しきい値を設定する目的は、負荷が急激に (計画外に) 増加する状況が発生した場合に備えて、追加の計算能力を確保することです。

2. CPU 使用率が特定のレベル (下限しきい値) を下回る場合、ノードは十分に活用されていません。 より低いしきい値を設定する目的は、できるだけ多くの物理ノードをスリープ モードにして、電力消費を削減することです。

仮想マシンを移行することが決定されると、宛先ノードの検索が開始されます。 これを行うには、指定された間隔内であれば、現在のノードの負荷ベクトルを調べて、CPU 消費量が最も低いノードを検出します。 そのようなノードが見つからない場合は、選択した VM が転送されるときの負荷インデックスが負荷の下限を超えないノードの検索が実行されます。 この場合、検索で結果が得られなかった場合、「スリープ」モードのノードの 1 つがアクティブ状態に切り替えられ、移行が実行されます。

検討中のアプローチには次のような欠点があることに注意してください。

1. このドキュメントで説明されているアルゴリズム (疑似コード) は、たとえそれが必要で空き物理ノードがある場合でも、移行用の VM の必須の選択を保証するものではありません。

2. 移行のための VM の最適な選択は考慮されません。

3. ターゲット ノードの検索は、ノードのセット全体に対して実行されません (アプローチの説明によると)。

4. 移行のニーズを確認する頻度については言及されていません。

アルゴリズム (少なくともアルゴリズムが提示されている形式では) は、ノードが負荷が増加した状態にある期間を考慮していません。負荷が短い場合、移行の期間がその効率を低下させる可能性があることは明らかです。 。

の研究に基づいて動的なアプローチを開発するための方向性が現在進行中です。 これらの研究では、特定されたモデルに基づく有限差分モデルのシステムの形式で動的モデルを使用します。

この論文では、クラウド ピアツーピア ネットワークで動的分散クエリを実行および最適化するためのスキームについて説明しています (図 3)。著者らは、p2p ネットワークで動作するためのフレームワーク (DObjects) も開発しました。

提案されたアプローチにおけるリクエスト処理の重要な要素は、ネットワークの状態とソースに動的に適応できるカーネルの存在です。 このアプローチでは、結果の出力と計画に従った物理計算が動的かつ反復的に実行されます。

このアプローチにより、負荷の変化に対する応答性が向上し、システムの待ち時間が短縮されます。 現在のアプローチでは、ローカル データベースでのクエリ実行の最適化はアダプターとデータ ソースにかかることに注意してください。

米。 3. クラウド ピアツーピア (p2p) ネットワーク アーキテクチャ。

クエリの実行と最適化は、いくつかの主要な段階で構成されます。

1. ノードがユーザーからリクエストを受け取ると、高レベルの実行計画が生成されます。

2. 次のステップでは、リクエストを実行するノードがプランのアクティブな要素を上から下に順番に選択します。 ただし、負荷スケーリングを実現するために、アクティブ要素の実行をシステム内の任意のノードに委任することができます。 ネットワーク内のターゲット実行ノードを選択するために、ネットワークの詳細とリソース負荷に適応できるモジュールがデプロイされます。 アクティブな要素が実行のためにリモート ノードに転送される場合、その子要素の制御もこのノードに割り当てられます。 リモート ノードは、実行のためにプラン要素の子ノードを他のノードに移動するか、ローカルで実行するかを決定できます。

このアプローチの利点は、アルゴリズムがフレームワーク (ライブラリのセット) の形式で実装されるため、可能な限り短い時間で実装できることです。 ただし、ピアツーピア ネットワークに基づくクラウド データ センターは、現在、実際にはほとんど使用されていません。

結論

提示された各方法には、長所と短所の両方があります。 すべてに共通する欠点は、結果の合成的な性質です。つまり、実装統計は、アプローチをテストするためだけに作成された人工システムで取得されたものであるということです。

しかし、かなり若い分野に関する比較的多数の研究は、最適化の問題が関連しており、そのような開発が近い将来に求められることを示唆しています。

査読者:

Vinokur A.I.、技術科学博士、教授、イヴァン・フェドロフ・モスクワ国立印刷芸術大学印刷メディア情報技術研究所所長(モスクワ)。

Nikulchev E.V.、技術科学博士、国立高等専門教育機関、モスクワ工科大学「VTU」科学研究副学長教授。

書誌リンク

レオノフ D.V. クラウド データベースでの検索最適化の方法 // 科学と教育の現代の問題。 – 2013. – 第 5 号。
URL: http://science-education.ru/ru/article/view?id=10654 (アクセス日: 2019/08/20)。 出版社「自然科学アカデミー」が発行する雑誌をご紹介します。

皆さん、こんにちは! この記事では、検索エンジン Yandex と Google に影響を与える SEO の基本的な概念と原則について説明します。 じゃ、行こう!

検索エンジン最適化SEOの基本原則

ゲスト投稿の重要性

少し前まで、検索エンジンの使用禁止について大騒ぎがありました。 彼女はスパム的な人物だと思われていました。 しかし、それにもかかわらず、ゲスト投稿はインターネット リソースを宣伝するためにマーケティング担当者の間で依然として非常に人気があります。 あなたに求められる主なことは、高品質のコンテンツを作成することです。

ユーザーにとってWebリソースに好ましい雰囲気を作り出す

どのような SEO 活動を実行する場合でも、Web サイトの適切なデザインがトラフィックを保証することを忘れないでください。 実際、Web リソースを宣伝するためにどんな工夫を凝らしたとしても、サイトがユーザーにとって興味がなければ、これはすべて無意味になります。 したがって、シンプルでわかりやすいインターフェイスを作成する必要があります。 この場合にのみ、あなたのサイトが検索エンジンで上位にランクされる可能性があります。

Web リソースの主な要素は、高品質のコンテンツの配置です。

今日はここまでです、皆さん頑張ってください、またお会いしましょう!

講義 5. 情報検索の最適化: 推奨事項

情報検索プロセス通常は経験的な性質のものです。 この場合、検索プロセス管理の組織的な始まりとしてのユーザーの行動は、次のような動機によって引き起こされます。

  • 情報の必要性、
  • システムによって提供されるさまざまな戦略、テクノロジー、ツール。

評価します クエリ式の適切性得られた結果の完全性により、ユーザーは次のことが可能になります。

  • 追加情報を見つけて、
  • 検索結果の一部を別の部分の妥当性を確認または否定するために使用できるように、検索プロセスを組織します。

ユーザーと検索エンジンの対話に直接関与する操作オブジェクトは次のとおりです。文書検索イメージそして 検索クエリの画像.

文書画像の検索 - 情報検索言語によって表現され、要求に応じて検索するために必要なこの文書の主要な意味内容またはその他の特徴を特徴付ける文書の説明。

情報検索技術-P 情報ニーズを満たすために使用される検索ツールとテクノロジー。 それらは、図書館員が解決する問題の種類、つまり研究対象のオブジェクトに関する図書館員の知識と無知の比率によって決まります。 さらに、図書館員とシステム間の対話プロセスは、機能に関する図書館員の知識のレベルによって決まります。ツールとしてのシステムとリソースの内容に関する知識 (情報表現の完全性、ソースの信頼性など)。

必要な情報を見つける手順は、主に 4 つの段階に分ける必要があります。

1. 調査の組織

  1. 知識領域の定義。
  2. データの種類とソースの選択。

2. 検索処理の実装

  1. 単語の最初の部分に基づいて検索を整理し、
  2. 「検索画像」の文言、
  3. 最終絞り込み検索

一般に、単語の最初の部分に基づいて検索を編成することが受け入れられています (右側が切り捨てられた検索)。 たとえば、「library」という単語の代わりに、その断片を入力できます。 « 図書館*"。 この場合、単語だけでなく、 « 図書館」だけでなく、「図書館」、「司書」、「 図書館員は、それぞれの場合において、何を見つける必要があるかを明確に理解する必要があります (「検索画像定式化」)、提案されたオプションでは、単語を完全に(切り捨てずに)指定する場合よりもはるかに多くのドキュメントが見つかるためです。 結果として得られる一連の情報に対して、明確な検索を実行することができ、その結果、より関連性の高いデータを取得できます。

3. 検索結果の評価

検索結果は次の要件を満たしている必要があります。

  • 独自性、
  • 完全、
  • 一貫性

検索の種類が異なれば、結果の評価に関する検索システムの機能に対する要件も異なります。 ただし、この場合については、件名検索完全性の証明はアプリオリです。検索結果自体が、目的のプロパティを持つオブジェクトの存在 (または不在) を確認します。 この場合の結果はテーマ別検索は複数であり、その後の体系化が必要です。これは、明示的に定義されていない基準の値に従って、結果として得られるオブジェクトのセットを順序付けるための別の手順です。 その順番で、問題のある検索すでに 2 レベルの体系化を前提としています。

要求の複雑化、指定、および詳細は、満足のいく答えが得られなかった場合に、検索画像を変更することによって実行されます。再定式化最初の検索の結果として取得されたのと同じデータ配列で 2 番目の検索を要求し、実行します。 異なる検索エンジン (たとえば、Google と Yandex の組み合わせ) で同じリクエストを再確認することをお勧めします。

4. 検索結果の処理

  • 最も有用な情報の選択。
  • 情報処理方法の選択
  • 収集した情報のパターン、正式な規則、構造的なつながりを検索します。
  • 得られた結果の創造的な解釈。
  • 抽出された「知識」を統合します。

検索プロセスの開発は、POS 式を変更し、クエリを再定式化し、同じデータ配列または最初の検索の結果として得られたサブ配列内で 2 回目の検索を実行することによって実行されます。

検索結果の処理方法

変換の性質に基づいて (処理結果をさらに使用するというコンテキストで)、検索結果を処理する方法は次の 2 つのグループに分類できます。

  • 構造とフォーマットの変換。
  • 情報分析 (論理的意味論的変換、構造的意味論的変換)。

検索エンジンは直接検索に利用されており、その数は世界中で数百に上ります。 これらは、特定の種類のクエリまたはそれらの組み合わせ (書誌、住所、事実、テーマなど) に焦点を当てます。 さらに、全文検索エンジン、混合検索エンジン、その他の検索エンジンもあります。

参考文献

設計オブジェクトの複雑さと知識の少なさにより、一般に、品質基準とパラメトリック最適化問題の制限は両方とも、極値を探索する古典的な方法を使用するには複雑すぎます。 したがって、実際には、検索エンジンの最適化方法が優先されます。 考えてみましょう あらゆる検索方法の主要な段階。

検索メソッドの入力データは、メソッド e の必要な精度と検索の開始点です。 バツ 0 .

次に、検索ステップ サイズが選択されます h、そしていくつかのルールに従って新しいポイントが得られます バツ k +1 前の時点までに バツ kk= 0, 1, 2, … 検索停止条件が満たされるまで、新たなポイントの取得を続けます。 最後の検索ポイントは、最適化問題の解と見なされます。 すべての検索ポイントが検索軌跡を構成します。

検索方法によってステップ サイズの選択手順が異なります。 h(ステップはメソッドのすべての反復で同じにすることも、各反復で計算することもできます)、新しい点を取得するためのアルゴリズム、および検索を停止するための条件。

一定のステップ サイズを使用するメソッドの場合、 h はるかに低い精度を選択する必要があります e。 選択したステップ サイズの場合 h必要な精度で解を取得できない場合は、ステップ サイズを減らし、既存の軌道の最後の点から検索を続ける必要があります。

検索終了条件として次の条件を使用するのが一般的です。

1) 隣接するすべての検索ポイントが前の検索ポイントよりも悪い。

2) 〜 F(バツ k +1 )-F(バツ k ) ç £ e、つまり目的関数の値 F(X)隣接する点 (新しい点と以前の点) は、必要な精度を超えない量だけ互いに異なります。 e;

3) , = 1, …, n、つまり、新しい探索点におけるすべての偏導関数は実質的に 0 に等しく、つまり精度 e を超えない量だけ 0 と異なります。

新たな探索点を取得するアルゴリズム バツ k前のポイントに +1 バツ k検索方法ごとに異なりますが、新しい検索ポイントはそれぞれ、前の検索ポイントより悪くなってはなりません。最適化問題が最小検索問題の場合、次のようになります。 F(X k +1 ) £ F(X k ).

検索エンジン最適化手法は通常、新しいポイントを取得するために使用される目的関数の導関数の次数に従って分類されます。 したがって、ゼロ次探索法では導関数を計算する必要はなく、関数自体で十分です。 F(X)。一次探索法では一次偏導関数が使用され、二次探索法では二次導関数行列 (ヘッセ行列) が使用されます。

導関数の次数が高くなるほど、新しい検索ポイントの選択が正当化され、メソッドの反復回数が少なくなります。 しかし同時に、導関数の数値計算が必要なため、各反復には多大な労力がかかります。

探索法の有効性は、反復回数と目的関数の計算回数によって決まります。 F(X)メソッドの各反復で。

考えてみましょう 最も一般的な検索方法、反復回数の降順に並べます。

ゼロ次検索メソッドの場合次のことが当てはまります: ランダム探索法では、計算回数を事前に予測することは不可能です。 F(X) 1回の繰り返しで N、座標降下法では N£2× n、 どこ n- 制御パラメータの数 バツ = (バツ 1 , バツ 2 .,…, バツ n ).

一次検索方法の場合次の推定値は有効です: 一定ステップによる勾配法において N = 2 × n; ステップ分割による勾配法において N=2 × n + n 1 、 どこ n 1 – 計算回数 F(X)、段差の破砕状況を確認するために必要です。 最急降下法では N = 2 × n + n 2 、 どこ n 2 – 計算回数 F(X)、最適なステップ サイズを計算するために必要です。 Davidon-Fletcher-Powell (DFP) 法では N = 2 × n + n 3 , どこ n 3 – 計算回数 F(X)、ヘッセ行列 (量の場合) を近似する行列を計算するために必要 n 1 , n 2 , n 3 比率は有効です n 1 < n 2 < n 3 ).

そして最後に 二次法では- ニュートン法 N = 3 × n 2 .

これらの推定値を取得する場合、有限差分式を使用した導関数の近似計算が想定されます。つまり、一次導関数を計算するには、目的関数の 2 つの値が必要です。 F(X)、二次導関数の場合は、3 点における関数の値です。

実際には、最急降下法やDFT法が、反復回数と労働強度の比率が最適な方法として広く使われています。

ゼロ次検索メソッドを見てみましょう。 ランダム探索法では、初期データは探索の開始点となる方法 e の要求精度です。 バツ 0 = (バツ 1 0 , バツ 2 0 , …, バツ n 0 ) 検索ステップサイズ h.

新しいポイントの検索はランダムな方向に実行され、指定されたステップは延期されます。 h、お試しポイントを獲得します 試行ポイントが前の検索ポイントよりも優れているかどうかを確認します。 最小の検索問題の場合、これは次のことを意味します。

(6.19)

この条件が満たされる場合、試行点は検索軌跡に含まれます (
)。 それ以外の場合、トライアル ポイントは考慮から除外され、そのポイントからの新しいランダムな方向が選択されます。 バツ k , k= 0、1、2、… (図 6.3)。

バツ k +1

F(X)

この方法は単純であるにもかかわらず、その主な欠点は、探索軌道上の新しい点を取得するためにどれだけのランダムな方向が必要になるかが事前にわからないという事実です。 バツ k +1 、そのため 1 回の反復のコストが高くなりすぎます。

米。 6.3. ランダム探索方式へ

また、探索方向の選択には目的関数に関する情報は使用されないため、 F(X)、ランダム探索法の反復回数は非常に多くなります。

この点において、ランダム探索法は、あまり研究されていない設計オブジェクトを研究し、目的関数の大域的極値を探索する際に極小値の吸引ゾーンから逃れるために使用されます。

座標降下法では、ランダム探索法と異なり、座標軸に平行な方向が探索可能方向として選択され、座標値が増加する方向と減少する方向の両方に移動可能である。

座標降下法の初期データはステップ サイズです。 hそして探索のスタート地点 バツ 0 = (バツ 1 0 , バツ 2 . 0 ,…, バツ n 0 ) 。 点から動きを始めます バツ 0 x 1 軸に沿って座標が増加する方向に。 テストポイントを獲得しましょう
(バツ 1 k + h, バツ 2 k ,…, バツ n k), k= 0。関数の値を比較してみましょう F(X)前の検索点 X k での関数の値を使用します。

もし
(最小化問題を解く必要があると仮定します) F(X)、試行点が検索軌跡に含まれます (
) .

それ以外の場合は、試行点を考慮から除外し、軸に沿って移動する新しい試行点を取得します。 バツ 1 座標が減少する方向に。 テストポイントを獲得しましょう
(バツ 1 k h, バツ 2 k ,…, バツ n k)。 どうかを確認してください
, 次に、x 2 軸に沿って座標が増加する方向に移動を続けます。 テストポイントを獲得しましょう
(バツ 1 k + h, バツ 2 k ,…, バツ n k)など。

探索軌跡を構築する際、探索軌跡に含まれる点に沿った繰り返しの移動は禁止されます。

座標降下法での新しい点の取得は、すべての隣接する 2x が一致する点 X k が取得されるまで続けられます。 nトライアルポイント(全方向) バツ 1 , バツ 2 , …, バツ n座標値が増加または減少する方向) は悪化します。つまり、
。 その後、検索が停止し、検索軌跡の最後の点が最小点として選択されます。 X*= X k .

例を使用して座標降下法の動作を見てみましょう (図 2.21)。 n = 2, バツ = (バツ 1 , バツ 2 )、F (バツ 1 , バツ 2 ) , F(バツ 1 , バツ 2 ) = (バツ 1 – 1) 2 + (バツ 2 – 2) 2 , h= 1、X 0 = (0, 1) .

    軸に沿って動き始めます バツ 1 上向き

コーディネート。 最初のテストポイントを取得しましょう

(バツ 1 0 + h, バツ 2 0 ) = (1, 1), F() = (1-1) 2 + (1-2) 2 = 1,

F(X 0 ) = (0-1) 2 + (1-2) 2 = 2,

F( ) < Ф(Х 0 )  バツ 1 = (1, 1).

    バツ 1 地点から バツ 1

=(バツ 1 1 + h, バツ 2 1 ) = (2, 1), F( ) = (2-1) 2 + (1-2) 2 = 2,

F(X 1 ) = (1-1) 2 + (1-2) 2 = 1,

あれは F( ) > Ф(Х 1 ) – 座標 (2, 1) の試行点は考慮から除外され、その点から最小値の検索が続行されます。 バツ 1 .

    私たちは軸に沿って進み続けます バツ 2 地点から バツ 1 コーディネートを増やす方向へ。 テストポイントを獲得しましょう

= (バツ 1 1 , バツ 2 1 + h) = (1, 2), F( ) = (1-1) 2 + (2-2) 2 = 0,

F(X 1 ) = (1-1) 2 + (1-2) 2 = 1,

F( ) < Ф(Х 1 ) バツ 2 = (1, 2).

    私たちは軸に沿って進み続けます バツ 2 地点から バツ 2 コーディネートを増やす方向へ。 テストポイントを獲得しましょう

= (バツ 1 2 , バツ 2 2 + h) = (1, 3), F( ) = (1-1) 2 + (3-2) 2 = 1,

F(X 2 ) = (1-1) 2 + (2-2) 2 = 0,

あれは F( ) > Ф(Х 2 ) – 座標 (1, 3) の試行点は考慮から除外され、その点から最小値の検索が続行されます。 バツ 2 .

5. 軸に沿って移動を続けます バツ 1 地点から バツ 2 コーディネートを増やす方向へ。 テストポイントを獲得しましょう

= (バツ 1 2 + h, バツ 2 2 ) = (2, 2), F( ) = (2-1) 2 + (2-2) 2 =1,

F(X 2 ) = (1-1) 2 + (2 - 2) 2 = 0,

あれは F(X ^ ) > Ф(Х 2 ) – 座標 (2, 2) の試行点は考慮から除外され、その点から最小値の検索が続行されます。 バツ 2 .

6. 軸に沿って移動を続けます バツ 1 地点から バツ 2 座標が減少する方向に。 テストポイントを獲得しましょう

= (バツ 1 2 - h, バツ 2 2 ) = (0, 2), F( ) = (0-1) 2 +(2-2) 2 = 1,

F(X 2 ) = (1-1) 2 + (2 - 2) 2 = 0,

あれは F( ) > Ф(Х 2 ) – 座標 (0, 2) の試行点は考慮から除外され、最小値の探索は完了します。 バツ 2 検索を停止する条件が満たされています。 関数の最小点 F(バツ 1 , バツ 2 ) = (バツ 1 – 1) 2 + (バツ 2 – 2) 2 は バツ * = X 2 .

一次探索法では、目的関数の最大値を探索する方向として F(X)目的関数の勾配ベクトルが選択されます 卒業生(F(X k )) 、最小値を見つける - 反勾配ベクトル - 卒業生(F(X k )) 。 この場合、関数内の最も速い変化の方向を示すために勾配ベクトルのプロパティが使用されます。

.

次のプロパティも、一次探索方法を研究する場合に重要です: ベクトル勾配 卒業生(F(X k )) 、関数レベルの線に垂直に向けられます。 F(X)時点で バツ k .

レベルライン関数が定数値を取る曲線です ( F(X) = const).

このセクションでは、勾配法の 5 つの変更について説明します。

– 一定ステップによる勾配法、

– ステップ分割による勾配法、

– 最急降下法、

– デビドン・フレッチャー・パウエル (DFP) 法、

– 2 レベル適応法。

一定ステップによる勾配法では、初期データが必要な精度になります e、検索の開始点 バツ 0 そして検索ステップ h.

バツ k+1 = バツ k –h× 卒業生F(バツ k )、k=0、1、2、… (6.20)

関数の場合、式 (2.58) が適用されます。 F(X)最小値を見つける必要があります。 パラメトリック最適化問題が最大探索問題として提示されている場合、一定のステップで勾配法で新しい点を取得するには、次の公式が使用されます。

バツ k+1 = バツ k +h× 卒業生F(バツ k )、k = 0、1、2、… (6.21)

式(6.20)、(6.21)はそれぞれn個の方程式からなるベクトル関係式である。 たとえば、次のことを考慮すると、 バツ k +1 = (バツ 1 k +1 , バツ 2 k +1 ,…, バツ n k +1 )、 バツ k =(バツ 1 k , バツ 2 k ,…, バツ n k ) :

(6.22)

または、スカラー形式では、

(6.23)

一般形式 (2.61) では次のように書くことができます。

(6.24)

原則として、すべての勾配法で検索を停止する条件として 2 つの条件の組み合わせが使用されます。 F(バツ k +1 ) - F(バツ k ) ç £ eまたは
すべてのために =1, …, n.

座標降下法と同じ関数に対して一定のステップを持つ勾配法を使用して最小値を見つける例を考えてみましょう。

n = 2, バツ = (バツ 1 , バツ 2 ), =0.1,

F(バツ 1 , バツ 2 ) = (バツ 1 – 1) 2 + (バツ 2 – 2) 2 , h = 0,3, バツ 0 = (0, 1).

    点を取りましょう バツ 1 式(2.45)によると:

F(バツ 1 ) = (0.6–1) 2 + (1.6–2) 2 = 0.32、F(バツ 0 ) = (0 –1) 2 + (1–2) 2 = 2.

F(バツ 1 ) - F(バツ 0 ) =1,68 > = 0.1  検索を続行します。

    点を取りましょう バツ 2 式(2.45)によると:

F(バツ 2 ) = (0.84–1) 2 + (1.84–2) 2 = 0.05,

F(バツ 1 ) = (0,6 –1) 2 + (1,6–2) 2 = 0,32.

F(バツ 1 ) - F(バツ 0 ) =0,27 > = 0.1  検索を続行します。

    同様に X 3 を取得します。

F(バツ 3 ) = (0.94–1) 2 + (1.94–2) 2 = 0.007,

F(バツ 3 ) = (0,84 –1) 2 + (1,84–2) 2 = 0,05.

検索停止条件を満たしたため、見つかりました バツ * = バツ 3 = (0.94、1.94) の精度 = 0.1.

この例の探索軌跡を図に示します。 6.5.

勾配法の疑いのない利点は、テスト ポイントを取得するための不必要なコストが存在しないことであり、これにより 1 回の反復のコストが削減されます。 さらに、有効な探索方向(勾配ベクトル)を使用するため、座標降下法と比較して反復回数が大幅に削減されます。

勾配法では、複数の検索ステップが同じ方向に実行される状況を回避する方法を学べば、反復回数をわずかに減らすことができます。

ステップ分割による勾配法では、各反復でのステップ サイズを選択する手順は次のように実装されます。

e、検索の開始点 バツ 0 h(いつもの h= 1)。 新しいポイントは次の式を使用して取得されます。

バツ k+1 = バツ k –h k × 卒業生F(バツ k )、k=0、1、2、…、 (6.25)

どこ h k– ごとのステップ サイズ k回目の検索反復、時点 h k 次の条件を満たす必要があります。

F(X k h k × 卒業生F(X k )) £ F(X k ) - h k ×½ 卒業生F(X k ) ½ 2 . (6.26)

値が h kが不等式 (2.64) を満たさない場合、この条件が満たされるまでステップが分割されます。

ステップ分割は式に従って行われます h k = h k ×a, ここで0< ある < 1.Такой подход позволяет сократить число итераций, но затраты на проведение одной итерации при этом несколько возрастают.

これにより、手順、データ、知識の置き換えや拡張が容易になります。

最急降下法では、勾配法の反復ごとに、勾配方向の最適なステップが選択されます。

入力データが必要な精度である e、検索の開始点 X 0 。

新しいポイントは次の式を使用して取得されます。

バツ k+1 = バツ k –h k × 卒業生F(バツ k )、k=0、1、2、…、 (6.27)

どこ h k = 引数 F(X k h k × 卒業生F(X k )) つまり、パラメータに関する 1 次元の最適化の結果に基づいてステップが選択されます。 h (0時< h < ¥).

最急降下法の主な考え方は、方法の反復ごとに、目的関数の最も速い減少の方向、つまり、目的関数の反勾配ベクトルの方向に、可能な最大のステップ サイズが選択されることです。関数 F(X)時点で バツ k。 (図2.23)。

最適なステップ サイズを選択するには、さまざまなステップ サイズから選択する必要があります。 バツ M = (X½ X=X k h× 卒業生F(X k ), h Î / h = 22(2 h-1)2=8(2h-1)=0.

したがって、 h 1 = 1/2 – 最急降下法の最初の反復における最適なステップ。 それから

バツ 1 = バツ 0 – 1/2卒業生F(X 0 ),

バツ 1 1 =0 -1/2 = 1, バツ 2 1 = 1-1/2 = 2  バツ 1 = (1, 2).

探索ポイントで探索終了条件を満たしているか確認してみましょう バツ 1 = (1, 2)。 最初の条件が満たされていません

F(バツ 1 )-F(バツ 0 ) = 0-2 =2 > = 0.1、ただし妥当

つまり、精度のあるすべての偏導関数 がゼロに等しいとみなせる場合、最小点が見つかります。 X*=X 1 =(1,2)。 探索軌跡を図に示します。 6.7.

したがって、最急降下法は 1 回の反復で目的関数の最小点を見つけました (関数のレベルが直線であるため) F(バツ 1 , バツ 2 ) = (バツ 1 – 1) 2 + (バツ 2 – 2) 2 . ((バツ 1 – 1) 2 + (バツ 2 –2) 2 = 定数は円の方程式であり、任意の点からの反勾配ベクトルは正確に最小点 (円の中心) に向けられます。

実際には、目的関数はさらに複雑で、直線も複雑な構成になりますが、いずれの場合も次のことが当てはまります。すべての勾配法の中で、最急降下法は反復回数が最も少ないですが、最適なステップを見つけることができます。 RES を設計するときに生じる実際の問題では、極値を見つけるために古典的な方法を使用することはほとんど不可能であるため、数値的方法を使用するといくつかの問題が発生します。

1 つ以上の制御パラメータが確率変数である不確実性条件下での最適化問題 (確率的オブジェクトの最適化) では、勾配法の修正である 2 レベル適応探索最適化法が使用されます。

バツ 0 および検索ステップの初期値 h(いつもの
)。 新しいポイントは次の式を使用して取得されます。

バツ k+1 = バツ k –h k+1 × 卒業生Ф(Хk)、 k= 0,1,2,…, (6.28)

ステップはどこですか h k +1 は、次の 2 つの式のいずれかを使用して計算できます。 h k +1 = h k + k +1 ×a k、 または h k +1 = h k × 経験値( k +1 ×a k ) 。 通常は低減係数が選択されます k =1/ k、 どこ k– 検索メソッドの反復数。

係数を使う意味 k反復ごとにステップ サイズの調整が行われ、検索方法の反復数が大きくなるほど、次の検索ポイントが極値ポイントに近くなり、ステップ調整をより慎重 (小さく) 行う必要があります。点の極値から離れるのを防ぐため。

マグニチュード ある kそのような調整の符号を決定します ( ある k>0 ではステップが増加し、 ある k <0 уменьшается):

ある k =sign((卒業生F(バツ k )、卒業生F(バツ))} ,

あれは ある k点における目的関数の勾配ベクトルのスカラー積の符号です。 バツ kそして 、 どこ =バツ k h k × 卒業生F(X k ) テストポイントと h kポイントを取得するために使用されたステップです バツ kメソッドの前回の反復時。

2 つのベクトルのスカラー積の符号により、これらのベクトル間の角度の大きさを推定できます (この角度を次のように表します) )。 もし  9 の場合、スカラー積は正でなければならず、それ以外の場合は負になります。 以上を考慮すると、2レベル適応法におけるステップサイズ調整の原理を理解するのは難しくない。 反勾配間の角度が   (鋭角) の場合、検索方向は点からになります。 バツ kが正しく選択されていれば、ステップ サイズを増やすことができます (図 6.8)。

米。 6.8. 探索方向の選択  

反勾配間の角度が   (鈍角) の場合、検索方向は点からになります。 バツ k私たちを最小点から遠ざける バツ*、ステップを減らす必要があります (図 6.9)。

米。 6.9. 探索方向の選択 > 

この方法は、各検索反復で 1 つではなく 2 つの点が分析され、2 つの反勾配ベクトルが構築されるため、2 レベルと呼ばれます。

もちろん、これにより 1 回の反復を実行するコストは増加しますが、ステップ サイズの適応 (調整) が可能になります。 h k +1 ランダム因子の挙動について。

最急降下法は実装が単純であるにもかかわらず、実際に使用するには動作が遅すぎるため、多くの変数の関数の制約のない最適化の問題を解決するための「本格的な」最適化手順としては推奨されません。

その理由は、最急降下特性は局所的な特性であるため、探索方向を頻繁に変更する必要があり、非効率的な計算手順につながる可能性があるためです。

パラメトリック最適化問題を解くためのより正確かつ効率的な方法は、目的関数の 2 次導関数 (2 次法) を使用して取得できます。 これらは関数の近似 (つまり近似置換) に基づいています。 F(X)関数 j(バツ),

j(X) = Ф(Х 0 ) + (X - X 0 ) T × 卒業生F(X 0 ) + ½ G(バツ 0 ) × (X - X 0 ) , (6.29)

どこ G(バツ 0 ) - ヘッセ行列 (ヘッセ行列、二次導関数の行列)、点で計算されます。 バツ 0 :

2 F(X) 2 F(X) . . . 2 F(X)

バツ 1 2 バツ 1 バツ 2 バツ 1 バツ n

G(バツ) = 2 F(X) 2 F(X) . . . 2 F(X)

バツ 2 バツ 1 バツ 2 2 バツ 2 バツ n

2 F(X) 2 F(X) . . . 2 F(X)

バツ n バツ 1 バツ n バツ 2 バツ n 2 .

式 (2.67) は、関数の展開の最初の 3 項を表します。 F(X)点付近のテイラー級数内 バツ 0 したがって、関数を近似するとき F(X)関数 j(バツ) 1/2/2 以下の誤差が発生する X-X 0 1/2 3 .

(2.67) を考慮すると、ニュートン法では初期データが必要な精度になります。 e、検索の開始点 バツ 0 新しいポイントは次の式を使用して取得されます。

バツ k +1 = X k G -1 (バツ k ) × 卒業生Ф(Хk)、 k=0,1,2,…, (6.30)

どこ G -1 (バツ k ) – ヘッセ行列の逆行列。検索ポイントで計算されます。 バツ k (G(バツ k ) × G -1 (バツ k ) = 私、

I = 0 1 … 0 - 単位行列。

一定ステップによる勾配法および座標降下法と同じ関数の最小値を見つける例を考えてみましょう。

n = 2, バツ = (バツ 1 , バツ 2 ), = 0.1,

F(バツ 1 , バツ 2 ) = (バツ 1 – 1) 2 + (バツ 2 – 2) 2 、 バツ 0 =(0, 1).

    点を取りましょう バツ 1 :

X 1 = X 0 – G –1 (X 0)・grad Ф(X 0)、

どこ

grad Ф(X 0) = (2∙(x 1 0 –1)), 2∙(x 1 0 –1) = (–2, –2)、つまり

または

バツ 1 1 = 0 – (1/2∙(–2) + 0∙(–2)) = 1,

バツ 2 1 = 1 – (0∙(–2) + 1/2∙(–2)) = 2,

バツ 1 = (1, 2).

検索終了条件を満たしているか確認してみましょう: 最初の条件が満たされていません

F(バツ 1 )-F(バツ 0 ) = 0 - 2  = 2 > = 0.1,

でも公平だ

つまり、精度  を持つすべての偏導関数はゼロに等しいと見なすことができ、最小点が見つかります。 X* = X 1 = (12)。 探索軌跡は最急降下法の軌跡と一致します(図2.24)。

ニュートン法の主な欠点は、逆ヘシアンの計算コストがかかることです。 G -1 (バツ k ) メソッドの各反復で。

DFT 法は、最急降下法とニュートン法の両方の欠点を克服します。

この方法の利点は、逆ヘッセ行列と方向の計算が必要ないことです。 N k × 卒業生F(X k)、ここで N k- 各反復 (検索メソッドのステップ) で再計算され、逆ヘッセ行列を近似する正定対称行列 G -1 (バツ k ) (N k ® G -1 (バツ k ) 増加とともに k).

さらに、DFT 法を使用して n 個の変数の関数の極値を見つけると、n 回以内の反復で収束します (つまり、解が得られます)。

DFT 法の計算手順には次のステップが含まれます。

入力データは必要な精度 e、検索の開始点です。 バツ 0 と初期行列 N 0 (通常は単位行列、 N 0 =私)。

    の上 kこの方法の 3 回目の反復で、探索点 X k と行列が判明します。 N k (k = 0,1,…).

    検索方向を示しましょう

d k = -N k × 卒業生Ф(Хk)。

最適なステップ サイズを見つける k方向 d k 1 次元の最適化手法を使用 (最急降下法と同じ方法で、反勾配ベクトルの方向の値が選択されました)

H. と表しましょう v k = k × d k新しい検索ポイントを取得します バツ k +1 = バツ k + v k .

4. 検索停止条件を満たしていることを確認します。

1/2の場合 v k ½£ eまたは 1/2 卒業生F(X k +1 ) ½£ e、解決策が見つかります バツ * = X k +1 。 それ以外の場合は計算を続行します。

5. と表しましょう あなた k = 卒業生Ф(Х k +1) - 卒業生Ф(Х k) と行列 N k +1 次の式を使用して計算します。

H k +1 =H k +A k + B k , (6.31)

どこ k =v k 。 v k T /(v k T × あなた k ) , B k = - H k × あなた k 。 あなた k T 。 H k /(u k T × H k × あなた k ) .

kそして kサイズの補助行列です nバツ n (v k T行ベクトルに対応します。 v k列ベクトル、乗算の結果を意味します n-次元ライン上 n-次元列はスカラー量 (数値) であり、列と行を乗算すると、次のサイズの行列が得られます。 nバツ n).

6. 反復数を 1 つ増やして、このアルゴリズムのポイント 2 に進みます。

DFT 手法は、ほとんどの関数の最適化に効果的な強力な最適化手順です。 DFT 法におけるステップ サイズの 1 次元の最適化には、補間法が使用されます。