如何學習離散數學和在計算機科學中應用

如何學習離散數學和在計算機科學中應用

版權聲明:本文爲博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接和本聲明。
本文連接: https://blog.csdn.net/utimes/article/details/42009405

引言

離散數學的定義及其在各學科領域的重要做用。離散數學(Discrete mathematics)是研究離散量的結構及其相互關係的數學學科,是現代數學的一個重要分支。它在各學科領域,特別在計算機科學與技術領域有着普遍的應用,同時離散數學也是計算機專業的許多專業課程,如程序設計語言、數據結構、操做系統、編譯技術、人工智能、數據庫、算法設計與分析、理論計算機科學基礎等必不可少的先行課程。經過離散數學的學習,不但能夠掌握處理離散結構的描述工具和方法,爲後續課程的學習創造條件,並且能夠提升抽象思惟和嚴格的邏輯推理能力,爲未來參與創新性的研究和開發工做打下堅實的基礎。html

隨着信息時代的到來,工業革命時代以微積分爲表明的連續數學佔主流的地位已經發生了變化,離散數學的重要性逐漸被人們認識。離散數學課程所傳授的思想和方法,普遍地體如今計算機科學技術及相關專業的諸領域,從科學計算到信息處理,從理論計算機科學到計算機應用技術,從計算機軟件到計算機硬件,從人工智能到認知系統,無不與離散數學密切相關。算法

因爲數字電子計算機是一個離散結構,它只能處理離散的或離散化了的數量關係, 所以,不管計算機科學自己,仍是與計算機科學及其應用密切相關的現代科學研究領域,都面臨着如何對離散結構創建相應的數學模型;又如何將已用連續數量關係創建起來的數學模型離散化,從而可由計算機加以處理。因而可知,離散數學在計算機科學中具備普遍的應用.
數據庫

如何學習離散數學  

學習離散數學有兩項最基本的任務:其一是經過學習離散數學,使學生了解和掌握在後續課程中要直接用到的一些數學概念和基本原理,掌握計算機中經常使用的科學論證方法,爲後續課程的學習奠基一個良好的數學基礎;其二是在離散數學的學習過程當中,培訓自學能力、抽象思惟能力和邏輯推理能力,以提升專業理論水平。所以學習離散數學對於計算機、通訊等專業後續課程的學習和從此從事計算機科學等工做是相當重要的。可是因爲離散數學的離散性、知識的分散性和處理問題的特殊性,使部分學生在剛剛接觸離散數學時,對其中的一些概念和處理問題的方法每每感到困惑,特別是在作證實題時感到無從下手,找不到正確的解題思路。所以,對離散數學的學習方法給予適當的指導和對學習過程當中遇到的一些問題分析是十分必要的。網絡

認知離散數學

