首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

欢迎一起讨论精确覆盖有关问题

2012-03-16 
欢迎一起讨论精确覆盖问题农历年前因为一个大组合问题接触到舞蹈链——Dancing Links,找了几段代码。趁新年假

欢迎一起讨论精确覆盖问题
农历年前因为一个大组合问题接触到舞蹈链——Dancing Links,找了几段代码。趁新年假期挂机,不太满意地解决了问题,
从中我发现DLX依然存在一定缺陷。趁现在有空,想和大家探讨一下。

DLX论文实质分两部分,前部将一大类问题归结成:01矩阵,求行的集合解的问题。

后部阐述使用指针类对精确覆盖01矩阵求解。

我发现DLX,是将求解状态以十字链表形式保留,减少了出入栈的花费,但本质上依然是NP的,而且可能出现重复求解。
选择最短的列来寻找适合的行,在递归前几层会迅速消耗“密切相关”的行与列,造成强烈剪枝的假象;但“关系疏远”的就没有改善。以我处理的例子,各层循环数大概为 19、15、10、6、2、1(貌似很好)、20、17、11、8、3、1(又来?)、、20、17、11、8、3、1(还来!)……19、15、10、6、2、1…… 你慢慢玩,偶回家吃年饭了。
估计DLX近似O(a^n)。

我不是正规计算机专业的,同时Donald E. Knuth的DLX论文至今也有10年。如果我的论述有什么问题或者别人已经研究过,欢迎指正。
感谢高德纳,感谢吴豪、隋清宇。感谢csdn


[解决办法]
DLX里面包含了启发性的剪枝的了,不是单纯的爆力的递归...
[解决办法]
学习学习
[解决办法]

给lz一个建议,要是你感觉某种方法好,你自己就实践一下,然后再对比结果。DLX是精确匹配的经典方法,当然对于有特殊条件的问题,肯定可以进行优化、改进。
[解决办法]
没研究过,帮顶

热点排行