国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內(nèi)不再提示

計算機的簡單理論模型到有限狀態(tài)機

UtFs_Zlgmcu7890 ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2017-10-13 06:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

近日周立功教授公開了數(shù)年的心血之作《程序設(shè)計與數(shù)據(jù)結(jié)構(gòu)》,電子版已無償性分享到電子工程師與高校群體下載,經(jīng)周立功教授授權(quán),特對本書內(nèi)容進行連載。

>>>>1.1狀態(tài)機

>>>1.1.1 有限狀態(tài)機

1. 起源

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

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

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

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

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

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

2.有限狀態(tài)機

有限狀態(tài)機(Finite State Machine,F(xiàn)SM)是一種抽象的機制, 它包括有限數(shù)量的狀態(tài)。因此FSM是一個狀態(tài)集,值的一個有限集合。

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

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

FSM會響應“事件”而改變狀態(tài),即將每個“事件”實現(xiàn)為一個函數(shù),當“事件”發(fā)生時,就意味著調(diào)用了一個函數(shù)。FSM也執(zhí)行動作產(chǎn)生輸出,所執(zhí)行的動作是當前狀態(tài)和輸入事件的一個函數(shù),其目的是執(zhí)行系統(tǒng)的任務。

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

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

而事件可以是外部事件和內(nèi)部事件,外部事件是在系統(tǒng)和它的執(zhí)行者之間傳遞的事件,比如,按下一個鍵和一個來自傳感器的中斷都是外部事件。內(nèi)部事件是在系統(tǒng)內(nèi)部的對象之間傳送的事件,比如,溢出異常是一個內(nèi)部事件??梢杂肬ML對4種事件建模:信號、調(diào)用、時間推移或狀態(tài)的一次改變。信號或調(diào)用可以帶有參數(shù),參數(shù)值對轉(zhuǎn)移(包括監(jiān)護條件和動作的表達式)是可見的。

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

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

監(jiān)護條件是由一個方括號括起來的布爾表達式,放在觸發(fā)器事件的后面。其表示法為“事件[條件]”(Event[Condition]),條件是某一段時間內(nèi)值為True或False。通常“事件”引起了“狀態(tài)轉(zhuǎn)換”,當事件發(fā)生時,為了發(fā)生轉(zhuǎn)換,可選的“條件”的值必須為True,可選的“動作”作為結(jié)果被執(zhí)行。

動作是與狀態(tài)轉(zhuǎn)換相關(guān)的可選的輸出,動作執(zhí)行了計算(調(diào)用相應的函數(shù)),作為狀態(tài)轉(zhuǎn)換的結(jié)果。事件導致狀態(tài)轉(zhuǎn)移,而動作是狀態(tài)轉(zhuǎn)移所產(chǎn)生的效果。動作在狀態(tài)轉(zhuǎn)移時被觸發(fā),執(zhí)行后自行終止。

● 轉(zhuǎn)換動作

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

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

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

● 進入動作

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

● 退出動作

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

實例分析

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

圖 4.8 閘機業(yè)務序列圖

如果閘機在Locked狀態(tài)收到card事件,則轉(zhuǎn)移到Unlocked狀態(tài)并執(zhí)行unlock動作,此時閘機將它的狀態(tài)改為Unlocked并調(diào)用unlock函數(shù);如果閘機在Unlocked狀態(tài)收到一個pass事件,則轉(zhuǎn)移到Locked狀態(tài)并執(zhí)行l(wèi)ock動作,此時閘機將它的狀態(tài)改為Locked并調(diào)用lock函數(shù)。

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

圖 4.9 閘機狀態(tài)圖

表4.1 閘機狀態(tài)轉(zhuǎn)移表

狀態(tài) 狀態(tài) 動作

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

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

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

4.2 完整的閘機狀態(tài)轉(zhuǎn)移表

起始狀態(tài) 事件 結(jié)束狀態(tài) 動作
Locke car Unloc unloc

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

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

    關(guān)注

    0

    文章

    52

    瀏覽量

    10679
  • 狀態(tài)機
    +關(guān)注

    關(guān)注

    2

    文章

    499

    瀏覽量

    29141
  • 周立功
    +關(guān)注

    關(guān)注

    38

    文章

    130

    瀏覽量

    38727
  • 自動機
    +關(guān)注

    關(guān)注

    1

    文章

    28

    瀏覽量

    9603

