本文摘要:目前我國煤礦也逐漸進入電子自動化的階段,提升自動化系統、排水自動化系統等等這些系統都是在不同階段建設的,煤礦自動化系統是礦井檢測、報警、生產操作的一體化的系統,小編介紹的這篇文章主要關于煤礦自動化的一些問題。 【摘要】命題邏輯是邏輯學的基礎
目前我國煤礦也逐漸進入電子自動化的階段,提升自動化系統、排水自動化系統等等這些系統都是在不同階段建設的,煤礦自動化系統是礦井檢測、報警、生產操作的一體化的系統,小編介紹的這篇文章主要關于煤礦自動化的一些問題。
【摘要】命題邏輯是邏輯學的基礎,要實現邏輯學的計算機處理首先需要實現命題邏輯的計算機處理。由于每個命題公式都與一個由小項下標組成的集合相對應,這樣實現命題邏輯的計算機實現就可以通過集合這個工具,首先將命題邏輯轉化成集合,然后在計算機上對集合進行表示和處理,最后再將由集合處理的結果還原成命題邏輯的形式輸出。本設計主要是基于這一集合理論,在計算機上實現命題邏輯中的兩個最基本的處理,命題公式的證明和命題公式的主析取范式求解。
【關鍵詞】命題變元;命題公式;小項;主析取范式
1.離散數學基礎
數理邏輯研究的中心問題是推導,而推理的前提和結論都是可以判斷真假的陳述句,即命題。因此命題是邏輯推導的基本單位。在命題邏輯中,對命題的成分不再細分,因而命題也是命題邏輯中的最小的研究單位。根據命題的結構形式,可以把命題分為原子命題和復合命題。簡單的說,原子命題是能夠判斷真假的陳述句,而復合命題是由原子命題組成的。
命題公式由以下四條約定進行遞歸定義:
(1)單個命題變元是命題公式。
(2)如果A是命題公式,那么﹁A也是命題公式。
(3)如果A,B是命題公式,那么(A∧B),(A∨B),(A→B)和(A←→B)都是命題公式。
(4)經過有限次的使用(1)、(2)、(3)所組成的有意義的符號串都是命題公式。
2.主要功能模塊設計與實現
整個功能模塊包括文本字符分析模塊,字符的集合表示模塊,集合運算模塊以及顯示模塊,此處僅以文本字符分析模塊為例進行詳細說明。
本模塊的主要功能是將欲處理的命題公式從對話框提取出來,然后放入相應的變量里面,為第一遍掃描和第二遍掃描做準備。
2.1第一遍掃描
(1)主要目的
統計出所輸入的命題公式中命題變元的個數并將命題變元按順序存入容器,為字符的集合表示模塊做準備,同時將操作符統一變成一個,為建立語法樹做準備。
(2)實現方法
從變量的第一個字符開始,依次遍歷到字符串變量的最后一個字符。如過遇到的是字符則首先判斷該字符是否在字符容器里面,若在字符容器里面,則僅將該字符放入字符隊列里面,若不在字符容器里面則不僅將該字符放到字符隊列里面還要將該字符放到字符容器里面。如遇到的是操作符,則首先判斷是那種操作符,如果是否定詞或析取詞或合取詞,則將其直接放入字符隊列,如若是條件詞或雙條件詞,首先去掉一個或兩個字符然后再放入字符隊列。在這里字符容器主要用于存放命題變元并且統計命題變元的個數,字符隊列用來存放第一遍掃描的結果。因為在命題公式里面,有的操作符不只一個字符,如雙條件命題連接詞(<->)是有3個字符表示的,在這里將其后兩個字符去掉,僅留第一個字符“<”放入字符隊列。條件連接詞(->)像雙條件命題連接詞一樣,僅將“-”放入字符隊列,為第二遍掃描建語法樹提供方便。
2.2第二遍掃描
(1)主要目的
建立語法樹,為集合運算作準備。
(2)實現方法
準備四個棧,分別是兩操作數棧和兩個運算符棧。兩個操作數棧分別記為操作數SA棧和操作數SB棧,其中操作數SB棧為輔助棧,操作數SA棧用來存放第二遍掃描后語法樹中的操作數。兩個運算符棧分別記為運算符YA棧和運算符YB棧,其中運算符YB棧為輔助棧,運算符YA棧用來存放第二遍掃描后語法樹中的運算符。
首先在運算符YA棧中放入字符串起始符號(如#),然后從字符隊列里面依次取字符,判斷是否為命題變元,若是則放入操作數SA棧,若不是字符而是運算符則首先取運算符YA棧的棧頂元素Top,令該運算符與剛取出的棧頂元素Top比較運算符的優先級,若其優先級大于棧頂運算符則將該運算符進運算符YA棧,若相等則運算符YA棧彈出一元素(括號匹配),若其優先級小于棧頂運算符則彈出運算符YA棧頂元素,讓該元素進運算符YB棧。接著判斷剛彈出的運算符是幾目運算符,根據運算符的目數從操作數SA棧彈出相應個數的操作數進操作數SB棧,這樣循環下去直到字符隊列中的字符都被遍歷一次。
在完成上述操作后,最后令操作數依次出操作數SB棧,進操作數SA棧;令運算符依次出運算符YB棧進運算符YA棧。
到此第二此掃描后建立的語法樹就存于操作數SA棧和運算符SB棧中,集合運算模塊將用到這兩個棧里的數據。
3.重要算法
整個過程涉及到三個重要算法,字符到小項下標的編碼,整型數到字符的轉化,以及小項下標到主析取范式的譯碼。此處僅以字符到小項下標的編碼為例進行詳細說明。
對于給定的字符ch,首先遍歷存放命題變元的數組ch_table[],確定ch在數組ch_table[]中的下標ch_index(例如:ch_table[]中的命題變元為P,Q,R,T,則字符Q所對應的下標就是2)。建立自增量conbase=pow(2,variablenum-ch_index-1),用于下標基數base的增加。開始基變量設為base=0-conbase,其后每循環一次基變量自增2*conbase,在每次循環中緊接base后的conbase個整數都是該字符所對應的小項下標。
4.總結
由于每個命題公式都有與其等價的主析取范式,主析取范式中每一個小項下標都轉化成十進制數,并將這些十進制數放入一個集合中,這個集合就與主析取范式形成了一一對應的關系,進而可以推出每一個命題公式都可以用一個集合來表示,一組等價的命題公式與唯一一個集合形成一一對應的關系。
參考文獻
[1]徐鳳生,郭長友,劉建軍,等.離散數學及其應用[M].北京:機械工業出版社,2006.
[2]蔣立源,康慕寧,馮博琴.編譯原理(第三版)[M].西安:西北工業大學出版社,2006.
[3]H.M.Deitel,P.J.Deitel著.施平安,譯.C++程序設計教程(第四版)[M].北京:清華大學出版社,2004.
小編推薦優秀電子期刊 《計算機工程與科學》
《計算機工程與科學》(月刊)創刊于1973年,由國防科技大學計算機學院主辦。辦刊宗旨是為計算機界同行發表有創見的學術論文,介紹有特色的科研成果,探討有新意的學術觀點提供理想園地;活躍計算機界學術氣氛,擴大國內外交流,為發展中國的計算機事業盡一點微薄之力。
轉載請注明來自發表學術論文網:http://www.zpfmc.com/dzlw/3890.html