圖着色的實際應用是什麼?換句話說,爲什麼我們需要使用這種算法來優化顏色的數量(問題的一些重要特徵)。什麼是圖着色需要?
回答
看起來你對graph coloring有些誤解,可能還有什麼是graph。
實際顏色與此沒有任何關係,圖着色用於解決您在資源有限或其他限制條件下出現的問題。顏色只是您試圖優化的任何資源的抽象,圖形是您問題的抽象。
Web上有大量關於圖論的資源,簡而言之 - 圖是一組元素(稱爲頂點)的抽象表示,其中一些共享連接(稱爲邊)。這當然是最基本的概念,除此之外還可以添加許多其他屬性,例如有向邊,權重等等,但現在這個概念應該足夠了。
圖形經常被用來模擬各種現實世界的問題(有時候還會造成問題,因爲數學家和計算機科學家仍然需要不斷髮表論文),現在我們有很多算法可以有效地處理它們(就複雜性而言),尋找各種可能有趣的歸因方法來解決上述問題。另外,我們有時可以證明一個問題不能用任何有效的算法來解決。圖表着色是其中的一種(或者更確切地說,問題:can a graph be colored in up to k colors
,或者問題what is the minimal number of colors needed to color the graph
),除非我們正在處理某些圖形的子類型,例如平面圖形(鄰居國家的地圖就是一個很好的例子,因爲它是用於一些有趣的圖形着色證明)。此處的着色意味着在每個頂點附加一個「顏色」或數字,使得沒有連接邊的兩個頂點具有保存值。
其中圖着色可被應用於一個現實生活問題的一個例子:你設計一個編譯器,在給定的程序,你觀察N個變量,並希望,因爲其中許多分配到寄存器儘可能(其餘將不得不泄漏到記憶中,這是較慢和最好的避免)。但是,您的CPU總共只有16個邏輯寄存器。然而,光明的一面 - 你知道哪些變量在相同的上下文和時間中使用,哪些不是。顯然,那些不在一起的人可以使用相同的寄存器。那麼,你可以將所有變量分配到現有的寄存器組中嗎?
要解決這個問題,可以使用變量作爲頂點,以及邊在相同時間範圍內連接每個兩個變量的位置來構建一個圖。用最少數量的「顏色」對圖進行着色會告訴你總共需要多少個寄存器,因爲每種顏色都可以分配給一個寄存器,並且由於着色前提 - 同時存在的2個變量不能同時使用相同的「顏色「(註冊),因爲它們將通過邊緣連接並且不能以相同的方式着色。
A Sudoku solver是圖着色派上用場的典型例子。
請注意,這裏的顏色數量受遊戲規則的限制。圖表着色算法中的「顏色」通常是比喻性的而不是文字。數獨比數字1-9更經常地使用顏色,但是這不會停止圖形着色的相關性。
有很多實用的應用程序依賴於圖着色。例如,頻率分配到蜂窩天線是一個着名的問題。在這個問題中,只能使用少量的頻率(顏色),並將它們分配給天線,以便客戶端始終連接到其中一個天線。當幾個天線的覆蓋區域重疊時會出現問題,在這種情況下,我們希望至少有一個具有獨特頻率(顏色)的天線。在此問題中,不能使用簡單的正確(非單調)着色。
在上面的情況下,我們處理超圖的着色。我們根據着色問題定義超圖。並有顏色的不同變種,如無衝突着色,獨特 - 最大着色。許多研究已經在靜態情況下進行,超圖不隨時間變化。並且在在線設置的情況下有許多有趣的研究正在進行,其中超邊可能隨時間改變(例如,某些天線停止工作,或者新天線固定在某個位置)。
你也可以參考1調查文件閱讀更多關於有趣的着色問題及其應用。
- 1. 什麼是openGL中的着色器,我們需要什麼?
- 2. 什麼是頂點着色?
- 3. 什麼字着色灰度位圖
- 4. 爲什麼不着色圖像工作?
- 5. 什麼是立體着色器?
- 6. 什麼是本地圖書館?什麼是綁定的需要?
- 7. 什麼是「新的表達式需要(),[]或{}之後輸入」意味着什麼?
- 8. 需要什麼('../')是什麼意思?
- 9. 什麼是需要XYGraph
- 10. 什麼是網站地圖,爲什麼我需要它?
- 11. 不要着色,但「着色」精靈
- 12. 爲什麼我需要在webgl着色器中定義精度值?
- 13. 片段着色器noob需要知道爲什麼這崩潰驅動程序
- 14. 需要什麼來支持GLSL着色器中的非方形矩陣?
- 15. 什麼是需求代碼意味着什麼
- 16. 是否有需要在着色器之間重置的狀態
- 17. 我是否需要爲OpenGL 3.3核心使用着色器?
- 18. 什麼是不必要的測試null意味着什麼?
- 19. 如何爲plot.ly js圖例着色,爲什麼它是黑色的?
- 20. OpenGL ES 2:簡單繪圖是否需要頂點和片段着色器?
- 21. 我是否需要通過幾何着色器將顏色傳遞給片段着色器?
- 22. 爲什麼我們需要爲節點着色除了其他顏色的黑色和白色之外,還需要在寬度上進行第一次搜索?
- 23. 爲什麼CPU要編譯GPU着色器?
- 24. 什麼是OpenGL次要顏色有用?
- 25. ActiveSync需要什麼?
- 26. 爲什麼需要
- 27. 爲什麼需要「{} \」?
- 28. subwcrev需要什麼?
- 29. Control.IsHandleCreated需要什麼?
- 30. NLP需要什麼?
聽起來像ui.stackexchange.com給我 – jdog
我不知道你在問什麼。着色僅僅是爲了對算法進行可視化......「今日世界」中可能的顏色數量與任何事物有什麼關係? –
「今天的世界有很多顏色可以爲圖表着色」---是的,自科學家發明顏色以來,情況已經有了很大的改善。 – JJJ