NP完全問題またはNPの現実の問題


17

NP完全問題またはNPハード問題(ヒューリスティック、または最適以下のソリューションの追跡など)を仕事で定期的に解決する実際の例はありますか?スケジューリング、プランニング、VLSI設計などで発生することは知っていますが、今日これを定期的に行うプログラマーやエンジニアを雇用している主要産業のアイデアを得ようとしています。専門知識やライブラリ、たとえば組み合わせ最適化を開発する場合、プログラミングジョブの一部としてそれをどこで使用できますか?

個人アカウントはありますか?


あなたは、「定期的に」とはどういう意味ですか
コンラッドFrix

@コンラッド、それは主観的なアイデアだと思います。私は、努力の5-10%以上がnp-completeまたはnp-hard問題の解決に集中していると言えるでしょう。
highBandWidth

ゲームでのAIプログラミングは、NP完全になる可能性があると思います。
マイケルK

多くのNPハード問題がそこにあります(通常、有限リソースでのスケジューリングと計画はNPハードです)。ただし、組み合わせ最適化は間違った方法です。100を生成できること!可能な限り高速な組み合わせは、ドメイン固有のヒューリスティックを適用できるよりもはるかに有用ではありません。
デイヴィッドソーンリー

@David、組み合わせ最適化によって組み合わせを生成するつもりはありませんでした。私はk-SATや巡回セールスマン問題などの問題のクラスに言及していました。
highBandWidth11年

回答:


8

私が考えることができるもののいくつか(これらのほとんどは多かれ少なかれ関与してきました):

  • 言語およびコンパイラーの開発環境。次のような質問:この文法はあいまいな言語を生成しますか?(この問題は実際には決定不能です!)
  • データ復旧。部分的に失われたデータパケットの再構築または断片化されたファイルの回復。(顔面の複雑さ)
  • ソフトウェアのセキュリティ。観察された動作の一部がソフトウェアに起因するかどうかを判断するために、ソフトウェアを介したすべての可能な実行パスの評価。(停止の問題?)
  • ロジスティクス。転送するパケット、サイズ、および送信先に基づいて、転送の使用を最適化する。(少なくとも指数関数的)

最短ルートの検索、ナーススケジューリングなど、標準的な例は多数ありますが、組み合わせ最適化に興味がある場合は、それらについてすべて知っています:)


それでは、実際にこれらの最適化問題の解決に専念している物流会社に雇用されているプログラマーがいますか、またはこれらの操作の大部分は通常一度解決され、ほとんどの企業で繰り返されますか?多数の例に対して+1。これらのいずれかに関与していますか?
highBandWidth

ツールを作成した最初の2つ、3つ目は同僚が取り組んでいるものです。私は:)彼らはいくつかの新しいアルゴリズムを通じてカップルパーセントの余分なパフォーマンスを実現する場合、それはドルのその何百万人を救うことができるので、大きな物流会社が積極的にこの分野での研究を行うことを期待
デッカード

私は巡回セールスマンの役割についてインタビューしました。大規模な親会社では、ルーティングの10分の数パーセントの改善を期待して、PhDでいっぱいの部屋がありました。それは彼らにとって数百万ドルの価値があるでしょう...毎日。したがって、それらの場所は存在します。ルーティングとスケジューリングは2つの大きなポイントです。1000人の従業員と2つまたは3つのシフトを実行する工場があるとします。今...心の中で来月の維持のためにこれらの200個のルールとeveryonesの嗜好を仕事に皆をスケジュール

9

時間制約のあるシミュレーテッドアニーリングを使用して、タッチパネルの製造における問題のような巡回セールスマンを解決しました。各パネルのレーザーエッチングのサイクルタイムから1ミリ秒ごとにシェービングできるため、スループット、使用率、したがって機械の収益性が向上するため、スクライビングパス(これはスクライビングパスではない)明らかに最適化することはできませんでした)。

最適化の計算がより最適なパスによって節約される時間よりも長くかかるリスクを払うことができなかったため、時間制限アルゴリズムを使用して問題のNPの困難を回避しました。マシンがパネルをロード位置からレーザーヘッドが最も近いコーナーにある位置に移動している間に、いくつかのシミュレーションを実行する時間がありました。アルゴリズムは、移動の数百ミリ秒以内に完了することはほとんどありませんでしたが、ほとんどの場合、以前に使用していた単純な非適応モデル(スパイラルやスネークパスなど)よりも優れたスクライブパスを返しました。


2
カッコいい。しかし、私はすべてのパネルに同じパターンがあり、すべてのウィジェットで何度も繰り返すのではなく、一度だけ問題を解決するだろうと考えました。なぜ毎回解決しなければならなかったのですか?
highBandWidth

2
理想的なパターンは各パネルで同じでしたが、パネルの機械的配置、プロセス内の前の層の位置、レーザースクライビングヘッドのタイル状の性質により、各パネルに対してサブパターンの動的セットを計算する必要がありました。個別に最適化されます。特に時間の制約を考えると、取り組むことは興味深い問題でした。
マークブース

7

