如何使用图论解决法国国家档案馆的编排问题?


9

晚上好!我实际上是在法国国家档案馆实习,遇到一种想用图形解决的情况...

一,尘土飞扬的情况

我们希望根据图书的高度优化图书馆图书的排列方式,以最大程度地减少归档成本。书的高度和厚度是已知的。我们已经按照高度升序排列了这些书(我不知道这是不是最好的东西,但是...就是这样做的方法)。了解了每本书的厚度后,我们可以为每个类确定其排列所需的厚度,将其称为(例如,高的书的总厚度)。H i L i H i = 23H1,H2,,HnHiLiL i = 300Hi=23cmLi=300cm

图书馆可以定制制造货架,指示所需的长度和高度(深度没有问题)。高度和长度货架的成本为 ,其中是固定成本,是每长度单位的货架成本。x i F i + C i x i F i C iHixiFi+CixiFiCi

需要注意的是高度的货架可以用来存储高度的书籍 与。我们希望将成本降到最低。^ h Ĵ Ĵ HiHjji

我的老师建议我将此问题建模为寻路问题。该模型可能涉及索引为到个顶点。我的导师建议我计算现有条件,每个边的含义以及如何计算与边相关的评估。其他解决方案和见解也可以。0 n v i j i j n+10nv(i,j)(i,j)

例如,对于《公约》(法国历史的黑暗时期),我们有这样一个数组:

i1234Hi12cm15cm18cm23cmLi100cm300cm200cm300cmFi1000120011001600Ci5/cm6/cm7/cm9/cm

二。见习书虫的假设

我想我必须在Djikstra,Bellman或Bellman-Kalaba之间计算一种算法...我试图在以下小节中找出哪一个。

1.条件

我们在这里遇到在顶点和顶点之间进行寻路的问题,必须从出站(也就是说,路径(或步行)必须存在于和之间n n 0 0 n0nn00n

2.计算内容(更新(25/10/2015))

// 就我所不知道要建模的顶点和要建模的边而言,仍在处理中...

我最好的猜测

我认为每当我们从数组中找到最短路径时,就至少要摆脱一种货架类型,但这只是我的假设...;)。

我认为,模拟如何购买书架和存储我们的书的最佳方法必须类似于下图,(但是请随意批评我的方法!;))

从0图

顶点:

  • 是架子,我们可以用它来存储我们的书。i[1,4]
  • 是未存储任何书本的状态。使用这个顶点可以让我使用每个成本公式(边)。0

边:是使用A型货架的成本。例如: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是存储所有书籍的状态。使用这个顶点可以让我使用每个成本公式(边)。

边:是使用一种类型的成本。例如:从3开始的是使用架子存储我们的羊皮纸,手稿后使用架子的成本。˚F 1个 + c ^ 1 X 1ý p ë 1 ý p ë 3Fi+Cixi,i[1,4]F1+C1x1type 1type 3

但是,我不知道将放在。F4+C4x4

3,如何计算

我认为我们必须从较高的书架开始,然后才能存储较小的书...

我们将高度为 cm加上高度为 cm的直到比使用变得昂贵为止搁置。那么H i = n z H i = n 1 H i = n 1 i = i 1LnHi=nzHi=n1Hi=n1i=i1

当i> <0时

最后,我不知道如何使x变化...

也就是说,例如,如何选择将文档放入或。 4 3xi43


有几本书?即 算法是唯一可以接受的算法吗?O(n),O(nlogn)
jjohn

5
我不知道这与图形有什么关系:当眼前的问题是垃圾箱装填时,为什么要强迫自己做基于图形的事情?您的模型没有考虑到搁架的实用性。例如,一个搁架单元有一定长度的架子:您可以将五个米长的架子相互堆叠,但是一个99厘米的架子,一个172厘米的架子,一个128厘米的架子,一个83厘米的架子和一个18厘米的架子(总长度) 5m)完全没用。而且,为什么在地球上建造一米长23厘米的搁板需要花费2500欧元?这似乎并不现实。这个图书馆是真的吗?
David Richerby

3
1.我不明白您为什么强迫自己将此作为寻路问题。如果您在实践中遇到这种情况,那么施加这种不必要的限制是没有意义的-为什么您会拒绝使用其他方法解决问题的其他解决方案?我建议您编辑问题以删除该要求。2.您仍然没有告诉我们有多少本书。你能给我们个电话吗?即使只是数量级的估计,还有比“笨拙”更具体的东西吗?
DW

