私と大学の私の友人のいくつかは、ある種の材料から長方形の部分をカットする最適化のためのネットアプリケーションを開発する実践的な課題を割り当てられました。 thisのアプリのようなものですが、もっと単純です。基本的には、この種の最適化アルゴリズムのソースコードがインターネット上にある場合は興味があります。私は、Adobe Flexフレームワークを使用してアプリケーションを開発する予定です。プログラミングの部分は、Actionscript 3、ofcで行われます。しかし、私はこの言語のための最適化のサンプルがあることを疑う。 Java、C++、C#、Ruby、Pythonなどの一般的な言語の言語があるかもしれませんが、(私はASでそれを書き直す必要があります)。ですから、私に合った無料のライブラリやアルゴリズムコードのサンプルを誰かが知っていれば、私はあなたの提案を聞きたいと思います。 :)カット最適化アルゴリズム
答えて
これはあなたが必要なもののためにやり過ぎかもしれないが、次のリンクは、この種の問題のために非常に良い結果をもたらすアプローチについて説明します。
http://www.intechopen.com/articles/show/title/a_greedy_algorithm_with_forward-looking_strategy
あり利用可能なコードはありませんが、アルゴリズムがあります十分に詳細に記述すると、それを実装するのはあまり難しくありません。私はC#(申し訳ありませんが、そのコードを共有することはできません)を使用してこれを実装し、結果に非常に満足していました。
私が働いている木製の会社のために同じことをしたいと思ったときに私は例を見つけることができませんでした。問題自体はNP困難ですので、ファーストフィットやベストフィットアルゴリズムなどの近似アルゴリズムを使用する必要があります。 2dビンパッキングアルゴリズムを検索します。私が見つけたものは、パネルを最小から最小まで並べ替えてから、順番にシートに追加し、それが収まる最初のビンに入れます。申し訳ありませんが、とにかくvb.netで私と一緒にコードを持っていない。
これはちょっとstock cutting problemのように聞こえますが、は非常に難しいです!最良の解決策は、線形プログラミング(通常はシンプレックス法に基づく)と列生成を使用します(数年後に研究プロジェクトを解決する制約を受けたにもかかわらず、まったく説明できないと感じます)。つまり、このアプローチをActionscriptで試してみることは望ましくありません。結果的に、あなたが実装するものは何でも、小さな問題以外には大きな成果を期待すべきではありません。
私が提供できる最良のアドバイスは、ソース矩形をストリップ(あなたが必要とする最大の矩形の幅)にカットしてから、 "ヘッド"の後に各ストリップの残りの部分を細分するか、長方形が削除されました。
最適化戦略としてbranch-and-boundを使用することをおすすめします。 BnBは、これまでに見られた最良のソリューションを追跡する網羅的なツリー検索を実行することによって動作します。ソリューションを見つけたら、バインディングを更新し、次のソリューションを探すバックトラックします。あなたが見つけた最高のものよりも優れたソリューションにつながることができないと分かっているブランチへの検索がわかっている場合は、その時点で早めにバックトラックすることができます。
これらの検索ツリーは非常に大きくなるため、検索に時間制限を設け、ベストエフォートを返すことをお勧めします。
これが役に立ちます。
- 1. 最適化アルゴリズム
- 2. アルゴリズムの最適化
- 3. ヘルプ最適化アルゴリズム
- 4. SciPy最適化アルゴリズム
- 5. 進化的最適化アルゴリズム
- 6. 既存のシステム接続を最適化する最適化アルゴリズム
- 7. 遺伝的アルゴリズム:リクエストの最適化
- 8. ページ置換アルゴリズム:FIFO、LRU最適化
- 9. 最適化アルゴリズムと回帰モデル
- 10. JavaScriptの最適化ペア検索アルゴリズム
- 11. ニューラルネット最適化遺伝的アルゴリズム
- 12. 操作挿入プログラムの最適化アルゴリズム
- 13. 粒子群最適化アルゴリズムの次元
- 14. Javaの最適化アルゴリズムのライブラリ
- 15. 電場線の最適化描画アルゴリズム
- 16. アルゴリズムの最適化に関するヘルプ
- 17. ディスクの最適化 - JavaでのSCANアルゴリズム
- 18. Java差分XMLアルゴリズムの最適化
- 19. 最適なアルゴリズム
- 20. 最適化されたパスの移動先に適したアルゴリズム
- 21. iOS Metal - 単純化/最適化アルゴリズム(ポイントライン距離)
- 22. SQL最適化最適化?
- 23. 配列の最大差を求める - アルゴリズムの最適化ソリューション
- 24. 最大値アルゴリズムを最適化する方法
- 25. 最大素数divを計算するアルゴリズムを最適化
- 26. 最適な分類アルゴリズム
- 27. 最適な2Dレイアウトのアルゴリズム
- 28. 非同期検索アルゴリズムを最適化する
- 29. 拘束最適化のためのNelder Meadアルゴリズム?
- 30. 関数近似と最適化アルゴリズムの違いは?
ありがとう、良い解決策のように見える、私はそれを見てみましょう。 :) – Varnius