離散數學是計算機科學基礎理論的核心課程之一,是計算機及應用、通訊等專業的一門重要的基礎課。它以研究量的結構和相互關係爲主要目標,其研究對象通常是有限個或可數個元素,充分體現了計算機科學離散性的特色。學習離散數學的目的是爲學習計算機、通訊等專業各後續課程作好必要的知識準備,進一步提升抽象思惟和邏輯推理的能力,爲計算機的應用提供必要的描述工具和理論基礎。數據結構

  • 定義和定理多 離散數學是創建在大量定義、定理之上的邏輯推理學科,所以對概念的理解是學習這門課程的核心。在學習這些概念的基礎上,要特別注意概念之間的聯繫,而描述這些聯繫的實體則是大量的定理和性質。在考試中有一部份內容是考查學生對定義和定理的識記、理解和運用,所以要真正理解離散數學中所給出的每一個基本概念的真正的含義。好比,命題的定義、五個基本聯結詞、公式的主析取範式和主合取範式、三個推理規則以及反證法;集合的五種運算的定義;關係的定義和關係的四個性質;函數(映射)和幾種特殊函數(映射)的定義;圖、徹底圖、簡單圖、子圖、補圖的定義;圖中簡單路、基本路的定義以及兩個圖同構的定義;樹與最小生成樹的定義。掌握和理解這些概念對於學好離散數學是相當重要的。
  • 方法性強 在離散數學的學習過程當中,必定要注重和掌握離散數學處理問題的方法,在作題時,找到一個合適的解題思路和方法是極爲重要的。若是知道了一道題用怎樣的方法去作或證實,就能很容易地作或證出來。反之,則事倍功半。在離散數學中,雖然各類各樣的題種類繁多,但每類題的解法均有規律可循。因此在聽課和平時的複習中,要善於總結和概括具備規律性的內容。在平時的講課和複習中,老師會總結各種解題思路和方法。做爲學生,首先應該熟悉而且會用這些方法,同時,還要勤于思考,對於一道題,進可能地多探討幾種解法。
  • 抽象性強 離散數學的特色是知識點集中,對抽象思惟能力的要求較高。因爲這些定義的抽象性,使初學者每每不能在腦海中直接創建起它們與現實世界中客觀事物的聯繫。無論是哪本離散數學教材,都會在每一章中首先列出若干個定義和定理,接着就是這些定義和定理的直接應用,若是沒有較好的抽象思惟能力,學習離散數學確實具備必定的困難。所以,在離散數學的學習中,要注重抽象思惟能力、邏輯推理能力的培養和訓練,這種能力的培養對從此從事各類工做都是極其重要的。在學習離散數學中所遇到的這些困難,能夠經過多學、多看、認真分析講課中所給出的典型例題的解題過程,再加上多練,從而逐步獲得解決。在此特別強調一點:深刻地理解和掌握離散數學的基本概念、基本定理和結論,是學好離散數學的重要前提之一。因此,同窗們要準確、全面、完整地記憶和理解全部這些基本定義和定理。
  • 內在聯繫性 離散數學的三大致系雖然來自於不一樣的學科,可是這三大致系先後貫通,造成一個有機的總體。經過認真的分析可尋找出三大部分之間知識的內在聯繫性和規律性。如:集合論、函數、關係和圖論,其解題思路和證實方法均有相同或類似之處。

認知解題規範

通常來講,離散數學的考試要求分爲:瞭解、理解和掌握。瞭解是能正確判別有關概念和方法;理解是能正確表達有關概念和方法的含義;掌握是在理解的基礎上加以靈活應用。爲了考覈學生對這三部分的理解和掌握的程度,試題類型通常可分爲:判斷題、填空題、選擇題、計算題和證實題。判斷題、填空題、選擇題主要涉及基本概念、基本理論、重要性質和結論、公式及其簡單計算;計算題主要考覈學生的基本運用技能和速度,要求寫出完整的計算過程和步驟;證實題主要考查應用概念、性質、定理及重要結論進行邏輯推理的能力,要求寫出嚴格的推理和論證過程。函數

學習離散數學的最大困難是它的抽象性和邏輯推理的嚴密性。在離散數學中,假設讓你解一道題或證實一個命題,你應首先讀懂題意,而後尋找解題或證實的思路和方法,當你相信已找到了解題或證實的思路和方法,你必須把它嚴格地寫出來。一個寫得很好的解題過程或證實是一系列的陳述,其中每一條陳述都是前面的陳述通過簡單的推理而獲得的。仔細地寫解題過程或證實是很重要的,既能讓讀者理解它,又能保證解題過程或證實準確無誤。一個好的解題過程或證實應該是條理清楚、論據充分、表述簡潔的。針對這一要求,在講課中老師會提供大量的典型例題供同窗們參考和學習。工具

經過離散數學的學習和訓練,能使同窗們學會在離散數學中處理問題的通常性的規律和方法,一旦掌握了離散數學中這種處理問題的思想方法,學習和掌握離散數學的知識就再也不是一件難事了。學習

學習離散數學的目的

