色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

計算機的簡單理論模型到有限狀態機

UtFs_Zlgmcu7890 ? 來源:互聯網 ? 作者:佚名 ? 2017-10-13 06:52 ? 次閱讀

近日周立功教授公開了數年的心血之作《程序設計與數據結構》,電子版已無償性分享到電子工程師與高校群體下載,經周立功教授授權,特對本書內容進行連載。

>>>>1.1狀態機

>>>1.1.1 有限狀態機

1. 起源

自動機是計算機的簡單理論模型,通常將自動機分為有限自動機和圖靈機。盡管有限自動機更簡單,但在定義圖靈機之后數年,這個概念才被提出來。

沃倫·麥卡洛克當時正在研究腦部創傷治療精神病人,他想研究出一種解釋大腦如何工作的理論。沃爾特·皮茨最初被培養成為一位邏輯學學者,但是卻在全新的數學生物物理學領域發表論文。兩人于1942年相識,認識到他們對相同類型的問題感興趣,于是開始聯手研究彼此取長補短。他們發表了第一篇論文“神經活動中內在的思想邏輯演算”(A Logical Calculus of Ideas Immanent in Nervous Activity),在這篇論文中,他們借助細胞對神經元進行了建模。雖然每個細胞都有多個輸入,但只有一個輸出。一個細胞的輸出必須成為另一個細胞的輸入,輸入的類型有兩種——抑制的和興奮的。如果興奮的輸入超過了一定閾值,且沒有抑制輸入,細胞將會被激活。雖然細胞的集合和它們之間的連接被兩人稱為神經網絡,但他們沒有意識到,這是大腦實際運作的簡化模型,通過研究神經網絡可以得知神經網絡如何處理邏輯活動。他們的網絡模型與神經元和人類的大腦具備相同的特征,因此他們希望自己的研究能夠揭示人類邏輯推理的奧秘。

他們的論文引起了計算機專家約翰·馮·諾依曼和著名的數學家、哲學家諾伯特·維納的注意,兩位學者對這篇論文印象深刻。維納看到了其中蘊含的力量,他意識到,這一觀點具有廣泛的適應性,可以發展出控制論。控制論將催生可以學習的機器的理念,反過來也會孕育人工智能。馮·諾依曼認識到,麥卡洛克和皮茨對細胞和細胞間連接的描述,同樣可以應用到電子組件和計算中。他在《關于EDVAC的報告》(First draft of a report on the EDVAC)一文中對此進行了詳細的描述,正是這篇論文奠定了現代計算機構建的基石。

另一個受到麥卡洛克和皮茨影響的人是馬文·明斯基,1954年明斯基在他的博士論文中對神經網絡進行了研究,展示了如何使用這些網絡對自動機進行全面的描述。明斯基的著作《計算:有限和無限機器》是這一領域的經典之作,高屋建瓴地描述了自動機和計算理論。通過對比物理學,明斯基在這本書的前言中解釋了這種使用理論機器研究的理論為什么能夠發揮作用。

與物理學使用統計定義事件的方法不同,我們是用邏輯定義的計算或表達式。它們被聯系在一起,不是通過幾何或能量性質,而是通過它們與類似機器或類似定義之間的關系。我們能夠使用機器組件進行簡單的交互,應用最顯而易見的邏輯命題。面對等價的現實物理機器時,我們必須解決極端復雜的分析等式。

自動機被劃分為兩類:一類具有有限內存,另一類具有無限內存下面只研究有限的一類。

2.有限狀態機

有限狀態機(Finite State Machine,FSM)是一種抽象的機制, 它包括有限數量的狀態。因此FSM是一個狀態集,值的一個有限集合。

閘機是一個常見的狀態機,這是《敏捷軟件開發——原則、模式與實戰》一書中展示的一個經典示例。在這里,將以香港地鐵站的閘機為例介紹有限狀態機,其用例文本摘要如下:

通常閘機默認是關閉的,當閘機收到有效卡信息時,則打開閘機;當乘客通過后,則關閉閘機。如果有人非法通過,則閘機會發出連續的“滴、滴、滴……”報警聲;如果閘機已經打開,而乘客還在刷卡,則閘機會發出“滴”的聲音提示乘客,并顯示“票價和余額,閘機已經打開,請通過,謝謝!”

FSM會響應“事件”而改變狀態,即將每個“事件”實現為一個函數,當“事件”發生時,就意味著調用了一個函數。FSM也執行動作產生輸出,所執行的動作是當前狀態和輸入事件的一個函數,其目的是執行系統的任務。

事件是指在某個時刻發生的事情,比如,閘機的“刷卡(card)”事件和“通過(pass)”事件,狀態是系統的狀態。事件表示時間點,狀態表示時間段,狀態對應對象接收的兩次事件之間的時間間隔。比如,閘機可能處于的狀態:Locked狀態和Unlocked狀態。