複数のローカルDNA配列アライメントのバイオインフォマティクスの問題に取り組んでいます(現在、実際)。これのポイントは、いくつかの共通の特性(類似の発現プロファイルまたはChIPチップ実験での同じ転写因子結合)を持つ遺伝子からの配列の多くが、ある点で強く整列する場合、おそらくそれらの共通の理由を見つけたということですプロパティ。それから再び、私は問題の統計的側面にもっと興味があります。NPハードですが、実際にヒューリスティックを使用してもそれほど損失はありません。問題の興味深い部分であるIMHOは、信号対雑音比の問題です。


1
あなたは古典的なコンビナトリアル/ AIアプローチまたは統計的アプローチを使用していますか?ある意味では、最新のnlp、クラスタリング、機械学習のすべてはnp完全な問題を扱いますが、通常は統計的な観点から攻撃されます。それにも関わらず、興味深く、関連性があります。これは学界ですか、それとも業界ですか?
-highBandWidth

@highBandWidth:私のアプローチは統計的です。私は学界にいます。私が行っている研究の全体的なポイントは、統計的な問題を無視して、組み合わせの問題に焦点を合わせれば、悪いことは起こるということです。
-dsimcha

3

NPの完全/ハードの意味はよくわかりませんが、供給の自動計画はそのようなものだと思います。

100の製品SKUについて90日先の需要計画があります:ビール!100の製品SKUの由来は次のとおりです。

  • 10から15種類のレベル1のベースの生の醸造物があり、それらは1000リットルの大きな缶で醸造され、1日かかります。
  • 醸造後、いくつかの材料を追加する必要があり(パン種?)、10〜15日間休息する必要があります。その後、15〜20種類のレベル2のものを手に入れました。
  • 最後に、準備ができたら、いくつかの材料を追加する必要があります。それはレベル3のもので、飲用ビールと呼ばれ、ccがあります。30種類のビール。
  • ビールは3 dl、5 dlとして瓶詰めすることができ、時には特別なネックレス(レベル4)が付けられ、5x4ボックス、6パック(レベル5)として詰めることができます。

醸造から包装まで、各操作には機械の「ライン」があります。マシンはより多くの操作を実行できます。たとえば、6パックと3パックを作成できる梱包機もありますが、6パックしか実行できないものもあります。速度などの制約があります。または、大きな抽出用ケトルは最小抽出用です。6000、最大、8000リットルのビール(ただし、ビールの種類が軽い場合、最小は5000リットル、最大は7000リットル)。など、すべてのレベルで。

タスク:前述したように、100種類のレベル5(ボトル入り、パッケージ化されたもの)の需要計画があります。確認し、最適なすべての5つのレベル、すべてのマシンのためのmanufactoring計画を。マシンのスイッチを最小限に抑えます(例えば、.5、.5、.5、.3、.3、.3の瓶詰めは.3、.5、.3、.5、.3、.5よりも優れています。瓶詰め機のデッドタイムの​​短縮)。顧客による優先順位付け:一部の顧客は、有効期限の50%以上が残っている状態でのみビールを出荷する必要があります。等など

ボトルネックを発見し(eh)、これらのポイントに存在しないマシンを追加して代替プランを作成し、最適な仮想シナリオを使用して新しいマシンの購入を提案できます。

それは十分に難しいですか、または繊維工場がどのように機能するかをyaに伝える必要がありますか?

(個人的な発言:ウェブ、銀行、ロジスティクスは困難な分野ですが、それらは製造の問題と比較して赤ちゃんのおもちゃです。)

免責事項:セキュリティ上の理由から数値は歪んでおり、大きさは実数です。


あなたは雇用主のために、このような何かに取り組んでいますか、それともこのような問題を解決するツールに取り組んでいますか?
-highBandWidth

1
まあ、製造業は大規模な物流です。その点で金融よりも間違いなく難しい。しかし、少なくとも、ランダム方程式や大まかに定義された操作順序ではなく、定義された問題を扱います!
マイケルK

1
最適なリソースを備えたあらゆる種類のスケジューリングアルゴリズムは、おそらくNP完全なナップザック問題と同等です。
スコットホイットロック

私の友人は、数年前にExcel + VBでDP / SPシステムを作成しました。自動計画は含まれていません。アプリはExcelには太すぎます。そのため、MySQL / PHP / AJAXベースのコラボレーション拡張機能(データフロー-別名フローベースプログラミング-アプローチを参照)スプレッドシートフレームワーク(私)を作成し、XLSバージョン(友人)からbizロジックを採用しました。 。自動計画も実装しました(友人)。スプレッドシートを書くのはおかしいアイデアでしたが、うまくいきます。最良の部分:XLS-> SQLスイッチはいくぶん素晴らしいです!任意のツール/プラットフォーム(PHP、Java、私たちが望むもの)を使用して、データ(オートプランなど)で何でもできます。
ern0

@ ern0、NP-complete / NP-hardは基本的に、すべての可能性を1つずつ試す代わりに取ることができると想定できるショートカットの数を指します。理論家は、例えば、我々が知っている場合、パスはABCが常に直接ACよりも長くなることを、我々はより速くそれを作るとことができると言うのショートカットを考え出す多くの努力を過ごすことを証明最適値の50%以内にします。など
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.