グラフ理論を使用してフランス国立公文書館の配置問題を解決する方法は?


9

こんばんは!フランスの国立公文書館で実際にインターンシップをしているときに、グラフを使って解決したい状況に遭遇しました...

I.ほこりっぽい状況

アーカイブコストを最小限に抑えるために、図書館の本の高さに従って配置を最適化したいと考えています。本の高さと厚さはわかっています。書籍は、高さ昇順で既に配置されています(これが最善の方法であるかどうかはわかりませんが、それが私たちのやり方です)。各本の厚さがわかっているので、各H iクラスについて、それらの配置に必要な厚さを決定し、L iと呼びます(たとえば、H i = 23の本H1,H2,,HnHiLi高さ c mの合計厚さは L i = 300Hi=23cm)。Li=300cm

ライブラリは、希望の長さと高さを示す棚をカスタム製造できます(奥行きの問題はありません)。高さと長さx iの棚のコストは F i + C i x iです。ここで、F iは固定コストで、C iは長さ単位あたりの棚のコストです。HixiFi+CixiFiCi

なお、高さの棚高さは帳簿保存するために使用することができ、H 、JJ Iを。コストを最小限に抑えたい。HiHjji

私の家庭教師は、この問題を経路探索問題としてモデル化することを提案しました。モデルには、0からnまでのインデックスが付けられた個の頂点が含まれる場合があります。私のメンターは、私は評価動作するように既存の条件、各エッジの意義と方法をうまく示唆したV I J のエッジに関連したI Jを。他の解決策や洞察も大丈夫です。n+10nv(i,j)(i,j)

たとえば、私たちは条約(フランスの歴史の暗黒期)に次のような配列を持っています。

i1234Hi12cm15cm18cm23cmLi100cm300cm200cm300cmFi1000120011001600Ci5/cm6/cm7/cm9/cm

II。研修生の本の虫の仮定

私は、Djikstra、Bellman、またはBellman-Kalabaの間でアルゴリズムを計算する必要があると思います...次のサブセクションでどれを見つけるかを試みています。

1.条件

私たちは、頂点間の経路探索の問題にここにいると頂点nはn個からの発信である必要があります0)パス(または徒歩、と言うことである(必須では間に存在する0n個0nn00n

2.計算対象(更新(2015年10月25日))

// モデル化する頂点とエッジがわからない限り、処理中です。

私の最高の推測

配列から最短のパスが見つかるたびに、少なくとも1種類のシェルフを取り除くと思いますが、それは私の仮定にすぎません...;)。

棚を購入して本を保管する方法をモデル化する最良の方法は、次のグラフのように見える必要があると思います(ただし、私の方法を非難してください!))

0グラフから

頂点:

  • 私たちは私たちの本を保管するために使用できる棚です。i[1,4]
  • は本が収納されていない状態です。この頂点を使用すると、各コスト式(エッジ)を使用できます。0

エッジ:棚のタイプを使用してコストです。たとえば、F 1 + C 1 x 1 fom 0は、羊皮紙、原稿を保管するためにタイプ1の棚のみを使用する場合のコストです...Fi+Cixi,i[1,4]F1+C1x1

しかし、ここからは、最短経路の問題を作成する方法がわかりません。

確かに、自分のすべての本をどこに収納したかわかりません。

これは私に別のアイデアを導きます...

別のアイデア...

0グラフへ

ここでは、指定された頂点から0状態への最短経路を検索しています。つまり、最も高いドキュメントが tallであることを知って、ドキュメントを配置するための最も安価な方法を探しています。type i

頂点:

  • 私たちは私たちの本を保管するために使用できる棚です。i[1,4]
  • はすべての本が保管されている状態です。この頂点を使用すると、各コスト式(エッジ)を使用できます。0

Fi+Cixi,i[1,4]F1+C1x1type 1type 3

F4+C4x4

3.計算方法

小さい本を保管できる限り、高い棚から始めなければならないと思います...

行う

LnHi=nzHi=n1Hi=n1i=i1

i> <0の間

最後に、xを変化させる方法がわかりません...

xi43


O(n),O(nlogn)

5
これがグラフとどう関係しているのかわかりません。問題がビンパッキングのようなものであるのに、なぜグラフベースで何かを強制するのでしょうか。あなたのモデルは棚の実用性を考慮に入れていません。たとえば、シェルフユニットには一定の長さの棚があります。長さ5メートルの棚を積み重ねることができますが、99cmの棚、172cmの棚、128cmの棚、83cmの棚、18cmの棚(合計の長さ) 5m)は完全に役に立たない。そして、なぜ地上で23メートルの高さの棚を1メートル建てるのに2500ユーロかかるのですか それは遠く現実的ではないようです。このライブラリは本物ですか?
David Richerby、