原文標題:周立功:狀態(tài)機——有限狀態(tài)機

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    十進制計算機硬件體系結(jié)構(gòu)及“獨值”量化邏輯運算革命(一)

    采用“獨值”量化邏輯理論設(shè)計十進制數(shù)字計算機,十進制網(wǎng)絡(luò)計算機,十進制模擬計算機,十進制模糊計算機,實現(xiàn)
    的頭像 發(fā)表于 01-29 09:13 ?972次閱讀
    十進制<b class='flag-5'>計算機</b>硬件體系結(jié)構(gòu)及“獨值”量化邏輯運算革命(一)

    上海計算機視覺企業(yè)行學術(shù)沙龍走進西井科技

    12月5日,由中國圖象圖形學學會青年工作委員會(下簡稱“青工委”)、上海市計算機學會計算機視覺專委會(下簡稱“專委會”)聯(lián)合主辦,上海西井科技股份有限公司、江蘇路街道商會承辦的“上海計算機
    的頭像 發(fā)表于 12-16 15:39 ?579次閱讀

    什么是狀態(tài)機?

    什么是狀態(tài)機狀態(tài)機(state machine)有5個要素: 狀態(tài)(state) 遷移(transition) 事件(event) 動作(action) 條件(guard) 狀態(tài)
    發(fā)表于 11-27 08:15

    工控與普通計算機的核心差異解析

    在工業(yè)自動化和智能制造領(lǐng)域,計算機設(shè)備作為核心控制單元,其選擇直接影響整個系統(tǒng)的穩(wěn)定性與可靠性。工控與普通計算機雖同屬計算設(shè)備,但其設(shè)計目標、性能側(cè)重和應用場景存在根本性差異。準確理
    的頭像 發(fā)表于 11-25 14:45 ?1782次閱讀
    工控<b class='flag-5'>機</b>與普通<b class='flag-5'>計算機</b>的核心差異解析

    睿遠研究院丨IO-Link規(guī)范解讀(六):主從站狀態(tài)機解析

    前言 書接上文,今天我們就來好好聊聊主從站的DL-Mode狀態(tài)機,還請各位童鞋前排坐好! 1主站狀態(tài)機解析 主站的DL-Mode狀態(tài)機有5個大狀態(tài),也是我們很熟悉的 建立通信、開始、預
    的頭像 發(fā)表于 10-28 17:34 ?6199次閱讀
    睿遠研究院丨IO-Link規(guī)范解讀(六):主從站<b class='flag-5'>狀態(tài)機</b>解析

    掌握數(shù)字設(shè)計基礎(chǔ):邁向芯片設(shè)計的第一步

    寄存器、計數(shù)器。 兩者結(jié)合,就能實現(xiàn)強大的數(shù)據(jù)處理與控制能力。 4、有限狀態(tài)機(FSM):數(shù)字系統(tǒng)的大腦 在更復雜的設(shè)計中,有限狀態(tài)機(FSM) 就像系統(tǒng)的“大腦”,通過狀態(tài)與轉(zhuǎn)移邏輯來驅(qū)動整個電路
    發(fā)表于 10-09 21:11

    【作品合集】賽昉科技VisionFive 2單板計算機開發(fā)板測評

    VisionFive 2 上為目標檢測準備軟件環(huán)境并運行 MobileNet-SSD 模型【VisionFive 2單板計算機試用體驗】VisionFive 2復古游戲改造 作者:TLLED【VisionFive 2
    發(fā)表于 09-04 09:08

    工業(yè)計算機的重要性

    工業(yè)計算機對某些行業(yè)至關(guān)重要。我們將在下面詳細解釋這些行業(yè)中的工業(yè)計算機應用。1.制造與工業(yè)自動化工業(yè)級計算機非常適合制造工廠,特別是那些想要自動化裝配過程的工廠。在這樣的環(huán)境中,工業(yè)計算機
    的頭像 發(fā)表于 07-28 16:07 ?563次閱讀
    工業(yè)<b class='flag-5'>計算機</b>的重要性

    自動化計算機經(jīng)過加固后有什么好處?

    讓我們討論一下部署堅固的自動化計算機的一些好處。1.溫度范圍寬自動化計算機經(jīng)過工程設(shè)計,配備了支持寬溫度范圍的組件,使自動化計算解決方案能夠在各種不同的極端環(huán)境中運行。自動化計算機能夠
    的頭像 發(fā)表于 07-21 16:44 ?617次閱讀
    自動化<b class='flag-5'>計算機</b>經(jīng)過加固后有什么好處?

    自動化計算機的功能與用途

    工業(yè)自動化是指利用自動化計算機來控制工業(yè)環(huán)境中的流程、機器人和機械,以制造產(chǎn)品或其部件。工業(yè)自動化的目的是提高生產(chǎn)率、增加靈活性,并提升制造過程的質(zhì)量。工業(yè)自動化在汽車制造中體現(xiàn)得最為明顯,其中許多
    的頭像 發(fā)表于 07-15 16:32 ?742次閱讀
    自動化<b class='flag-5'>計算機</b>的功能與用途

    工業(yè)計算機與商用計算機的區(qū)別有哪些

    能夠高效穩(wěn)定地運行,減少停機時間,確保生產(chǎn)效率。那么工業(yè)計算機與普通商用計算機有哪些區(qū)別呢?一、組件選擇與制造質(zhì)量:工業(yè)級組件:使用更寬溫度范圍(如-20°C60
    的頭像 發(fā)表于 07-10 16:36 ?741次閱讀
    工業(yè)<b class='flag-5'>計算機</b>與商用<b class='flag-5'>計算機</b>的區(qū)別有哪些

    一文帶你了解工業(yè)計算機尺寸

    工業(yè)計算機是現(xiàn)代自動化、人工智能(AI)和邊緣計算的支柱。這些堅固耐用的系統(tǒng)旨在承受惡劣的環(huán)境,同時為關(guān)鍵應用提供可靠的性能。然而,由于有這么多可用的外形尺寸,為您的工業(yè)計算機選擇合適的尺寸可能是
    的頭像 發(fā)表于 04-24 13:35 ?1039次閱讀
    一文帶你了解工業(yè)<b class='flag-5'>計算機</b>尺寸

    計算機網(wǎng)絡(luò)入門指南

    計算機網(wǎng)絡(luò)是指將地理位置不同且具有獨立功能的多臺計算機及其外部設(shè)備,通過通信線路連接起來,在網(wǎng)絡(luò)操作系統(tǒng)、網(wǎng)絡(luò)管理軟件及網(wǎng)絡(luò)通信協(xié)議的管理和協(xié)調(diào)下,實現(xiàn)資源共享和信息傳遞的計算機系統(tǒng)。
    的頭像 發(fā)表于 04-22 14:29 ?2244次閱讀
    <b class='flag-5'>計算機</b>網(wǎng)絡(luò)入門指南

    軟通計算機重磅發(fā)布DeepSeek大模型一體產(chǎn)品

    3月20日,華為中國合作伙伴大會2025在深圳盛大啟幕。大會上,軟通計算機重磅發(fā)布了“DeepSeek大模型一體產(chǎn)品”,為用戶提供一站式的AI應用算力平臺,讓大模型的落地變得前所未有
    的頭像 發(fā)表于 03-22 10:40 ?1536次閱讀
    軟通<b class='flag-5'>計算機</b>重磅發(fā)布DeepSeek大<b class='flag-5'>模型</b>一體<b class='flag-5'>機</b>產(chǎn)品

    NVIDIA 宣布推出 DGX Spark 個人 AI 計算機

    的 DGX? 個人 AI 超級計算機。 ? DGX Spark(前身為 Project DIGITS)支持 AI 開發(fā)者、研究人員、數(shù)據(jù)科學家和學生,在臺式電腦上對大模型進行原型設(shè)計、微調(diào)和推理。用
    發(fā)表于 03-19 09:59 ?779次閱讀
       NVIDIA 宣布推出 DGX Spark 個人 AI <b class='flag-5'>計算機</b>