最大スタッキング高さの問題


8

次の問題は以前に調査されましたか?はいの場合、それを解決するためにどのようなアプローチ/アルゴリズムが開発されましたか?

問題(「最大スタッキング高さの問題」)

与えられたのポリゴン、その安定した、非オーバーラップ配置見つける彼らの積載高さを最大限に重力の影響の下で固定床の上を。


3つのポリゴン:

ここに画像の説明を入力してください

積み重ねの高さが異なる、非常に多くの安定した重なり合わない配置の3つ:

ここに画像の説明を入力してください


明確化

  • すべてのポリゴンは均一な質量と等しい密度を持っています
  • 摩擦はゼロです
  • 重力が下向き方向のすべての点に作用しています(つまり、力のベクトルはすべて平行です)
  • 構成が不安定な平衡点にある場合、構成は安定しているとは見なされません(たとえば、図の緑色の三角形は、バランスポイントの左側と右側の質量が等しい場合でも、どの頂点でも平衡化できません)。
  • さらに上記の点を明らかにする:ポリゴンが(「転倒」)が不安定であると考えられる場合を除き、それは少なくとも一点にかかっている厳密に左 少なくとも一点右に厳密に(この定義は大幅シミュレーションを簡略化しその重心のと特に、配置が安定しているかどうかを評価するために位置統合などが不要になります。
  • 「物理的」な形の問題は、ほとんどの場合にのみ解決できる継続的な問題です。アルゴリズムで取り組むことができる離散問題を取得するには、ポリゴン頂点と配置でのそれらの配置の両方を適切なラティスに制約します。


ノート

  • あらゆる種類の総当たり攻撃は明らかに実行不可能です。ラティス内のポリゴンの配置に厳格な制約があっても(限られた領域の「格子空間」を提供するなど)、複雑さはいくつかのポリゴンを超えると単純に爆発します。
  • 単一のポリゴンを削除すると構成が不安定になり、そのような配置は、すべての中間ステップが安定していることに依存しているアルゴリズムでは到達できないため、配置を構築するのは簡単です。
  • 問題は少なくともNPのにおいがするので、頂点の総数がEXPTIMEで完了する可能性が高いため、ヒューリスティックスでもかなりの関心があります。希望を与えることの1つは、ほとんどの人間が例の3番目の配置が最適であることを認識するという事実です。

「不安定」の定義については(より正確なものではないかもしれませんが)、原則として、実際の閉じたフィールドの量指定子除去によって問題を正確に解決できます

@RickyDemer:私は本当にそれを理解したいのですが、悲しいかな、私は紙の上を一目見て主要なポイントをたどりましたが、私は関係を見ることができません。もう少しアドバイスをください。スタッキング問題と代数の間のリンクは確かに興味深く聞こえます。

1
それは、量指定子除去アルゴリズムではなく、決定手順に誤ってリンクしたためかもしれません。 このホワイトペーパーは、私が話していた内容をより適切に参照します。また、頂点座標がすべて有理である場合に十分である可能性があるいくつかの2次のケースに関する論文も見つけまし

:)私はまた、計算幾何学と量指定子の除去を明示的にリンクするいくつかのより多くの資料を見つけました。これで、「より正確なものにはならないかもしれませんが」という意味を理解できました。実際、そのような純粋に形式的な方法を、微分方程式などの複雑な制約が作用する「実際の」物理学に拡張することは不可能のようです。それでも、非常に興味深い迎え角をありがとう、私はそれを研究するのに少し時間を費やします。

回答:


1

私はこの問題の特定のアルゴリズムを知りませんが、別の部分に分解することにより、かなり効率的な方法でこれに取り組むことができます。

まず、有効なバランスの方向を維持しながら最大の高さを提供する個々の形状の回転を見つけることから始めます(これは、三角形のような点ではありません)。形状に同じ高さが複数ある場合、その上に最大の表面積を与える構成を使用します。これができたら、バランスをとることができる邸宅で各オブジェクトを最適にスタックする方法を見つけることができます。


4
このアプローチが次善のソリューションにつながる例を構築するのは非常に簡単です。たとえば、非常に長い長方形(長辺にある場合にのみ安定するようにするため)を剪断し、その剪断角に一致する三角形を平行四辺形にした場合を考えます。個々に、あなたのアプローチでは、平行四辺形を長辺に置くように強制する必要がありますが、三角形はそれをサポートして「立ち上がる」ことができます(ゼロ摩擦の問題は、三角形を「フックイン」できるようにする平行四辺形の小さな隅。

それは本当です、私はそれについて考えていませんでした。その解決策の1つは、オブジェクトのサポートとして使用できる形状をチェックすることですが、常に最適な高さを提供できるとは限りません。それでもまだ試してみて、最高の高さについて複数の合計構成をチェックすることができます。
GEMISIS 2014

それはない、すなわち、重大な問題にここでは、一つの実行、1つの別のをサポートするオブジェクトが、立って、非常に大きなオブジェクトをサポートするために、ちょうどいい高さを持つオブジェクトのスタック。任意に複雑になるすべてをチェックするアルゴリズム。そうは言っても、私は、いくつかの賢明な削除を行うことで、「ブルートフォースよりも優れた」ランタイムを取得できるはずであることに同意します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.