通常來講,離散數學內容普遍且高度抽象,能夠說是一門既難教又難學的課程,這無疑給教師的教學和學生的學習帶來了必定的難度。一方面,離散數學不只 是爲專業服務的基本理論,並且經過該課程能夠培養學生的抽象思惟和縝密歸納的能力,但其概念多,理論性強,高度抽象性的特色卻令許多學生望而生畏。學生在 學習這門課程時,每每看不到離散數學在計算機科學中的具體應用,於是放鬆對離散數學的學習,失去學習的興趣。測試

 

 

離散數學的生命力在於其深入的理論和普遍的應用。其實,深入的理論和普遍的應用是相輔相成的。學生之因此對離散數學的學習興趣不高,除了離散數學自己理論性 強、比較抽象之外,還有一個緣由就是對於這些理論方面的知識,學生在學習過程當中並不會切實地感覺到學好它的做用和成效,所以只把應付考試做爲學習這門課程 的目的。做爲老師,咱們在教學之初就應該向學生們指明,學習離散數學的目的在於培養學生的抽象推理、邏輯思惟和概括構造等能力,提升學生利用數學方法解決問題的技能,以及爲後續課程做必要的準備,爲學生的進一步學習奠基計算機數學的基礎。它所涉及的概念、方法和理論,大量地應用在數字電路、編譯原理、數據結構、操做系統、數據庫、算法等領域。優化

 

離散數學在計算機科學應用

 

在人工智能中的應用 

 

人工智能是計算機學科中一個很是重要的方向,離散數學在人工智能中的應用主要是數理邏輯部分在人工智能中的應用。數理邏輯包括命題邏輯和謂詞邏輯,命題邏輯就是研究以命題爲單位進行前提與結論之間的推理,而謂詞邏輯就是研究句子內在的聯繫。你們都知道,人工智能共有兩個流派,鏈接主義流派和符號主義流派。其中在符號主義流派裏,他們認爲現實世界的各類事物能夠用符號的形式表示出來,其中最主要的就是人類的天然語言能夠用符號進行表示。語言的符號化就是數理邏輯研究的基本內容,計算機智能化的前提就是將人類的語言符號化成機器能夠識別的符號,這樣計算機才能進行推理,才能具備智能。因而可知數理邏輯中重要的思想、方法及內容貫穿到人工智能的整個學科。

在人工智能的研究與應用領域中,邏輯推理是人工智能研究中最持久的子領域之一。邏輯是全部數學推理的基礎,對人工智能有實際的應用。採用謂詞邏輯語言的演繹過程的形式化有助於咱們更清楚地理解推理的某些子命題。邏輯規則給出數學語句的準肯定義。離散數學中數學推理和布爾代數章節中的知識就爲早期的人工智能研究領域打下了良好的數學基礎。許多非形式的工做,包括醫療診斷和信息檢索均可以和定理證實問題同樣加以形式化。所以,在人工智能方法的研究中定理證實是一個極其重要的論題。在這裏,推理機就是實現(機器)推理的程序。它既包括一般的邏輯推理,也包括基於產生式的操做。推理機是使用知識庫中的知識進行推理而解決問題的。因此推理機也就是專家的思惟機制,即專家分析問題、解決問題的方法的一種算法表示和機器實現。

在數據庫系統理論中的應用 