1
看来您在问题上花了很多心思。那很好!但是,将一个问题的完整历史记录存储在一个问题中会使它变得很笨拙。如果您发布一个集中的问题,并且背景足够使问题可以回答,那么SE的效果会更好。
拉斐尔

1
关于“我需要将其表示为图形问题” –这是一个愚蠢的要求。如果问题出在P中,则将其写为LP并计算一个等效的最大流实例。瞧 如果它在NP中,但您不知道它在P中,则将其写为IP并转换为任何NP完全图问题。瞧
拉斐尔

Answers:


5

我看到您是在问:“我想用Dijkstra的算法来解决这个问题,但我无法建立一个好的图形来运行,”因此,我将向您展示这样一个图形。

有向图,其中顶点是一组搁置的书。

好吧,我们有高度的书1 ñ ñ和宽度w ^ ñ在每本书按升序排列的高度,我们希望它们分成货架上。Hn, 1nNWn,

重用这些号码的解决方案节点其中节点代表解状态“的所有书籍ñ已被搁置。” 因此,我们将从节点0开始,并使用Dijkstra的算法尝试通过最短路径到达节点N。这些节点是我们图的顶点。n,in0N

然后,我们从节点到任何节点j > i绘制有向边,该边假定所有这些中间书都被一个书架搁置,即该边的长度为L i j = F j + C j j n = + 1 w ^ ñ在那里我假设当你说和的成本˚F + c ^ X 的下标X 是完全没有意义的。ij>i

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

Dijkstra的算法将为我们提供到节点N的最短路径N.


@Christ Drost,thaaaaaaaaanks,很多!花了一些时间来了解您试图创建的没有任何图形的内容,但这正是我想要的!我读了您的精彩个人资料,它与您的答案很吻合哈哈;)!
Monica的Revolucion,2015年

我想知道Bellman-Kalaba是否比Djikstra更合适,唯一的需求就是不要玩任何玩法(而且我们也不要这样做)
Monica的革命

而且这是一个确定地设置边缘长度的算法。“节点n表示一个解决方案,说明“所有i≤n的书都已被搁置。””我们也不能回退您提供的内容。
Monica的Revolucion,2015年

我不确定“后退”是什么意思,但是如果您想“后退”,则可能必须考虑一个更复杂的图形,其中一个节点是“被该书架搁置的书数”的列表。Int大于1。这导致了n^2顶点图。当您正在寻找A和B之间的路径并且所有边缘权重均为正值时,Dijkstra和Bellman-Kalaba之间就没有区别,除了Bellman-Kalaba总是尝试更新不需要更新的边缘。Dijkstra仅存储指向它关心的顶点的指针。
CR Drost 2015年

7

我想我有解决您问题的方法。希望我对您的问题的定义没有误解。它去了:

O(n2)

n

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

让我们证明以下两件事:

Ca>Ca1

Ba1a1cost=other,stuff+Ca1thickness(Ba1)

Ca<Ca1a1aha1<ha

cost=other,stuff+Cathickness(Ba)

Ca>Ca1

jaheight(j)>ha1

height(j)ha1a1

在我们证明的两件事中,B是重要的。

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

(a,b)

最后但并非最不重要的一点,就像我在上面说的那样,由于书本很大,因此不能为每本书使用算法。我认为用厚度的总和来表示其高度应该可以解决问题。(我认为您的陈述已经是这样)

(我猜不同高度的数量远少于书籍数量)



感谢您的大力帮助!首先,我对A部分有一个问题:为什么由于最优性问题而导致矛盾?我从逻辑上理解,将较低高度的书存放在较高的架子上时,较低的成本是矛盾的,但是我认为该最优是什么呢?(那也许是因为我下个学期只做动态编程...?)
Monica的Revolucion,2015年

Ca<Ca1

aCa>Ca+1aa+1aFa
jjohn15年

0

有时,只是“放大”文献中的“最近问题”可以帮助理解问题背后的理论和背景,建立抽象概念并消除虚假的细节。与您的文献中最接近的问题似乎是所谓的“可变尺寸垃圾箱包装问题”。示例文件包括在下面。从理论上高度研究了这个问题,并且存在一些现成的软件,该问题在优化卡车运输集装箱等包装箱中表现出来。也有一些版本可以调整容器大小。有许多算法方法。例如,从1 纸:

本文解决的问题是将一组给定的矩形项目正交包装到最少数量的三维矩形箱中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.