昨天聊到,要先讓 AI 知道店裡還有多少水果、放了多久,以及最近賣得怎麼樣。知道這些之後,接下來就輪到它做決定了。
在這個專案裡,我先讓 AI 負責兩件事:訂售價,還有決定採收量。這些能做的選擇,在強化學習裡就叫作「動作」,英文是 Action。
價格的部分,我沒有讓 AI 隨便喊價,而是先設定三個選項:比基準價格便宜一點、維持基準價格,或是貴一點。
採收量也一樣,先分成不採、採一半和採到設定上限。這裡的一半是指設定上限的一半,實際能採多少,還要看今天有多少水果可以採,以及庫存放不放得下。
先把選項訂清楚,後面比較容易看懂 AI 到底選了什麼,也方便檢查結果。
假設今天有不少快過期的芒果,直覺上可能會想:「那就便宜一點賣,今天也先別採太多。」
這聽起來很合理,但降價也有代價。水果可能賣得比較快,每公斤收到的錢卻少了。如果本來就不夠賣,這時候再降價,還可能讓缺貨更明顯。
所以售價和採收量要一起考慮。多採一點卻賣不掉,可能增加報廢;少採一點雖然比較不容易剩貨,也可能錯過生意。
這也是我覺得這個題材有趣的地方。同樣一個選擇,換個庫存或需求情況,結果就可能不一樣。
AI 選好售價和採收量後,程式才會模擬當天的需求與銷售,看看最後賺了多少、缺了多少貨,又剩下多少水果。
它選的也不一定每次都對。我想觀察的,就是它在反覆訓練後,會不會開始依照不同情況,做出不同的選擇。