集合論是離散數學中極其重要的一部分,它在數據庫中有着普遍的應用。咱們能夠利用關係理論使數據庫從網絡型、層次型轉變成關係型,這樣使數據庫中的數據容易表示,而且易於存儲和處理,使邏輯結構簡單、數據獨立性強、數據共享、數據冗餘可控和操做簡單。當數據庫中記錄較多時,集合中的笛卡兒積方便了記錄的查詢、插入、刪除和修改。 關係數據庫中的數據管理系統向用戶提供使用的數據庫語言稱爲數據子語言,它是以關係代數或謂詞邏輯中的方法表示。因爲用這種數學的方法去表示,使得對這些語言的研究成爲對關係代數或邏輯謂詞的研究,優化語言的表示變成爲對關係代數與謂詞邏輯的化簡問題。因爲引入了數學表示方法,使得關係數據庫具備比其它幾種數據庫較爲優越的條件。正由於如此關係數據庫迅速發展成爲一種頗有前途、頗有但願的數據庫。另外,離散數學中的笛卡兒積是一個純數學理論,是研究關係數據庫的一種重要方法,顯示出不可替代的做用。不只爲其提供理論和方法上的支持,更重要的是推進了數據庫技術的研究和發展。關係數據模型創建在嚴格的集合代數的基礎上,其數據的邏輯結構是一個由行和列組成的二維表來描述關係數據模型。在研究實體集中的域和域之間的可能關係、表結構的肯定與設計、關係操做的數據查詢和維護功能的實現、關係分解的無損鏈接性分析、鏈接依賴等問題都用到二元關係理論。

在數據結構中的應用

計算機要解決一個具體問題,必須運用數據結構知識。對於問題中所處理的數據,必須首先從具體問題中抽象出一個適當的數學模型,而後設計一個解此數學模型的算法,最後編出程序,進行測試、調整直至獲得問題的最終解答。而尋求數學模型就是數據結構研究的內容。尋求數學模型的實質是分析問題,從中提取操做的對象,並找出這些操做對象之間含有的關係,而後用數學的語言加以描述。數據結構中將操做對象間的關係分爲四類:集合、線性結構、樹形結構、圖狀結構或網狀結構。數據結構研究的主要內容是數據的邏輯結構,物理存儲結構以及基本運算操做。其中邏輯結構和基本運算操做來源於離散數學中的離散結構和算法思考。離散數學中的集合論、關係、圖論、樹四個章節就反映了數據結構中四大結構的知識。如集合由元素組成,元素可理解爲世上的客觀事物。關係是集合的元素之間都存在某種關係。例如僱員與其工資之間的關係。圖論是有許多現代應用的古老題目。偉大的瑞士數學家列昂哈德·歐拉在18 世紀引進了圖論的基本思想,他利用圖解決了有名的哥尼斯堡七橋問題。還能夠用邊上帶權值的圖來解決諸如尋找交通網絡裏兩城市之間最短通路的問題。而樹反映對象之間的關係,如組織機構圖、家族圖、二進制編碼都是以樹做爲模型來討論。

在編譯原理中的應用

編譯程序是計算機的一個十分複雜的系統程序。一個典型的編譯程序通常都含有八個部分:詞法分析程序、語法分析程序、語義分析程序、中間代碼生成程序、代碼優化程序、目標代碼生成程序、錯誤檢查和處理程序、各類信息表格的管理程序。離散數學裏的計算模型章節裏就講了三種類型的計算模型:文法、有限狀態機和圖靈機。具體知識有語言和文法、帶輸出的有限狀態機、不帶輸出的有限狀態機、語言的識別、圖靈機等。短語結構文法根據產生式類型來分類:0 型文法、1 型文法、2 型文法、3 型文法。以上這些在離散數學裏講述到的知識點在編譯原理的詞法分析及語法分析中都會用到。所以,離散數學也是編譯原理的前期基礎課程。

在計算機硬件設計中的應用

數字邏輯做爲計算機的一個重要理論,在很大程度上起源於離散數學的數理邏輯中的命題與邏輯演算,其在計算機硬件設計中的應用更爲突出。利用命題中各關聯詞的運算規律把又電平表示的各信號之間的運算於二進制數之間的運算聯繫起來,使得咱們能夠用與非門或者用或非門來解決電路設計問題,使得整個設計過程更加直觀、系統化。數理邏輯在程序設計中起到花間的做用,當一個程序初稿拿出來之後,若是咱們想分析一下其中是否有冗餘存在,這時就用到了離散數學中命題演算的基本等式。

在計算機糾錯碼中的應用