轉換是從一個狀態轉移為另一個狀態的路徑,引發它的事件被稱為事件觸發器,簡稱觸發。而轉換可以觸發動作——表示對象的某個方法的調用,比如,當事件card發生時,閘機從Locked狀態轉換為Unlocked狀態并執行打開閘機動作。轉換還有一個監護條件邏輯測試——或布爾測試,只有測試通過時轉換才發生。

而事件可以是外部事件和內部事件,外部事件是在系統和它的執行者之間傳遞的事件,比如,按下一個鍵和一個來自傳感器的中斷都是外部事件。內部事件是在系統內部的對象之間傳送的事件,比如,溢出異常是一個內部事件。可以用UML對4種事件建模:信號、調用、時間推移或狀態的一次改變。信號或調用可以帶有參數,參數值對轉移(包括監護條件和動作的表達式)是可見的。

信號是一個異步事件,在實例間異步傳遞消息的通信規約。消息是一個具名對象,信號是消息的類型,象類一樣,信號也有屬性和操作。而信號事件是指發送或接收信號的事件,其差別在于信號是對象之間的消息,而信號事件是指在某時某刻發生的事情。

如果事件沒有產生任何效果,則FSM保持狀態不變。通常下一個狀態依賴于當前狀態和輸入事件,有時狀態轉移會導致輸出動作。在某些情況下,雖然一個事件不會立即導致狀態轉換,但它會影響隨后的狀態轉換。如果事件已經產生,則可以將該情況保存為一個條件,在之后進行檢驗。

監護條件是由一個方括號括起來的布爾表達式,放在觸發器事件的后面。其表示法為“事件[條件]”(Event[Condition]),條件是某一段時間內值為True或False。通?!笆录币鹆恕盃顟B轉換”,當事件發生時,為了發生轉換,可選的“條件”的值必須為True,可選的“動作”作為結果被執行。

動作是與狀態轉換相關的可選的輸出,動作執行了計算(調用相應的函數),作為狀態轉換的結果。事件導致狀態轉移,而動作是狀態轉移所產生的效果。動作在狀態轉移時被觸發,執行后自行終止。

● 轉換動作

轉換動作是指從某一狀態轉換為另一狀態時產生的動作,該動作也可能發生在狀態轉換至自身狀態時。為了描述狀態圖中的動作,將狀態轉換表示為:事件/動作(Event/Action)或事件[條件]/動作(Event[Condition]/Action),比如,card/unlock。

考慮閘機狀態圖中的動作:當事件card發生時,閘機從Locked狀態轉換為Unlocked狀態,發生在該狀態轉移中的動作是獲取card信息。作為狀態機的輸出,該動作顯示票價和余額并開鎖。

通常多個動作可以和同一個狀態轉換關聯,因為動作都是并發執行的,所以這些動作之間不能有任何的相互依賴關系。比如,不能同時發生兩個并發的事件——計算余額和顯示余額,因為這兩個動作有先后順序的依賴關系,在余額計算之前不無法顯示出來。為了避開這個問題,可以引入“計算余額”的中間狀態。動作“計算余額”在進入該狀態時執行,動作“顯示余額”在退出該狀態時執行。

● 進入動作

進入動作是指在開始進入該狀態時觸發的即時動作,使用保留字“進入(entry)”表示,在狀態框里表示為“進入/動作(entry/Action),即entry/[action-list]?!?/span>

● 退出動作

退出動作是指在離開該狀態時觸發的即時動作,使用保留字“退出(exit)”表示,在狀態框里表示為“退出/動作(exit/Action),即exit/[action-list]。”

實例分析

由于狀態圖源自于用例,因此要從用例開發狀態圖。首先需要用例中的一個特定的場景,即從用例中的一條特定路徑描述對象之間的交互,正常的業務序列詳見圖 4.8(a)。

圖 4.8 閘機業務序列圖

如果閘機在Locked狀態收到card事件,則轉移到Unlocked狀態并執行unlock動作,此時閘機將它的狀態改為Unlocked并調用unlock函數;如果閘機在Unlocked狀態收到一個pass事件,則轉移到Locked狀態并執行lock動作,此時閘機將它的狀態改為Locked并調用lock函數。

如圖 4.9 (a)所示為正常的業務序列圖對應狀態圖,由于閘機處于打開狀態或關閉狀態時,“card()”或“pass()”操作對應的處理是不同的,因此難以用一個序列圖清晰地描繪對象交互與狀態的關系。如果以業務實體(閘機)的狀態(打開狀態或關閉狀態)為核心,將執行者與系統交互的具體操作稱之為“事件”,比如,card()、pass()等。

圖 4.9 閘機狀態圖