3
1.パスファインディングの問題としてなぜこれに取り組むよう強制するのか理解できません。実際にこの状況に直面している場合、このような不必要な制限を課しても意味がありません。なぜ、別のアプローチを使用して問題を解決する他のソリューションを拒否するのですか?質問を編集して、その要件を削除することをお勧めします。2.まだ何冊の本があるか教えてくれません。番号を教えていただけますか?それは大きさの見積もりだけであるとしても、「不気味な」よりも具体的な何か?
DW

1
あなたはあなたの問題にかなりの考えを費やしたようです。それは良い!ただし、1つの質問に考えの完全な履歴を保存すると、かなり扱いにくくなります。SEは、1つの焦点を絞った質問を投稿し、その質問に答えられるようにするだけの十分な背景があれば、はるかにうまく機能します。
ラファエル

1
「グラフの問題としてそれを表現する必要がある」について-それは...ばかげた要件です。問題がPにある場合は、LPとして記述し、同等のmax-flowインスタンスを計算します。出来上がり。それがNPにあるが、それがPであることがわからない場合は、IPとして記述し、NP完全グラフの問題に変換します。出来上がり。
ラファエル

回答:


5

「ダイクストラのアルゴリズムでこれを解決したいのですが、実行するのに適したグラフを設定できません」と尋ねているので、そのようなグラフを紹介します。

頂点が書棚のセットであるダイグラフ。

Hn, 1nNWn,

n,in0N

ij>i

Lij=Fj+Cj n=i+1jWn,
Fi+Cixiixi

N.


@Christ Drost、thaaaaaaaaanks、たくさん!グラフなしで何を作成しようとしているか理解するのに時間がかかりましたが、まさにそれが私が探していたものです!私はあなたの素晴らしいプロフィールを読みました、それはあなたの答えにぴったりです;)!
モニカの革命

Bellman-KalabaがDjikstraよりも適切ではなかったのかと思っていましたが、唯一必要なのはシクリットを持たないことです(私たちもそうではありません)
モニカの革命

また、エッジの長さを明確に設定するのはアルゴリズムです。「ノードnは、「すべての書籍i≤nが棚上げされました。」を表すソリューションを表します。
モニカの革命

「後退」の意味はわかりませんが、「後退」したい場合は、ノードが「この棚に保管されている本の数」のリストであるより洗練されたグラフを検討する必要があります。Intより大きい1。これにより、n^2頂点のグラフが表示されます。AとBの間のパスを探し、すべてのエッジの重みが正である場合、DijkstraとBellman-Kalabaの間に違いはありませんが、Bellman-Kalabaは常に更新の必要がないエッジを更新しようとします。ダイクストラは、関心のある頂点へのポインターを格納するだけです。
CR Drost 2015年

7

私はあなたの問題の解決策を持っていると思います。うまくいけば、私はあなたの問題の定義で何かを誤解していないでしょう。ここに行く:

O(n2)

n

ih1,h2,...,hih1<h2<...<hi

次の2つを証明しましょう。

Ca>Ca1

Ba1a1cost=other,stuff+Ca1thickness(Ba1)

Ca<Ca1a1aha1<ha

cost=other,stuff+Cathickness(Ba)

Ca>Ca1

jaheight(j)>ha1

height(j)ha1a1

私たちが証明した2つのことの中で、Bは重要なものです。

dp[a]1...aheight(a)dp[a]dp[1],dp[2],....dp[a1]

(a,b)

最後に重要なことですが、上で述べたように、本は大きいので、すべての本に対してアルゴリズムを使用することはできません。高さを厚さの合計で表すとうまくいくと思います。(私はそれはあなたの発言からすでにそのようなものだと思います)

(私は異なる高さの数は本の数よりはるかに少ないと思います)



この確かな助けに感謝します!最初に、Aの部分について質問がありました。なぜ、最適性の問題のために矛盾があるのですか?高さの低い本を高い棚に保管する場合のコストの低下は矛盾していると論理的には理解していますが、私はどのような最適性を想定していますか?(多分、私は次の学期のみ動的プログラミングをしているからでしょうか...?)
モニカへの革命

Ca<Ca1

aCa>Ca+1aa+1aFa
jjohn

0

場合によっては、文献の「最も近い問題」を「ズームイン」するだけで、問題の背後にある理論と背景を理解し、抽象化を構築し、偽の詳細を取り除くことができます。文学であなたに最も近い問題は、「可変サイズのビンのパッキング問題」として知られているもののようです。サンプルペーパーは以下に含まれています。この問題は高度に理論的に研究されており、市販のソフトウェアがいくつか存在します。たとえば、トラックの輸送用コンテナの梱包箱を最適化するときに現れます。コンテナのサイズを調整できるバージョンもあります。多くのアルゴリズム的アプローチがあります。たとえば、最初の論文から:

このホワイトペーパーで取り上げる問題は、所定の長方形のアイテムのセットを最小数の3次元の長方形のビンに直交パックすることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.