Q
回覆算法爲集覆蓋
1
A
回答
2
這個paper使用線性規劃鬆弛來解決覆蓋問題。
基本上,LP弛豫產生良好的界限,並且可以用於識別在許多情況下最佳的解決方案。順便說一下,當我上次查看開源的LP求解器(〜2003)時,我並沒有留下深刻的印象(有些人給出了不正確的結果),但現在似乎還有一些體面的開源LP求解器。
1
你的問題需要更多的澄清 - 看起來你給了一組子集$$ S_1,\ ldots,S_n $$的集合A,這樣子集的聯合等於A,並且你想要結合仍爲A的最小數目的子集。
基本方法是用一些啓發式方法進行分支和約束。例如,如果A的特定元素僅在一個子集$$ S_i $$中,那麼你必須選擇$$ S_i $$。同樣,如果$$ S_k $$是$$ S_j $$的子集,那麼沒有理由考慮$$ S_k $$;如果元素$$ a_i $$位於$$ a_j $$所在的每個子集中,那麼您就不會考慮$$ a_i $$。
對於分支和邊界,您需要良好的邊界啓發式。下限可以來自獨立集合(如果在A中有k個元素$$ i_1,\ ldots,i_L $$,則每個如果$$ i_p $$包含在$$ A_p $$中並且$$ i_q $$被包含在$$ A_q $$中,則$$ A_p $$和$$ A_q $$是不相交的)。更好的下界來自上述的LP弛豫。
來自伯克利的Espresso邏輯最小化系統具有覆蓋發動機的高質量套件。
相關問題
- 1. Double.GetHashCode算法或覆蓋
- 2. 覆蓋覆蓋?
- 3. C++覆蓋...覆蓋?
- 4. 覆蓋或覆蓋
- 5. 覆蓋方法
- 6. 覆蓋方法
- 7. 覆蓋'+'方法
- 8. 覆蓋方法
- 9. 覆蓋方法
- 10. 頂點覆蓋的近似算法
- 11. 其中轉移覆蓋算法使用
- 12. 電網與障礙覆蓋算法
- 13. 最大加權片段覆蓋算法
- 14. 全局覆蓋==運算符
- 15. 覆蓋運算符c#
- 16. Python覆蓋+運算符
- 17. 用qtscript覆蓋運算符
- 18. 覆蓋方法`GetSizeForItem`返回「找不到合適的方法覆蓋」
- 19. 集成Bullseye覆蓋與Xcode
- 20. cancan和inherited_resources覆蓋集合
- 21. forea覆蓋IEnumerable的集合
- 22. 覆蓋數據集函數
- 23. Android方法覆蓋
- 24. 無法覆蓋CSS
- 25. Java。覆蓋方法
- 26. C++覆蓋方法
- 27. 無法覆蓋sys.excepthook
- 28. 無法覆蓋net.Socket.write
- 29. eclipse覆蓋方法
- 30. C++方法覆蓋
如果你想讓這看起來更像一個「爲我做作業」的帖子,你可能想提供一些信息,你已經做了什麼,你卡在哪裏,等等等等。 – phill 2010-10-29 21:10:15