表4.1 閘機狀態轉移表

狀態 狀態 動作

這些圖是由狀態、事件、轉換和動作組成的有向圖,圓角矩形表示閘機的狀態,閘機始終保持狀態直到轉換促使它改變狀態。轉換用導向箭頭表示,通常由收到觸發事件的元素發起。當輸入的事件與有向邊上的事件匹配時,閘機將會從一個狀態轉換到另一個狀態。

其中包含了起始狀態、觸發轉移事件、終止狀態和要執行的動作,將其轉換為狀態轉移表的表格,詳見表 4.1。由于狀態轉移表列出了所有狀態下,接收所有事件后的狀態是如何變化的,因此很容易幫助發現遺漏了哪些狀態轉移。雖然狀態轉移表的優點是直觀,但其缺點也是非常明顯的,那就是難以確認狀態轉移的完整性。

顯然,通用狀態圖與狀態表描述狀態機的行為,開發者可以很容易檢查那些未知的,甚至沒有處理的情況。比如,閘機在Unlocked狀態下沒有處理card事件的轉移,且在Locked狀態下也沒有處理pass事件的轉移。假設如果閘機在Locked狀態收到一個非法pass事件,則狀態不變并執行alarm動作,其業務序列圖詳見圖 4.8(b)。如果乘客不熟悉流程,當閘機已經轉移到Unlocked狀態時,而乘客還在刷卡(card),則閘機會發出“滴”的聲音提示乘客,并顯示“票價和余額,閘機已經打開,請通過,謝謝!” 其業務序列圖詳見圖 4.8(c),完整的閘機狀態轉移表詳見表 4.2

4.2 完整的閘機狀態轉移表

起始狀態 事件 結束狀態 動作
Locke car Unloc unloc

在關閉狀態下,當需要增加報警功能時,只需要新增一條事件/動作線,詳見圖 4.9(b)。同理,增加一條事件/動作線表示閘門在已經打開時繼續刷卡的情況,詳見圖 4.9(c)。由于這兩種情況不會改變閘機的狀態,因此導向箭頭起始和結束均為同一狀態。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 有限狀態機
    +關注

    關注

    0

    文章

    52

    瀏覽量

    10323
  • 狀態機
    +關注

    關注

    2

    文章

    492

    瀏覽量

    27529
  • 周立功
    +關注

    關注

    38

    文章

    130

    瀏覽量

    37616
  • 自動機
    +關注

    關注

    1

    文章

    28

    瀏覽量

    9261

原文標題:周立功:狀態機——有限狀態機

