1. 程式人生 > 其它 >事件驅動優化:概念、模型與重要性

事件驅動優化:概念、模型與重要性

事件驅動優化:概念、模型與重要性

1 什麼是事件驅動

直觀地講,什麼是事件驅動?

  • 事件驅動:事件的發生 觸發行動/決策。
  • 比如跑步比賽,發令槍響(事件發生)你才決定開始跑,而不是每 0.1s 做一次“是否跑”的決策。
  • 比如排隊系統,一個人的到來(事件發生)觸發了 “是否讓他進入大廳排隊” 的決策,否則沒有決策的必要。

因此,對某些場景來說,事件驅動建模很合理。

2 一些數學定義

前提條件:系統是 包含有限狀態的 平穩 Markov Chain。

首先,給出模型的數學表達,包括系統狀態,事件 \(e\),收益 \(f\),策略 \(d\)

  • 系統狀態:狀態空間 \(S={1, 2, \cdots, S}\)

    ,狀態一般用 \(i~j\) 這樣的字母來表示。

  • 事件:

    • 一個事件 \(e\) 是一組狀態轉移的集合,\(e=\{{\lang i,j \rang}|i,j具有相同特徵\}\)

    • 事件包含三類:可觀事件、可控事件、自然轉移事件。在事件驅動語境,“事件”通常指可觀事件。搬運綜述的例子:

      例如排隊接入控制問題: 定義系統狀態為各個服務檯中顧客數構成的向量, 對於該系統, 首先觀測到顧客到達(可觀事件發生), 基於該事件決定接收或拒絕到達的顧客(可控事件發生), 如被接收, 顧客隨機進入某個服務檯(自然轉移事件發生), 這三個事件發生的順序具有邏輯關係, 共同決定系統的狀態轉移. 然而, 在 MDP 中, 這三類事件被當作同時發生, 共同決定系統的一步狀態轉移.

    • 輸入輸出:事件 \(e\)(狀態轉移集合)中,

      • 輸入狀態集合為 \(I(e)=\{i\in S|\exist~j\in S~(\lang i,j\rang\in e)\}\),狀態 \(j\) 的輸入集合為 \(I_j(e)=\{i\in S|\lang i,j\rang\in e\}\)
      • 輸出狀態集合為 \(O(e)=\{j\in S|\exist~i\in S~(\lang i,j\rang\in e)\}\),狀態 \(i\) 的輸出集合為 \(O_i(e)=\{j\in S|\lang i,j\rang\in e\}\)
    • 事件空間:\(\mathcal E=\{e_\phi, e_1, \cdots,e_V\}\)

      \(e_\phi\) 代表不採取任何行動的事件集合,V 是事件總數。一般而言,各個事件互斥(交集為空)。

  • 策略:策略 \(d\) 是 事件空間 \(\mathcal E\) → 動作空間 \(\mathcal A\) 的對映;決策只被事件型別決定,和狀態沒關係。

  • 收益:報酬函式 \(f(i,a)=f(i,d(i))\),只取決於狀態 \(i\) 和行動 \(a\)

然後,定義評價指標 \(\eta^h\) 為收益求和。公式裡,大寫 X E 為 系統狀態 事件,\(E_0\) 是初始時刻觀察到的事件。(和強化學習一樣,但不知是否有 discount factor,綜述裡沒有寫 discount):

\[\eta^d=\lim_{N\rarr\infin}\mathbb E\bigg\{\frac1N\sum_{n=0}^{N-1}f(X_n,d(E_n))|E_0\bigg\} \]

最優策略 \(d^*\) 就是 \(\eta\) 的 argmax 策略了。

3 為什麼 事件驅動 而非 MDP

  1. 事件驅動 在克服維數災難上有優勢。MDP 狀態太多,很可能隨系統規模指數級增長,相反 事件可以定義的很簡潔。
  2. 真實系統的狀態並不好觀測,觀測不到狀態就沒法做 MDP,相反 事件是好觀測的。
  3. MDP 太通用,難以利用系統結構 簡化/加速 優化過程,相反 可以利用系統特殊結構定義事件。

4 順便說一些背景

  • 對系統優化的 MDP 解法,突破性工作可分為兩類:
    • 利用問題結構,合併狀態 減少狀態數量,或搜尋策略時進行剪枝。
    • 尋找 MDP 的近似求解,比如神經元動態規劃 [11]、強化學習 [12]、近似動態規劃 [13]。(冒出了將兩者相結合的念頭)
  • 基於事件的優化模型,最早由曹希仁教授在2005 年提出 [23]。
  • 原文中,文獻 23 24 25 貌似是經典文獻。