抽象代數(近世代數)在工程領域有什麼具體用處?

大學數學主要分為2大塊,分析和代數。其中分析方面的實分析,複分析在工程領域都用處極廣。請問代數,抽象代數在工程,計算機科學,金融等方面有什麼具體用處?


在數字通信中,比特流通過信道後會產生錯誤。為實現可靠通信,需要在發送的時候加入冗餘,並在接收端利用這些冗餘來糾正錯誤。所謂加入冗餘,就是加入一些比特,使之與信息比特滿足一定的數學約束關係,而在接收端利用這種數學約束關係來糾正錯誤。這就是糾錯編碼。不同的糾錯編碼方案採用不同的數學約束關係。糾錯碼中的一大類——代數編碼,就是利用抽象代數中的群,環,域等代數結構來構造的。


在編程開發中,抽象代數被(或者說本應被)廣泛的應用於指導實踐,例如:

**Monad**作為範疇論和群論的產物,揭示了程序設計過程當中的很多普遍模式的本質,這些普遍模式包括:IO,Exception,Promise 等等。Monad的概念已經直接體現在了某些函數式編程語言(如Haskell)當中。

**柯里-霍華德同構**闡述了推理系統和類型系統之間的同構關係(不確定這兩者是否能看做抽象代數的研究對象,此處需要確認??),在這一結論指導下產生了**Hindley-Milner類型系統**,這一類型系統也已被用在一些程序設計語言(如Haskell,ML)當中。

另外,從很多小的細節方面講,Monad,Functor,Monoid等等這些抽象代數中的概念,已被廣泛應用於某些編程語言(這裡主要指Haskell之類)當中,並成為了其標準庫的一部分,程序員可以用它們來實現各種具有抽象代數結構的實例。看一下Haskell的部分代碼你能有一個大致的體會:Data.Monoid,Prelude

本人程序員一枚,也是最近在學習過程中意識到抽象代數的強大,回答中不免會有概念不準確的地方,希望交流,共勉。


數學基礎課在計算機領域的應用有哪些? - 互聯網

=====

對代數了解比較淺,說幾個在理論計算機的應用:

自動機:

1. 自動機理論有個研究方向是用monoid來抽象自動機,即每個自動機都有一個等價的monoid,然後利用一個定理打通自動機和群的關係:Monoid的group-free 等價於Automaton的Permutation-free 等價於non-counting語言。

2. Barrington"s theorem : 大概意思是利用5階對稱群的不可解的性質構造識別正則語言的方法。具體證明就不搬了。

數理邏輯:

我了解不多,知道的僅僅是把群、環、域作為一種和圖、自動機、資料庫類似結構用來研究邏輯,比較直接的應用就是Automatic deduction。所以,群、環、域特有的性質沒有體現出來。

密碼學:

相對用的是用的最多的:Group-based cryptography


如果說真實的工業應用的話,我不是很熟悉,不過密碼學還有通信編碼之類的肯定是要用到抽象代數的的。

在統計這邊的,做農業或者工業中的實驗設計時,因子設計Factorial Design可以用finite Abliian groups的理論進行構造和簡化。

不過我覺得抽象代數的所謂應用大部分都是在理論層的,真到了實際的工業層面,都是直接用現成結論來著。


最近不是流行理解`Monad`么


小朋友,等你到高年級你就知道是沒有什麼東西不用代數的。。。我過了一遍我博士的課好像也就操作系統沒用過。


我們玩的遊戲是由遊戲引擎製作出來的。

遊戲引擎中的旋轉是靠單位純四元數的集合來表示的。

而單位純四元數則是最基本的李群。

參見

Understanding Quaternions3D Game Engine Programming


抽象代數是代數的抽象,所有用到代數的地方都是用了抽象代數,代數在工程上應用之廣就不用說了吧。


大規模連續性語音識別的解碼就用到了有限狀態自動轉換器(WFST),其背後的原理和各種優化演算法都是基於近世代數的。我讀書少,就知道這一個例子。


用計算機求符號積分,integrate(f(x),x),演算法實現。典型的是risch algorithm。

在求符號積分的時候會遇到一個函數RootsOf,就是把一個一元多項式的根全部求出來,問題是1元5次多項式的根是不能用公式表達的,所以會必須使用這個符號。


學下haskell 你就明白了


在信息安全,密碼學中用的比較多


量子化學,計算化學


信道編碼。


通信加密,比特幣


推薦閱讀:

化學反應之後質量會不會有微小改變?
「電荷量」定義是否有邏輯問題?
假如世界上只剩下你一個人,你還會研究數學/物理嗎?
水結冰後所有溶解在水中的物質都會析出么?
一種求解電場線的方法?

TAG:物理學 | 代數 | 計算機科學 | 抽象代數 | 高等數學 |