1 / 86

電腦科學的理論基礎

電腦科學的理論基礎. 空大面授教師 何 秀 蘭. 第一章簡單的數學與邏輯理論. 認識電腦系統. 電腦簡要結構圖. 主記憶體. CPU 中央處理器. 週邊設備. 儲存設備. 程式. 算術運算單元. 邏輯運算單元. 資料. 列印設備. 系統. 網路設備. 資料暫存區. 資料匯流區. 運算理論方法. 建構式証明( proof by construction ) 矛盾證明法( proof by contradiction ) 歸納式証明( proof by induction ) 基礎事實、推演步驟.

kaori
Download Presentation

電腦科學的理論基礎

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 電腦科學的理論基礎 空大面授教師 何 秀 蘭

  2. 第一章簡單的數學與邏輯理論 認識電腦系統

  3. 電腦簡要結構圖 主記憶體 CPU 中央處理器 週邊設備 儲存設備 程式 算術運算單元 邏輯運算單元 資料 列印設備 系統 網路設備 資料暫存區 資料匯流區

  4. 運算理論方法 • 建構式証明(proof by construction) • 矛盾證明法(proof by contradiction) • 歸納式証明(proof by induction) 基礎事實、推演步驟

  5. 離散數學 (discrete mathematics) • 代數 • 邏輯 • 組合數學(計數 、圖型理論 ) • 圖論 • 有限狀態機 • 運算性 (computability) • 演算法分析

  6. ∩ ∩ ∩ 認識「數」 (numbers) P N Z Q R 正整數的集合 (不含0) 正整數的集合 (包含0) 所有整數集合 有理數集合 實數集合 P={n:n是一個正整數} N={n:n是一個自然數} Z={n:n是一個整數} Q={a/b:a與b為整數,b=0} R={x:x是一個實數}

  7. 2補述表示負數的方式

  8. 數學基礎 • 集合 (set) • 函數 (function) • 關聯 (relation) • 序列 (sequence)

  9. 集合 (sets) • 一群物件的組合 • 成員都是該集合的成員(元素 element) • 集合中沒有重複的成員 • 集合元素可以用波浪括弧框起來

  10. Power set p (s) • 一個集合的所有子集合所形成的集合 • S為集合,用 p (s)表示 • 假如 s有 n個元素,則 p(s)有2n個元素

  11. 集合的運算 • 聯集(union)A∪B • 交集(intersection)A∩B • 相對互補(relative complement)A\B • 對稱差(symmetric difference)A⊕B • A⊕ B =(A∪B)\ (A∩B)=(A\B) ∪(B\A)

  12. 集合相關的定律

  13. 關聯(relation) 二元關聯的定義: S與T為集合,從 S到T的二元關聯(binary relation) 是SxT的子集合,以R來表示。所以R是由有序數對(ordered pairs)組成的集合,有序數對可以用(S,t)來表示。

  14. 函數(functions) • 運算式 • 含有變數 • 變數的值會決定函數的值 • 函數代表某種對應,存在於變數與函數的輸出值之間

  15. 函數的結合 u T S g € f g(f(X)) X f(X) g o f (g o f )(x)=g (f (x)) ,x€s

  16. F (x) = 3x-4,g (y)=2y+5,則 g o f (x) 與 f o g (x)為何? g o f (x)=g (f (x)) =2(3x-4)+5 =6x-3 f o g(y)=f (g (y)) =3(2y+5)-4 =6y+11

  17. 函數特性 • 1對多 • 1對1 • 1對1(每各均都對應到) • 多對1,不是函數

  18. 序列(sequences) • 函數可以看成一種序列 • 序列中變數很適合用下標表示 • 序列表示法: • 加總: =1+4+9+…..+400 • 階乘 :n!=1x2x3x4x…x n • =Π K 20 N=1 n N-1

  19. 邏輯理論 • 表達論述(arguments) • 區分有效的或無效的 • 發展出嚴謹的証明 • 探討命題(propostions)之間邏輯關係 • 命題可能是真(true)或是偽(false)

  20. 命題邏輯(propositional logic) • 命題演算 • 發展正式規則,用來分析與處理命題 • 看成一種命題代數 • 快速算出命題真值 • 命題可能是真(true)或是偽(false)

  21. 命題邏輯連接符號表示法 • ﹁:代表not 或否定 • :代表and • :代表 or • :代表暗示,有條件推論 • :代表若且唯若 • ⊕ :代表 or(exclusive)

  22. 真假值

  23. 第二章問題的表示與解決方法 • 解決問題方法 • 數學歸納法 • 遞迴 • 計數

  24. 資料結構 • 資料結構是資料的表示法 • 資料結構簡化解決問題程序 • 資料結構離不開演算法 • 演算法是解決問題方法 • 經由演算法分析後,可以某種程式語言撰寫演算法所代表程式資 • 必須以適當資料結構來描述問題中抽象或具體事實

  25. 資料結構分類 • 基本資料型式(整數、浮點數、字串、布林值 ) • 系統內定或使用者自訂的資料型態 • 抽象資料型式

  26. 資料結構表示方法 • 代數(c=5/9*(f-32) • 表格式 • 資料流程圖(DFD) • 控制流程圖

  27. 資料流程圖(Data Flow Diagram) 資料流 • DFD偏重 於資料被處理方式與順序 • 描述演算表功能 • 說明資料操作之間交換資料 • ( x+y+a)*( a+b*c) • 請参閱p42 圖2-5 輸出 功能 輸入

  28. 控制流程圖(CFD) • 控制流程與資料流程是演算法一體兩面 • 說明各功能是如何達成 false 條件 操作 true

  29. 解決問題 資料結構、演算法、程式語言之關係 資料 結構 演算法 程式 具體化

  30. 資料結構內涵 資料結構的用途 演算法 功能定義 程式語言 儲存結構 演算法

  31. 字典 • 儲存成對資料 • 成對值的序列或樹 • 集合(set) • 關聯 (relations) :有序對的集合 • 映射 (mapping) :集合之間特殊的關聯

  32. 映射與關聯的差異 有效關聯但不是有效的映射 有效關聯也是有效的映射

  33. 解決問題的方法 • 解決問題要先了解問題 • 解決問題的方法不只一種 • 解決問題時需要分析思考 • 理論根基可幫助有系統的分析思考

  34. CRC • CRC 內涵 類別、責任、合作 • 物件導向分析方法 • 是用小型開發群組 • 配合漸進式軟體開發程序

  35. 第三章布林代數 • 一個含有0與1的集合B,兩個二元運算元 • 「 」or 與 「 」and • 一個單元運算元,及「-」或「ˋ」

  36. 基本的定理

  37. x y x .y x y x + y x x’ • 0 0 0 • 0 1 0 • 1 0 0 • 1 1 1 • 0 0 0 • 0 1 1 • 1 0 1 • 1 1 1 • 0 1 • 1 0 二值布耳代數 • 定義在一個二元素集合上,即 B={0,1}

  38. 布耳代數的基本定義與性質 • 基本定理

  39. 布耳函數 • 布耳函數即由二進位變數,OR、AND兩個二進位運算元,及單一運算子NOT,括弧,以及一各等號所組成表示式。 • 可以藉由代數運算而加以簡化 • 例: • x + x’y=(x + x’)(x + y)=1*(x + y)=x + y • x(x’ + y)=xx’ + xy =0 + xy =xy

  40. Boolean expression E=(x v y z') (y z)' 真值表

  41. X Y X Y X Y X Y X Y x 基本電路元件(gates) 邏輯電路設計

  42. X Y Z W (X y)’ v z v (x z’ w)

  43. 成本考量得到最適合設計 • 是布林代數venn diagram 與真假值混合 卡諾圖( karnaugh maps)

  44. 尋找 optimal desing 的步驟如下: 1.依據所描述的函數+號放入卡諾圖中 2.劃分區域: (1)畫出8個方塊有涵蓋有+號的地方,假如8個方塊都有 +號,則Boolean function為1 (2)畫出4個方塊有涵蓋+號但之前沒有被涵蓋的地方 (3)畫出2個方塊來涵蓋有+號但之前沒有被涵蓋的地方 (4)畫出剩下有+號但之前沒有被涵蓋的地方 3.選擇一組畫出來的區域: (1)整體上要包括所有含有+號的地方 (2)越少方塊越好 4.使越少literals越好

  45. Y’z Yz Yz’ Y’z’ Y’z Yz Yz’ Y’z’ x + + x + + + x’ + + x’ Xyz’ v x’ y’ x Y’z Y’z Yz Yz’ Y’z’ Yz Yz’ Y’z’ x + + x + + + + + + x’ x’ + Z’ x’ y’ v z

  46. Y’z Yz’ Y’z’ Y’z Yz Yz’ Y’z’ + x + + + x + + + x’ + + + x’ + + + X v y v z’ Y v xz’ v x’z

  47. 第四章 認識數理邏輯(predicate calculus) • 也稱為數理演算,跟命題演算不太一樣。 • 邏輯程式設計與人工智慧,主要是以數理演算為基礎的。 • 數理邏輯 (predicate calculus)導入量詞(quantifiers)的使用。 • 量詞(quantifiers) :所有量詞 • 存在量詞 • 運算子(OPERATOR): A E V V ﹂

  48. 多重量詞用法 • 同時使用 與 的情況,必須注意量詞出現順序 • 例: P(X,Y)=「X是Y的上司」 • X P(X,Y)意思是所有的人都是Y的上司 • Y P(X,Y) 意思是X是所有的人的上司 • Y P(X,Y) 意思是X是某人所有的上司 • X P(X,Y) 意思是某人是Y的上司 A E A A E E

  49. 認識命題演算(propositional calculus) • 命題演算使用的命題符號(propositional symbols)是英文的大寫字母 • 命題符號用來表示命題 • 有關於現實世界的敘述,可能為真(true)或偽(false), • 這些符號用來組成句子(sentences),合法的句子(legal sentences)也稱為WFFs (well-formed formulas)。

  50. 數理演算特點來自量詞(quantifier)的導入 • 能處理述詞以及述詞中的成員,推理出其他的句子 • 可以從語法(syntax)與語意(semantics)上來認識數理演算 • 數理演算中的符號包括真值符號(truth symbols)、常數符號(constant symbols)、變數符號(variable symbols)與函數符號(function symbols), • 數理演算很像一種邏輯程式語言(logic programming language)。 認識數理演算(predicate calculus)

More Related