文章出處:【微信號:Zlgmcu7890,微信公眾號:周立功單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Simulink中的狀態機建模方法 Simulink數據可視化與分析功能

    1. Simulink中的狀態機建模方法 1.1 理解狀態機的基本概念 在開始建模之前,了解狀態機的基本概念是必要的。狀態機由以下幾個部分組成:
    的頭像 發表于 12-12 09:27 ?280次閱讀

    計算機視覺技術的AI算法模型

    計算機視覺技術作為人工智能領域的一個重要分支,旨在使計算機能夠像人類一樣理解和解釋圖像及視頻中的信息。為了實現這一目標,計算機視覺技術依賴于多種先進的AI算法模型。以下將詳細介紹幾種常
    的頭像 發表于 07-24 12:46 ?805次閱讀

    如何在FPGA中實現狀態機

    在FPGA(現場可編程門陣列)中實現狀態機是一種常見的做法,用于控制復雜的數字系統行為。狀態機能夠根據當前的輸入和系統狀態,決定下一步的動作和新的狀態。這里,我們將詳細探討如何在FPG
    的頭像 發表于 07-18 15:57 ?568次閱讀

    玩轉Spring狀態機

    說起Spring狀態機,大家很容易聯想到這個狀態機和設計模式中狀態模式的區別是啥呢?沒錯,Spring狀態機就是狀態模式的一種實現,在介紹S
    的頭像 發表于 06-25 14:21 ?934次閱讀
    玩轉Spring<b class='flag-5'>狀態機</b>

    工業計算機與普通計算機的區別

    在信息化和自動化日益發展的今天,計算機已經成為了我們日常生活和工作中不可或缺的工具。然而,在計算機領域中,工業計算機和普通計算機雖然都具備基本的計算
    的頭像 發表于 06-06 16:45 ?1366次閱讀

    關于SMU狀態機的問題求解

    我有一些關于 SMU 狀態機的問題。 假設由于某種原因,SMU 已進入故障狀態。 手冊指出,要返回運行狀態并將 FSP 恢復無故障狀態,應
    發表于 05-29 08:18

    在Verilog中實現Moore型和Mealy型狀態機的方法簡析

    編寫能夠被綜合工具識別的狀態機,首先需要理解狀態機的基本概念和分類。狀態機(FSM)是表示有限狀態以及在這些
    的頭像 發表于 05-01 11:38 ?1580次閱讀

    【量子計算機重構未來 | 閱讀體驗】+ 了解量子疊加原理

    ,發現只要是涉及量子計算機原理方面的資料,其中提及最多的就是量子疊加,直接忽視專業級大神的那些不太友好的解釋,只看科普性的解釋:量子疊加原理是量子力學的基本原理之一;量子比特可以同時處于多個狀態,這種
    發表于 03-13 17:19

    【量子計算機重構未來 | 閱讀體驗】+ 初識量子計算機

    話對我觸動很大:量子計算機不僅能解決身邊的問題,還能解決社會層面的重大課題。 看來真是“天下武功,唯快不破”,只要處理速度足夠快,海量數據處理就像計算1+1一樣簡單,可以想象一下,用量子計算機
    發表于 03-05 17:37

    什么是有限狀態機?如何解決傳統有限狀態機狀態爆炸」問題?

    有限狀態機(Finite State Machine,簡稱FSM)是一種用來進行對象行為建模的工具,其作用主要是描述對象在它的生命周期內所經歷的狀態序列以及如何響應來自外界的各種事件。
    的頭像 發表于 02-17 16:09 ?6220次閱讀
    什么是<b class='flag-5'>有限狀態機</b>?如何解決傳統<b class='flag-5'>有限狀態機</b>「<b class='flag-5'>狀態</b>爆炸」問題?

    Verilog狀態機+設計實例

    的是有限狀態機(Finite-State Machine,FSM),簡稱為狀態機,表示在有限狀態以及這些狀態之間的轉移和動作等行為的數學
    的頭像 發表于 02-12 19:07 ?4059次閱讀
    Verilog<b class='flag-5'>狀態機</b>+設計實例

    計算機系統如何應對大模型時代的挑戰與機遇

    “操作系統管理著計算機的資源和進程,以及所有的硬件和軟件。計算機的操作系統讓用戶在不需要了解計算機語言的情況下與計算機進行交互?!边@是我們對計算機
    發表于 01-23 11:06 ?544次閱讀
    <b class='flag-5'>計算機</b>系統如何應對大<b class='flag-5'>模型</b>時代的挑戰與機遇

    狀態機該怎么監控

    狀態機卡住的場景——通過狀態跳轉條件的DFX信號去判斷卡住的原因
    的頭像 發表于 01-15 10:03 ?416次閱讀
    <b class='flag-5'>狀態機</b>該怎么監控

    量子計算機的作用有哪些

    認為是未來計算機技術的重要發展方向。 一、量子計算機的基本概念 量子計算機的核心是量子比特,與經典計算機中的比特不同,量子比特可以同時處于0和1的
    的頭像 發表于 12-30 14:32 ?1951次閱讀

    Spring狀態機的實現原理和使用方法

    說起 Spring 狀態機,大家很容易聯想到這個狀態機和設計模式中狀態模式的區別是啥呢?沒錯,Spring 狀態機就是狀態模式的一種實現,在
    的頭像 發表于 12-26 09:39 ?1977次閱讀
    Spring<b class='flag-5'>狀態機</b>的實現原理和使用方法
    主站蜘蛛池模板: 国产一区二区无码蜜芽精品| 99久久国内精品成人免费| 三级黄色在线看| 欧美午夜理伦三级在线观看| 美女露100%全身无遮挡| 久久国产精品免费网站| 精品国产乱码久久久久久软件 | 亚洲91av| 向日葵视频app下载18岁以下勿看| 日韩免费一区| 三级黄.色| 天天爽夜夜爽8888视频精品| 十分钟免费视频大全在线| 色综合伊人色综合网站| 色 花 堂 永久 网站| 色网址在线观看| 网红刘婷hd国产高清| 午夜成a人片在线观看| 亚州性夜夜射在线观看| 亚洲AV精品无码喷水直播间| 亚洲AV无码一区二区三区牛牛| 亚洲 自拍 清纯 综合图区| 亚洲国产高清在线| 亚洲最大日夜无码中文字幕| 有码在线播放| 97在线播放视频| 国产午夜精品理论片影院 | 亚洲在线v观看免费国| 草莓视频app深夜福利| 四虎亚洲中文字幕永久在线| 国产高清超清在线播放| 国产强奷伦奷片| 暖暖的视频完整视频免费韩国| 天天狠狠弄夜夜狠狠躁·太爽了| 又爽又黄又粗又大免费视频| 成人短片迅雷下载| 久久电影午夜| 兽交白浆喷水高潮| 20岁αsrian男同志免费| 国产精品久久久久久人妻香蕉| 麻豆精品传媒2021网站入口|