問題タブ [simulated-annealing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 原始的な形で画像を再現します。(グラフィック最適化問題)
この独創的なアイデアに基づいて、あなたの多くはおそらく以前に見たことがあるでしょう:http: //rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mona-lisa/
別のアプローチを試してみたかったのです。
ターゲット画像があります。一度に1つの三角形を追加できるとしましょう。画像の類似性(適応度関数)を最大化するいくつかの三角形(または同点の場合は三角形)が存在します。考えられるすべての形や色を総当たり攻撃できれば、それを見つけることができます。しかし、それは法外に高価です。すべての三角形の検索は10次元空間です:x1, y1, x2, y2, x3, y3, r, g, b, a
。
シミュレーテッドアニーリングを使用したところ、かなり良い結果が得られました。しかし、私はこれをさらに改善できるかどうか疑問に思っています。一つの考えは、実際にターゲット画像と現在の画像の画像の違いを分析し、新しい三角形を配置するのに適した場所である可能性のある「ホットスポット」を探すことでした。
画像の類似性を最大化する最適な三角形(または他の形状)を見つけるために、どのアルゴリズムを使用しますか?
粗い詳細と細かい詳細を異なる方法で処理するために、アルゴリズムを変更する必要がありますか?より細かい画像の詳細を調整し始めるのに十分な時間実行させていません。実行時間が長くなるほど、新しい形状を追加することに「恥ずかしがり屋」になるようです...低いアルファ値(非常に透明な形状)を使用します。
ターゲット画像と再現画像(28個の三角形):
編集!私は新しい考えを持っていました。形状座標とアルファ値が指定されている場合、現在の画像とターゲット画像のピクセルを分析することにより、形状に最適なRGBカラーを計算できます。これにより、検索スペースから3次元が排除され、使用している色が常に最適であることがわかります。これを実装し、三角形の代わりに円を使用して別の実行を試みました。
300個の円と300個の三角形:
artificial-intelligence - シミュレーテッドアニーリングと遺伝的アルゴリズムの違いは何ですか?
シミュレーテッドアニーリング(Bean検索を使用)と遺伝的アルゴリズムのパフォーマンスとユースケースの点で、関連する違いは何ですか?
SAは人口サイズが1つしかないGAと考えることができることは知っていますが、2つの主な違いはわかりません。
また、SAがGAを上回ったり、GAがSAを上回ったりする状況を考えています。私が理解するのに役立つ簡単な例を1つだけで十分です。
algorithm - シミュレートされたアニーリング - センサー ネットワークにおけるセンサーの配置
こんにちは、ワイヤレス センサー ネットワークにおけるローカリゼーション センサーの問題を理解するのに少し問題があります。その記事http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.110.2833&rep=rep1&type=pdfに基づいて 、ローカリゼーション センサーの問題を解決する小さなシミュレーション プログラムを書こうとしています。センサーネットワーク。
最適化問題はそのように見えます
m 個のセンサー (アンカー ndoes) のセットがあり、それぞれの位置が既知であり、位置が不明な n 個のセンサー (非アンカー ndoes) があるとします。すべてのノードには、それ自体と隣接ノード間の距離を測定する機能があります (測定値はノイズで破損します)。
私の仕事は次のとおりです。
ノイズの多い距離測定とアンカーノードの位置により、位置が不明なすべてのノードの位置を推定します。
記事(質問の冒頭で述べた)には、理解できないコスト関数もあります。アンカー ノードの位置がすべてのノードの位置の推定にどのように役立つのかわかりません。
誰かが私が書いていることを理解してくれることを願っています:)私の英語でごめんなさい:)
matlab - シミュレーテッドアニーリングを使用したkreisselmeiersteinhauser関数
シミュレーテッドアニーリング最適化を使用してKreisselmeierSteinhauser(KS)関数を実装するにはどうすればよいですか?KSfuncを使用したSAのコードは次のとおりです。
KS関数は次のように実装されます。
simulated-annealing - シミュレーテッド・アニーリングとヤッツィー!
プログラミング チャレンジを手に入れて、ヤッツィーを見つけました。私が単純化する問題:
- 13の採点カテゴリがあります
- プレーヤーによる 13 のロールがあります (プレーを構成します)。
- 各ロールは異なるカテゴリに収まる必要があります
- 目標は、プレイの最大スコア (カテゴリ内のロールの最適な配置) を見つけることです。score(play) はプレイのスコアを返します
最大プレイ スコアを見つけるためのブルート フォースには 13 が必要です。(= 6,227,020,800) score() 呼び出し。
私はシミュレーテッド アニーリングを選択して、最高スコアに近いものをより速く見つけます。決定論的ではありませんが、それで十分です。次のような 5 つのサイコロの 13 ロールのリストがあります。
また、(1,5,6,7,2,3,4,8,9,10,13,12,11)
score() に渡されたプレイは、そのプレイの順列のスコアを返します。
適切な「隣接する州」を選択するにはどうすればよいですか? ランダム再起動の場合、番号のランダムな順列を選択するだけです。1 ~ 13 をベクトルに配置し、スコアを付けます。巡回セールスマン問題で、良好な隣接状態の例を次に示します。
「特定の順列の隣人は、たとえば隣接する都市のペアを交換することによって生成される順列です。」
次のように、2 つのランダムなベクトル位置を単純に交換することに嫌な予感がします。
しかし、私には証拠がなく、良い近隣州を選択する方法がわかりません。良い近隣州を選ぶ方法について何か考えがある人はいますか?
simulated-annealing - シミュレーテッド アニーリングを使用した N クイーン問題
シミュレーテッド アニーリングを使用して、n 個のクイーンのアルゴリズムを考え出そうとしています。一般的なアルゴリズムはオンラインにありますが、それを見ると、それがどのように機能するのか理解できませんでした。私のノードには、ボード上のヒット数に関する値しかありません。これにシミュレーテッド アニーリング アルゴリズムを使用するにはどうすればよいですか。「気温」「スケジュール」とは?
これを理解するのを手伝ってください。ありがとう
algorithm - ルールに従ってリソースを割り当てる-シミュレーテッドアニーリングは適切ですか?
ルールに従ってリソースを割り当てることができるアプリケーションを設計したいと思います。シミュレーテッドアニーリングは機能すると思いますが、あまり詳しくないので、適切な代替アルゴリズムがあるかどうか疑問に思いました。
たとえば、グリッドがあり、グリッド内の各セルに色を付けることができる場合、次のようなルールセットの最適または最適に近いソリューションを見つけるアルゴリズムを設計したいと思います。
- 1000x1000グリッド
- 500個の赤血球、500個の青色のセル、および1000個の緑色のセルを配置する必要があります
- 赤血球が別の赤血球に接触している必要があります
- 青いセルが別の青いセルに触れてはいけません
- 緑色のセルは、端に沿ってのみ配置できます
- 配置は、左上隅からの色付きのセルの平均距離に基づいてスコアリングできます
シミュレーテッドアニーリングはこの問題に適していますか?解を確実にすばやく(数秒から数分)計算できるアルゴリズムが必要です。
debugging - モンテカルロシミュレーションをより速くデバッグする方法は?
シミュレートされたアニーリング プログラムを作成していますが、デバッグに問題があります。どんなアドバイスでも大歓迎です。
まず第一に、出力は決定論的ではないため、100 回実行して平均と標準偏差を調べました。
しかし、1 つのテスト ケースを完了するのに何年も (> 30 分) かかります。
通常、私は入力を削減しようとしますが、反復回数を減らすと、完全には予測できない方法で結果の精度が直接低下します。たとえば、冷却スケジュールは、反復回数にスケーリングされた指数関数的減衰です。個別の実行回数を減らすと、出力の信頼性が非常に低くなります (私が見つけようとしているバグの 1 つは、実行間の大きな差異です)。
時期尚早の最適化がすべての悪の根源であることは知っています。プログラムが正しくなる前に最適化するのは時期尚早であるに違いありませんが、これをより高速な言語 (Cython または C) に書き直すことを真剣に考えています。最終的に提出のためにPythonに移植します。
それで、私が今持っているものよりも優れたシミュレートされたアニーリングアルゴリズムをテストする方法はありますか? または、テストの合間に別の作業を行う必要がありますか?
開示:これはコースワークの課題ですが、実際のシミュレーションを手伝ってほしいと言っているわけではありません。
python - SciPy グローバル最小カーブ フィット
を使用してscipy.optimize.curve_fit
いますが、全体的な最小値ではなく局所的な最小値に収束していると思われます。
次の方法でシミュレートされたアニーリングを使用してみました。
specf
私が当てはめようとしている曲線はどこにありますか。ただし、戻り値が全体的な最小値に達したことを示している場合でも、の結果p
は によって返される最小値よりも明らかに悪いです( anneal を参照)。curve_fit
どうすれば結果を改善できますか? SciPy にグローバル カーブ フィッターはありますか?
simulated-annealing - シミュレートされたアニーリングを理解する - 概念的に
シミュレートされたアニーリングを紹介されたばかりで、これまでのリソースからコードを読んでもよくわからないので、コードをもう一度掘り下げる前に、それをよりよく理解したいと思います。したがって、アルゴリズムに関する私の現在の理解を自由に修正してください。
シミュレーテッド アニーリング アルゴリズムには、あらかじめ定義された計算方法 (TSP での移動距離やバイオインフォマティクスでのコドン ペア分布など) に基づいて、最小 (または最大) スコアを達成するという全体的な目標があります。ただし、局所的な最適解にとらわれるのを避けるために、一時的に低い (または高い) スコアが受け入れられ、より優れた全体的な解が得られます。
追加の質問: ローカル オプティマはどのように克服されますか? ある確率に基づいてより高いスコアを受け入れることによってですか?(ここからかなりぼんやり)
これを調べてくれてありがとう..