拓撲排序在工程實踐中有什麼具體的應用?

時間 2021-05-06 05:40:30

1樓:chris

cad軟體中尺寸聯動功能(改變一條邊的資訊其他與之存在幾何關係的邊在保持約束的情況下進行更新)的實現原理就是利用拓撲排序頂點是各個幾何元素邊是幾何元素之間的關係(夾角距離等)

2樓:童牧晨玄

生成有向無環圖(DAG)。最典型的像 Makefile 裡面管理 target 之間依賴的,比如生成 A 依賴 B, C, 生成 C 依賴 B, D。這時候就要先用 B, D 生成 C,再用 B, C 生成 A。

這種依賴關係一旦複雜,就不可能靠人工指定線性順序了,而要靠拓撲排序自動生成 DAG。還有像 Spark 裡面就用到了。有了 DAG,還可以決定任務之間什麼時候可以並行(make 中的 -j 引數)。

又如 Prismatic 開源的 plumbing 庫 (Clojure): plumatic/plumbing · GitHub,就是一種用 Graph 表示函式之間依賴的方法,自動用拓撲排序生成函式之間的依賴關係並呼叫。順便安利我山寨的乙個 Python 版本原型:

demon386/indigo: Indigo -- Python clone of Plumbing, framework for structued computation。實現很簡單,可以看到拓撲排序怎麼被使用到的。

另外機器學習裡像 Theano 為了能夠自動求導,用符號來表示計算過程的庫,也是用到拓撲排序自動生成符號、變數之間的 DAG。(Graph Structures)

3樓:王贇 Maigo

舉乙個語音識別裡的例子。

很多語音識別系統在識別一句話時,是要把整句話處理兩遍的。

第一遍為了解碼速度快,採用乙個比較弱的語言模型,得到的結果是乙個含有許多候選句子的lattice,就像這樣:

第二遍再採用乙個比較強的語言模型,從lattice中選出可能性最高的一條路徑。

這裡的「可能性」用語音模型和語言模型的聯合概率來衡量,每個單詞本身有語音模型概率,單詞到單詞的轉移有語言模型概率。

這是乙個動態規劃問題,lattice中的每個單詞(即每條邊)是乙個狀態。

在求解的過程中,計算乙個狀態的概率值時,需要知道它的所有前導狀態的概率值。

為此,各個狀態就必須按一定的順序來處理,這個順序就是拓撲順序

事實上,許多在圖上的動態規劃問題,都需要按拓撲順序依次處理每個狀態,因此拓撲排序是乙個必要的預處理步驟。

我國司法實踐中有依據民族習慣法判案的案例嗎?

冰河 法官判例我沒經歷過,但是派出所以民族為由拉偏架的事我經歷過一次,在廣西。事情起因 專案廚師倒泔水時遇到兩條狗在吃泔水,其實從皮毛,體型,不怕人等方面很容易看出是兩條附近村民家養的狗,可惜廚師一時鬼迷心竅,叫了幫廚,兩個人拿著擀麵杖直接打死了狗,拿回去自己加了個餐。第二天村里的村幹部帶著狗主人就...

教師從業者會不會在教學實踐中有理想的幻滅感和無力改變學生的無奈?

尋夢水上 某次跟一程度挺差的高三學生聊天。為了激發她責任感和學習的慾望,我問她 以後想上什麼樣的大學?希望在什麼樣的地方從事什麼樣的工作?打算過怎麼樣的人生?學生低頭思索了一下,答到 我就想像我媽一下,每天什麼都不幹,在家躺著看電視 本來想給學生灌點雞湯,結果把自己嗆到了 錢多多 很久沒回答問題,突...

如何理解土木工程師在工程實踐及解決土木工程專業複雜工程問題中要承擔的責任?

塗山鹿鹿 土木工程專業,是大學的一種自然學科。專門培養掌握各類土木工程學科的基本理論和基本知識,能在房屋建築 地下建築 道路 隧道 橋梁建築 水電站 港口及近海結構與設施。土木工程專業給水排水和地基處理等領域從事規劃 設計 施工 管理和研究工作的高階工程技術人才。土木工程專業以培養優秀 複合型 工程...