這篇主要是想寫「誰在研究排隊理論?」,我有詢問過ycwang老師,他是說有幾個地方,記得沒錯的話,會在下面列出來。為什麼要知道呢?其實做任何事都會有個憧憬,總是想去某個地方看看,而這個地方具有其重要性、指標性的意義。
比方說想到浪漫,就會想去歐洲看看;想到設計,就會想到北歐看看;想到美國,就想去紐約看看...等等。有點類似朝聖的味道,排隊理論也是如此,總想去那個研究特別發達的學校或是單位看看,看他們在做些什麼。
全世界研究Queueing Theory可以分為兩類,一個是理論(Theory) ,另一個是應用(Application),美國偏向應用,歐洲偏向理論,大致上是這樣。台灣呢?是偏向"代工"嗎...。
有個國外網站專門蒐集排隊理論的資訊,請參考http://web2.uwindsor.ca/math/hlynka/queue.html
以下為有研究Queueing Theory的知名單位:(陸續補充)
台灣(Taiwan)
National Tsing Hua University
國立清華大學http://www.nthu.edu.tw/
美國(United States of America, USA)
University of Illinois at Urbana-Champaign
伊利諾大學香檳分校,http://illinois.edu/
法國(France)
the French national institute for research in computer science and control
法國國家電腦科學與控制研究院,簡稱INRIA
http://www.inria.fr/index.en.html
荷蘭(Netherlands)
德國(Germany)
To record my study for the queueing theory, and wish these articles can help you while you are learning this subject. Besides, I write this blog to deeply appreciate my teacher(Prof. Wang,Yung-Chung).
2009年3月31日 星期二
SimEvents Library
先將SimEvents中的Library整理成清單,之後會用到,依照字母排列,也剛好是Simulink的排列方式:
- Attributes
- Get Attribute
- Set Attribute
- Entity Management
- Entity Combiner
- Entity Splitter
- Entity Combiner
- Event Translation
- Entity Departure Event to Function-Call Event
- Signal-Based Event to Function-Call Event
- Entity Departure Event to Function-Call Event
- Gates
- Enabled Gate
- Release Gate
- Enabled Gate
- Generators
- Entity Generators
- Event-Based Entity Generator
- Time-Based Entity Generator
- Event-Based Entity Generator
- Event Generators
- Entity-Based Function-Call Event Generator
- Signal-Based Function-Call Event Generator
- Entity-Based Function-Call Event Generator
- Signal Generators
- Event-Based Random Number
- Event-Based Sequence
- Event-Based Random Number
- Entity Generators
- Probes
- Entity Departure Counter
- Entity Departure Counter
- Queues
- FIFO Queue
- LIFO Queue
- Priority Queue
- FIFO Queue
- Routing
- Input Switch
- Output Switch
- Path Combiner
- Replicate
- Input Switch
- Servers
- Infinite Server
- N-Server
- Single Server
- Infinite Server
- Signal Management
- Initial Value
- Singal Latch
- Initial Value
- SimEvents Ports and Subsystems
- Conn
- Din
- Discrete Event Subsystem
- Dout
- Subsystem Configuration
- Conn
- SimEvents Sinks
- Attribute Scope
- Discrete Event Signal to Workspace
- Entity Sink
- Instantaneous Entity Counting Scope
- Instantaneous Event Counting Scope
- Signal Scope
- X-Y Attribute Scope
- X-Y Signal Scope
- Attribute Scope
- SimEvents User-Defined Functions
- Attribute Function
- Attribute Function
- Timing
- Cancel Timeout
- Read Timer
- Schedule Timeout
- Start Timer
- Cancel Timeout
標籤:
tool
SimEvents Lesson 1
當你開始玩SimEvents這套軟體時,有兩個是你要知道的概念,一個是Entity,另一個是Event。整套SimEvents主要是模擬Discrete-Event Simulation (DES)的情境,其中模擬的主體是Entity,而Entity之間的動作是由Event所控制。
Entity
什麼是Entity(中文,翻譯成實體、個體、本質,以下用"實體"說明)呢?DES主要是涉及離散項目(discrete items)的模擬,而此離散項目則稱之為Entity。依照模擬的環境不同,其Entity的實物也不一樣,比方說你要模擬網路行為,則Entity就是封包(packet),如果你要模擬等公車的時間,則Entity就是乘客(passenger)。
這麼解釋好了,DES將現實環境中的情形映射(mapping)到simulation當中來處理,抽象層面的項目是Entity,具體層面的項目則是你看得到的東西。
另外你要注意的地方有,Entity在SimEvents軟體中是看不到的,沒有任何表是符號(graphical representation)來顯示Entity,那你要如何知道有沒有動作呢?要藉由其他統計(statistics)的方式來觀察。還有,Entity可以攜帶其他資料,由稱之為Attribute的項目附加在Entity當中來攜帶資料,有點像物件導向(Object-Oriented)的概念,Entity像是類別(Class)的實體(instance),而Attribute像是欄位(field)。
Event
什麼是Event(事件)?DES中的瞬間變化(instantaneous discrete incident)則稱之為Event,白話一點的講法就是動作(action),讓Simulation的系統產生一些變動。Event可以改變Entity、Entity中的Attribute、或是激發其他Event。我認為SimEvents中較難學的是Event這個部分,需要比較久的時間來學習才會有感覺。
Event可能會同時發生,這種事件稱之為Simultaneous Events,即使電腦上的運作是sequential的方式來執行,在多數情況下這不會有多大問題(User Guide中說的...),這時候就要注意Event的processing sequence(要去設定Generation Event Priority)。
用物件導向(Object-Oriented)的概念來說,Event就像是方法(method),你可以利用Event去控制實體(instance)或是欄位(field),或是呼叫其他方法(method)。
同樣的,Event在SimEvents軟體中是看不到的,沒有任何表是符號(graphical representation)來顯示Event,要觀察有沒有動作,要從其他間接的方式來觀察。
Entity
什麼是Entity(中文,翻譯成實體、個體、本質,以下用"實體"說明)呢?DES主要是涉及離散項目(discrete items)的模擬,而此離散項目則稱之為Entity。依照模擬的環境不同,其Entity的實物也不一樣,比方說你要模擬網路行為,則Entity就是封包(packet),如果你要模擬等公車的時間,則Entity就是乘客(passenger)。
這麼解釋好了,DES將現實環境中的情形映射(mapping)到simulation當中來處理,抽象層面的項目是Entity,具體層面的項目則是你看得到的東西。
另外你要注意的地方有,Entity在SimEvents軟體中是看不到的,沒有任何表是符號(graphical representation)來顯示Entity,那你要如何知道有沒有動作呢?要藉由其他統計(statistics)的方式來觀察。還有,Entity可以攜帶其他資料,由稱之為Attribute的項目附加在Entity當中來攜帶資料,有點像物件導向(Object-Oriented)的概念,Entity像是類別(Class)的實體(instance),而Attribute像是欄位(field)。
Event
什麼是Event(事件)?DES中的瞬間變化(instantaneous discrete incident)則稱之為Event,白話一點的講法就是動作(action),讓Simulation的系統產生一些變動。Event可以改變Entity、Entity中的Attribute、或是激發其他Event。我認為SimEvents中較難學的是Event這個部分,需要比較久的時間來學習才會有感覺。
Event可能會同時發生,這種事件稱之為Simultaneous Events,即使電腦上的運作是sequential的方式來執行,在多數情況下這不會有多大問題(User Guide中說的...),這時候就要注意Event的processing sequence(要去設定Generation Event Priority)。
用物件導向(Object-Oriented)的概念來說,Event就像是方法(method),你可以利用Event去控制實體(instance)或是欄位(field),或是呼叫其他方法(method)。
同樣的,Event在SimEvents軟體中是看不到的,沒有任何表是符號(graphical representation)來顯示Event,要觀察有沒有動作,要從其他間接的方式來觀察。
標籤:
tool
2009年3月24日 星期二
Cause of Interview
這是西元2004年5月的訪問資料,放在www上做為記錄,期待未來可以做為歷史的佐證。內容說明當時選擇訪問老師的理由,是從我的檔案庫中翻閱出來的一段歷史資料,經過四年多,至今我還是尊崇我的老師,以及感謝他對學生們的指導。當時我是大學二年級(二下)。
下述內容從我當時「生涯發展與選擇」期末作業中節錄出來。
<內容開始>
我所選擇的受訪者是我目前的班級導師,他是我們二年級上學期的時候開始擔任我們班上的導師,在那時候他有開一門選修的課程,課程名稱叫做「電腦網路」,當時我對這方面完全不了解,想說去聽聽看,我記得第一次上課的時候,老師用投影片大概講述電腦網路內容,聽完之後覺得很有興趣,於是就繼續修這門課程。
老師不管是在敬業與專業方面,我認為都是可以值得學習的地方。在專業方面,他之前有在外面的公司上班過,因此擁有豐富的實務經驗,他曾說過他有做過大系統的經驗,從無到有的完成一個大系統。另外,理論方面他了解很透徹,他能夠用很簡單的話講述一個原理,讓我們學習更加愉快,我認為如果老師沒有很了解的話,大概也很難真正表達一個原理,可見老師真的是很厲害。
在敬業方面,老師授課都有製作投影片,並且利用投影片輔助教學,課堂上也常常利用黑板圖解說明原理,對教學做了充分的準備。此外,我比較佩服的是他不是一位要求成績的老師,而是一位要求「誠信」的老師,我們上課定期都有作業,他要求作業要自己寫,寫多少算多少,不要抄襲別人的,他認為如果現在就學會抄襲別人的,以後畢業之後到職場上也會如此,所以他不希望我們這麼做。這一點讓我很佩服與尊敬,因為現在是利益導向的社會,誠信往往是被人忽略的,導致一些問題產生。
我認為他在為人處世方面都是一位值得學習的對象,而且和老師相處的過程,他讓我感覺很愉快,可能是他對事情的態度都很樂觀吧!還有一點,我覺得他的價值觀都很「健康」,我很認同他的一些想法。
綜觀以上的一些因素,我選擇他作為這次訪談的對象,加上電腦網路也是電機領域的一部分,我可以更深入了解老師以前工作的職務內容,作為我未來選擇職業的參考依據。
<內容結束>
下述內容從我當時「生涯發展與選擇」期末作業中節錄出來。
<內容開始>
我所選擇的受訪者是我目前的班級導師,他是我們二年級上學期的時候開始擔任我們班上的導師,在那時候他有開一門選修的課程,課程名稱叫做「電腦網路」,當時我對這方面完全不了解,想說去聽聽看,我記得第一次上課的時候,老師用投影片大概講述電腦網路內容,聽完之後覺得很有興趣,於是就繼續修這門課程。
老師不管是在敬業與專業方面,我認為都是可以值得學習的地方。在專業方面,他之前有在外面的公司上班過,因此擁有豐富的實務經驗,他曾說過他有做過大系統的經驗,從無到有的完成一個大系統。另外,理論方面他了解很透徹,他能夠用很簡單的話講述一個原理,讓我們學習更加愉快,我認為如果老師沒有很了解的話,大概也很難真正表達一個原理,可見老師真的是很厲害。
在敬業方面,老師授課都有製作投影片,並且利用投影片輔助教學,課堂上也常常利用黑板圖解說明原理,對教學做了充分的準備。此外,我比較佩服的是他不是一位要求成績的老師,而是一位要求「誠信」的老師,我們上課定期都有作業,他要求作業要自己寫,寫多少算多少,不要抄襲別人的,他認為如果現在就學會抄襲別人的,以後畢業之後到職場上也會如此,所以他不希望我們這麼做。這一點讓我很佩服與尊敬,因為現在是利益導向的社會,誠信往往是被人忽略的,導致一些問題產生。
我認為他在為人處世方面都是一位值得學習的對象,而且和老師相處的過程,他讓我感覺很愉快,可能是他對事情的態度都很樂觀吧!還有一點,我覺得他的價值觀都很「健康」,我很認同他的一些想法。
綜觀以上的一些因素,我選擇他作為這次訪談的對象,加上電腦網路也是電機領域的一部分,我可以更深入了解老師以前工作的職務內容,作為我未來選擇職業的參考依據。
<內容結束>
標籤:
talking
Introduction to Stateflow
Stateflow軟體當中,比較常用的功能應該是Stateflow Chart(中文沒有人翻譯,我稱之為"狀態流程圖"),在 Simulink中是個Block(區塊),所謂的Stateflow Chart其實就是Finite-State Machine。
Stateflow軟體較特殊的是他有自己的編輯器(editor)和除錯器(debugger),其目的就是:你可以和你的系統獨立地分開設計開發。
建置Stateflow Chart有下列步驟和程序:
Stateflow軟體較特殊的是他有自己的編輯器(editor)和除錯器(debugger),其目的就是:你可以和你的系統獨立地分開設計開發。
建置Stateflow Chart有下列步驟和程序:
- Define the interface to Simulink
定義和Simulink連結的介面
↓ - Define the states for modeling each mode of operation
定義模型中每個運作模式的狀態
↓ - Define state actions an variables
定義狀態動作和變數
↓ - Define the transitions between states
定義狀態之間的轉移條件
↓ - Decide how to trigger the chart
決定如何觸發狀態流程圖
↓ - Simulate the chart
進行狀態流程圖的模擬
↓↑ - Debug the chart
對狀態流程圖進行除錯動作
標籤:
tool
2009年3月23日 星期一
Simulink Event-Based Modeling
介紹一下Simulink中的Event-Based Modeling這部分的家族,包含兩個軟體:SimEvents(2.2版)和Stateflow(7.1版),這兩個軟體有個特色,主要是用來模擬Discrete-Event Simulation (DES)的情境。
兩者目的又有點差異,SimEvents目的為模型化(model)與模擬(simulate)用途,而Stateflow目的則為設計(design)和模擬(simulate),若能將兩者巧妙的結合,應該可能設計出完美系統!(I hope.)。
這麼說好了,對於一種系統是Event-Driven Systems(或稱Reactive Systems)來說,這系統的狀態由事件所驅動,因此會是Discrete的情形,所以我們要模擬這樣的系統,則需要像SimEvents和 Stateflow的工具,用來Event-Based的Model和simulate。
另外一種系統是Time-Based Systems,這種系統的模擬主要是simulink的強項,有更多的軟體支援這塊範疇,稱為Time-Based Simulation。
兩者目的又有點差異,SimEvents目的為模型化(model)與模擬(simulate)用途,而Stateflow目的則為設計(design)和模擬(simulate),若能將兩者巧妙的結合,應該可能設計出完美系統!(I hope.)。
這麼說好了,對於一種系統是Event-Driven Systems(或稱Reactive Systems)來說,這系統的狀態由事件所驅動,因此會是Discrete的情形,所以我們要模擬這樣的系統,則需要像SimEvents和 Stateflow的工具,用來Event-Based的Model和simulate。
另外一種系統是Time-Based Systems,這種系統的模擬主要是simulink的強項,有更多的軟體支援這塊範疇,稱為Time-Based Simulation。
- 要打開SimEvent的Libraby請輸入:simeventslib
- 要打開Stateflow的Libraby請輸入:sflib
- 要叫出Simulink的所有Library請輸入:simulink
標籤:
tool
2009年3月22日 星期日
Simulink
因為研究的關係,需要用到Simulink這套工具,簡單介紹一下Simulink的精神。
Simulink可以用來達成三個目的:模型化(model)、模擬(simulate)、分析(analyze)。其對象是系統(system),對系統建置模型、對系統進行模擬、對系統進行分析,讓我們調整系統的一些參數,看看會發生什麼事情。
Simulink可以模擬線性系統(linear)和非線性系統(nonlinear),而且支援連續時間(continuous time)跟離散時間(sampled time)的模擬,甚至是混合型時間(hybrid,就是連續和離散時間混合)的模擬,真的是非常強大。
重點來了,做以上這些事情,我認為最終目的其實是要設計(design),達到Model-Based Design,先分析之後再來設計,藉由模型的方式來設計出我們想要的系統,而Simulink提供graphical user interface (GUI)的方式,使得我們更容易操作,就像終端機時代進化到視窗時代的感覺!
此模型(Model)是階層式(hierarchical)架構的來建置,可以由上到下(top-down)或是由下到上(bottom-up),所以我們可以擁有不同的視野來看待一個系統!
這時候有個問題:你要用模型化的方式來設計,首先必須得到系統的模型(通常式數學模型),那要如何得到這個系統的模型呢?
系統模型化過程的步驟有六個:
Simulink可以用來達成三個目的:模型化(model)、模擬(simulate)、分析(analyze)。其對象是系統(system),對系統建置模型、對系統進行模擬、對系統進行分析,讓我們調整系統的一些參數,看看會發生什麼事情。
Simulink可以模擬線性系統(linear)和非線性系統(nonlinear),而且支援連續時間(continuous time)跟離散時間(sampled time)的模擬,甚至是混合型時間(hybrid,就是連續和離散時間混合)的模擬,真的是非常強大。
重點來了,做以上這些事情,我認為最終目的其實是要設計(design),達到Model-Based Design,先分析之後再來設計,藉由模型的方式來設計出我們想要的系統,而Simulink提供graphical user interface (GUI)的方式,使得我們更容易操作,就像終端機時代進化到視窗時代的感覺!
此模型(Model)是階層式(hierarchical)架構的來建置,可以由上到下(top-down)或是由下到上(bottom-up),所以我們可以擁有不同的視野來看待一個系統!
這時候有個問題:你要用模型化的方式來設計,首先必須得到系統的模型(通常式數學模型),那要如何得到這個系統的模型呢?
系統模型化過程的步驟有六個:
- 定義系統(Defining the System)
這個系統到底要定義多少元件(component),看看是不是要把系統切割成子系統(subsystem)。 - 確認系統中的元件(Identifying System Components)
確認每個元件的細節,包含三個細節:參數(parameter)、狀態(state)、信號(signal)。其中參數和狀態在Simulink這套軟體當中是用區塊(block)表示,而信號是用線段(line)來表示。 - 用數學式來表示這個系統(Modeling the System with Equations)
前面兩步驟只有定義"外殼",還沒有定義元件的"內涵"。這內涵通常是用數學方程式表示,方程式的總類有:代數(algebraic)方程式、邏輯(logical)方程式、對於連續型系統的微分(differential)方程式、對於離散型系統的差分(difference)方程式 - 建置simulink區塊(Building the Simulink Block Diagram)
前三個步驟都只是紙上作業,現在開始動手建置simulink的系統,找想要使用的元件放入模型中,如果沒有可能就需要自行建立。 - 實現模擬(Running the Simulation)
建好模型之後,當然是run看看,你考能需要設定模擬的一些參數。 - 證明模擬結果(Validating the Simulation Results)
模擬結束之後,必須確認模擬結果符合實際的特性,藉由這些模擬值來研判模型的正確性。
標籤:
tool
Interview with ycwang
太久沒寫Blog了,為了預防我的Blog開始長草(我還是有在管理,只是內容中斷新增!),先貼一篇以前訪問我老師的資料,也許在百年之後,可供歷史學家考證之用,考證Queueing Theory與ycwang、t5318019的真實性。就像史記中的故事,到底是真是假都需要"旁證"來校勘,道理是一樣的。
很久很久以前(2004年6月),曾經和我的老師(ycwang),有過一次訪問,當時是「生涯發展與選擇」課程,主要目的為訪問一位長者,由受訪者的經驗做為自己生涯發展的參考。以下為當時的內容大綱:
優先考慮興趣
很久很久以前(2004年6月),曾經和我的老師(ycwang),有過一次訪問,當時是「生涯發展與選擇」課程,主要目的為訪問一位長者,由受訪者的經驗做為自己生涯發展的參考。以下為當時的內容大綱:
優先考慮興趣
- 老師(ycwang)是覺得有興趣的事情,它不會造成你的壓力,所以你會專心把他做完。
- 老師(ycwang)一再強調學一個東西你一定要對他有興趣,有興趣就花時間下去看,不要太功利 。
- 老師(ycwang)認為:興趣+恆心=成功
- 老師(ycwang)是認為這個社會和你我是有相關的,如果這個社會不好,你再怎麼好也還是不好,因為你是和這個社會結合在一起的。
- 老師(ycwang)曾說過:成功的企業家 ,常常會有大筆的捐款 。一起提升這個社會上的所有人。
- 老師(ycwang)認為”專業”不是最大的瓶頸,最大的瓶頸反而是”敬業”問題,因為由敬業去達到專業是很容易的。
- 老師(ycwang)認為:如果說你很敬業的話,對工作上有不懂的地方,你就會很認真去學習,學習之後自然會達到專業。
- 老師(ycwang)認為:個人學習(求學問)也是如此,應有「專業」與「敬業」的態度。
- 老師(ycwang)認為:只是一個價值觀「錢夠用就好」,什麼叫夠用呢?當你要使用錢的時候不用去煩惱月底會沒錢。
- 老師(ycwang)認為:人的一生也就只是以快樂為主,而不是要賺很多錢的人生,所以經濟報酬只要能夠負擔你生活 。
- 老師(ycwang)認為:以興趣為基礎,因為興趣可以決定你工作快不快樂的因子,薪資或許不多,但是工作很快樂,我認為這比薪資高而沒興趣的工作要好。
- 老師(ycwang)曾說過:工程師是「蟑螂的生活」,打不死而且生活環境很差。
- 老師(ycwang)曾說過:「為了工作而生活」,和「為了生活而工作」是不一樣的觀點。
- 老師(ycwang)認為:應該要重視休閒
- 老師(ycwang)認為:可以說對的,也可以說錯的。因為要依照你工作的性質來決定,以我們電機這個領域來說,大部分的工作都不太需要證照。
- 老師(ycwang)認為:不同的工作對於職能有不同的要求。
- 老師(ycwang)認為:英文證照是未來必須具備的,或許不需要具備,但是你必須能夠聽英文說英文才可以。
標籤:
talking
2009年3月10日 星期二
Long-Run Behavior of Markov Processes
我們討論Markov Process的長時間行為時,通常會有三個議題:
第二,stationary distribution指的是π(probabitlty in state)隨著時間增加會趨近於固定,即π=常數,而π=π*P。
要注意的是,limiting distribution和stationary distribution指的涵義是不相同的。
第三,Ergodicity的說明,先看看書上的意思(Fundamentals of Queueing Theory,4th Edition):Closely associated with the concepts of limiting and stationary distributions is the idea of regodicity, which has to do with the information contained in one infinitely lon sample path of a process.
- Limiting distributions
- Stationary distributions
- Ergodicity
第二,stationary distribution指的是π(probabitlty in state)隨著時間增加會趨近於固定,即π=常數,而π=π*P。
要注意的是,limiting distribution和stationary distribution指的涵義是不相同的。
第三,Ergodicity的說明,先看看書上的意思(Fundamentals of Queueing Theory,4th Edition):Closely associated with the concepts of limiting and stationary distributions is the idea of regodicity, which has to do with the information contained in one infinitely lon sample path of a process.
標籤:
queueing
訂閱:
文章 (Atom)