能否舞蹈鏈實現Knuth的算法X的被用來解決this CSP?在這個遊戲中,第一個和最後一個數字總是在董事會中,我相信每個制定好的問題只有一個解決方案。可以將跳舞鏈接應用於此CSP嗎?
2
A
回答
0
號
約束求解器肯定可以解決這樣的問題,但似乎不太可能做到這一點的最快方式。不好意思的是,似乎很難告訴求解者「路徑不能交叉」,這是一個有用的提示。
3
是。
假設我們要解決這個嗨達圖:
+---+ +---+
| | | 6 |
+---+---+---+
| | |
+---+---+
| 1 | |
+---+---+
首先,讓我們命名空單元格用字母A,B,C,d:
+---+ +---+
| d | | 6 |
+---+---+---+
| b | c |
+---+---+
| 1 | a |
+---+---+
我們需要表達3種對於每個解決方案行的約束條件爲X Algorithm:
- 使用了一個數字(以便相同的數字不會使用兩次)
- 使用了一個單元格(以便同一個單元格不被使用兩次)
- 下一個單元格受到約束(以便下一個單元格只能在相鄰的單元格中進行選擇)。這最後一個約束不需要精確覆蓋,所以它只能用作輔助列的DLX術語。
所得問題矩陣則是:
1 2 3 4 5 6 a b c d 2a 2b 2c 2d 3a 3b 3c 3d 4a 4b 4c 4d 5a 5b 5c 5d
1 1
1 1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1 1
1 1 1
1 1 1
1 1 1 1
1 1 1
其中,例如,第二行(不計的標題線)可以理解爲:此行設置數(第一1 )在單元a(第二個1)中。它也受到光限制的約束。並且它還限制3不在3a和3d,因爲它們不與單元a相鄰。
所有行讀這種方式,除了:
- 第一行僅指出在數約束。
- 行(最後4個),這也嵌入了與相鄰的限制。
的實現就留給讀者做練習...
相關問題
- 1. 跳舞鏈接的複雜性
- 2. 我可以將CSS僞類應用於一個鏈接而不是全部嗎?
- 3. 我可以將@EntityGraph應用於@Query嗎?
- 4. 我可以使用CSP將請求限制爲https:AND'self'嗎?
- 5. 我可以將NSMutableString鏈接到UITextField嗎?
- 6. 我可以先用EF代碼關閉此鏈接行爲嗎?
- 7. 可以將擴展方法應用於接口嗎?
- 8. 可以將SuppressUnmanagedCodeSecurityAttribute應用於COM Interop接口嗎?
- 9. ondblclick後可以禁用鏈接嗎?
- 10. 我可以用鏈接運行我的應用程序嗎?
- 11. 我可以將兩個MVC3應用程序彼此相鄰嗎?
- 12. 可以將替代圖標應用於iOS應用程序嗎?
- 13. 我可以將心跳傳感器連接到XBee嗎?
- 14. JavaFX我可以重繪舞臺嗎?
- 15. Donald Knuth跳舞鏈接特殊指針實現
- 16. Knuth的跳舞鏈接算法的數據結構
- 17. GC應用程序可以鏈接到ARC框架嗎?
- 18. 你可以從C應用程序鏈接一個C++庫嗎?
- 19. 可以通過SMS中的鏈接安裝應用程序嗎?
- 20. 是否有可能將此外部應用於左連接?
- 21. 我應該使用ARIA角色和跳過導航鏈接嗎?
- 22. 我可以使用actionResulting將問卷鏈接到CarePlan活動嗎?
- 23. 我可以將其轉換爲僅使用地址鏈接嗎?
- 24. 我可以將未解析的引用鏈接到中止嗎?
- 25. 鏈接置於彼此
- 26. 我可以將谷歌助理sdk與google家庭應用程序鏈接嗎?
- 27. 將樣式應用於超鏈接
- 28. 我可以將此模式用於where子句的可選部分嗎?
- 29. const可以應用於類型嗎?
- 30. 可以在git中鏈接目錄嗎?
我看不出嗨達圖如何轉化成精確覆蓋問題。 – Svante 2009-11-29 10:08:40
謝謝斯萬特。但是,您認爲其他CSP算法可能是解決此問題的最佳解決方案嗎?你能給我一些線索嗎? – 2009-11-29 15:15:25