計算機中,經常須要將二進制數字信號進行傳遞。這種傳遞的距離近則數米、數毫米,遠則超過數千千米。在傳遞過程當中,因爲存在各類干撓,經常會使二進制信號產生失真現象。而利用離散數學的集合論、羣論和數理邏輯來分析研究計算機糾錯碼的糾錯能力,是離散數學在計算機科學中的一個重要應用方面。代數系統在計算機中的應用普遍,例若有限機,開關線路的計數等方面。但最經常使用的是在糾錯碼方面的應用。在計算機和數據通訊中,常常須要將二進制數字信號進行傳遞,這種傳遞經常距離很遠,因此不免會出現錯誤。一般採用糾錯碼來避免這種錯誤的發生,而設計的這種糾錯碼的數學基礎就是代數系統。糾錯碼中的一致校驗矩陣就是根據代數系統中的羣概念來進行設計的,另外在羣碼的校訂中,也用到了代數系統中的陪集。 

在生物信息學中的應用 

生物信息學是現代計算機科學中一個嶄新的分支,它是計算機科學與生物學相結合的產物。目前,在美國有一個國家實驗室Sandia國家實驗室,主要進行組合編碼理論和密碼學的研究,該機構在美國和國際學術界有很高的地位。另外,因爲DNA是離散數學中的序列結構,美國科學院院士,近代離散數學的奠定人Rota教授預言,生物學中的組合問題將成爲離散數學的一個前沿領域。並且,IBM公司也將成立一個生物信息學研究中心。在1994年美國計算機科學家阿德勒曼公佈了DNA計算機的理論,併成功地運用DNA計算機解決了一個有向哈密爾頓路徑問題,這一成果迅速在國際產生了巨大的反響,同時也引發了國內學者的關注。DNA計算機的基本思想是:以DNA鹼基序列做爲信息編碼的載體,利用現代分子生物學技術,在試管內控制酶做用下的DNA序列反應,做爲實現運算的過程;這樣,以反應前DNA序列做爲輸入的數據,反應後的DNA序列做爲運算的結果,DNA計算機幾乎可以解決全部的NP徹底問題。 

在其餘方面的應用

 對謂詞演算公理系統的研究使得美國數理邏輯學家羅賓遜於1965 年創立了「消解原理」的算法,在此算法的基礎上,法國馬賽大學的柯爾密勒設計並實現了一種基於謂詞演算的邏輯程序設計語言PROLOG(programming in logic) ,該語言不久即在衆多計算機上得以實現. 這樣一來,現實世界中的問題只要能用謂詞演算公理系統方式表示出來,就能夠將它寫成PROLOG程序,而後在計算機上得以實現。

 

參考文獻

[1] Discrete mathematics From Wikipedia, the free encyclopedia

[2] Discrete mathematics at the utk.edu Mathematics Archives, providiing links to syllabi, tutorials, programs, etc.

[3] Weisstein, Eric W."Discrete mathematics"MathWorld.
[4]  Biggs, Norman L. (2002), Discrete mathematics, Oxford Science Publications (2nd ed.), New York: The Clarendon Press Oxford University Press, p. 89, ISBN 9780198507178MR 1078626Discrete Mathematics is the branch of Mathematics in which we deal with questions involving finite or countably infinite sets.

[5] Wilson, Robin (2002). Four Colors Suffice. London: Penguin Books. ISBN 978-0-691-11533-7.

[6] Samuel R. Buss (1998). Handbook of Proof Theory. Elsevier. p. 13. ISBN 978-0-444-89840-1.

[7] 耿素雲,屈婉玲,離散數學[M].北京:高等教育出版社,1998. 

[8] 左孝凌,李永監,劉永才編著.離散數學[M].上海:上海科學技術文獻出版社,2004.

[9] 朱一清.離散數學[M].北京:電子工業出版社,2004

 

關於Discrete Mathematics更多討論與交流,敬請關注本博客和新浪微博songzi_tea.

相關文章
相關標籤/搜索