實驗方法分為兩個部分,第一個部分是程式執行結果分析,將實驗結果列成圖表,
顯示各個目標在每一代演化中最大值、最小值、平均值以及目標收斂的的情形。第二 個部分為使用者問卷,因為個人化菜單規劃根據不同的使用者的喜好及目標,會有不 同感受,所以要客觀評估這套系統成效,本文使用問卷的方式進行。
系統環境方面,本系統使用 ASP.net 開發 web 程式及介面;資料庫則是使用 Microsoft SQL Server。資料庫中存有統一超商熟食區以及麵包區的商品共 109 筆資料,
每筆資料都是獨立不重複的,其中早午晚餐類共 60 種午晚餐類共 49。
4-1 實驗設計
本實驗將實際產生菜單分別將每一代所有非支配解(non-dominated solution )中的 四個目標函數值列出,觀察每個目標在演化過程中的收斂的情形。實驗族群大小為 100 以及三種不同熱量需求(1200 大卡/2000 大卡/2800 大卡),使用者熱量 MOGA 實 驗參數設定如(表 4-1)。實驗使用熱量及三大營養素所含的公克數資訊如(表 4-2) - (表 4-4)。
Parameter value
Population size
100Generation
100Crossover Prob.
0.9Mutation Prob.
0.1表 4-1 MOGA 實驗參數
26
Parameter value
每日所需熱量(kcal) 1200
每日所需蛋白質(g) 45
每日所需脂肪(g) 33
每日所需碳水化合物(g) 180
預算 300
表 4-2 實驗 1 使用熱量及營養素基準
Parameter value
每日所需熱量(kcal) 2000
每日所需蛋白質(g) 75
每日所需脂肪(g) 56
每日所需碳水化合物(g) 300
預算 300
表 4-3 實驗 2 使用熱量及營養素基準
Parameter value
每日所需熱量(kcal) 2800
每日所需蛋白質(g) 105
每日所需脂肪(g) 420
每日所需碳水化合物(g) 78
預算 400
表 4-4 實驗 3 使用熱量及營養素基準
27
4-2 實驗圖表及分析
在四個目標其中,脂肪、蛋白質、碳水化合物三個目標為往小,目標值越接近零 越好,而最後一個花費的目標為越大越好,越大代表越節省使用者花費。
圖4-1 脂肪目標(1200kcal)
圖4-2 蛋白質目標(1200kcal)
0 10 20 30 40 50 60 70 80
0 11 22 33 44 55 66 77 88 99
Objective F value
Generation
min Avg. Max
0 5 10 15 20 25 30 35 40 45 50
0 11 22 33 44 55 66 77 88 99
Objective P value
Generation
min Avg. Max
28
圖4-3 碳水化合物目標(1200kcal)
圖4-4 花費目標(1200kcal)
0 50 100 150 200 250 300
0 11 22 33 44 55 66 77 88 99
Objective C value
Generation
min Avg. Max
-80 -70 -60 -50 -40 -30 -20 -10 10 20 30 40 50 60 70 80 90 0 100 110
0 11 22 33 44 55 66 77 88 99
ObjectivCost value
Generation
min Avg. Max
29
圖4-5 脂肪目標(2000kcal)
圖4-6 蛋白質目標(2000kcal)
0 10 20 30 40 50 60 70 80 90
0 11 22 33 44 55 66 77 88 99
Objective F value
Generation
min Avg. Max
0 5 10 15 20 25 30
0 11 22 33 44 55 66 77 88 99
ObjectivP e value
Generation
min Avg. Max
30
圖4-7 碳水化合物目標(2000kcal)
圖4-8 花費目標(2000kcal)
0 10 20 30 40 50 60 70 80 90 100
0 11 22 33 44 55 66 77 88 99
Objective C value
Generation
min Avg. Max
-90 -80 -70 -60 -50 -40 -30 -20 -10 10 20 30 40 50 60 70 80 90 0 100
0 11 22 33 44 55 66 77 88 99
Objective Cost F value
Generation
min Avg. Max
31
:
圖4-9 脂肪目標(2800kcal)
圖4-10 蛋白質目標(2800kcal)
0 10 20 30 40 50 60 70 80
0 11 22 33 44 55 66 77 88 99
Objective F value
Generation
min Avg. Max
0 10 20 30 40 50 60 70
0 11 22 33 44 55 66 77 88 99
ObjectivP e value
Generation
min Avg. Max
32
圖4-11 碳水化合物目標(2800kcal)
圖4-12 花費目標(2800kcal)
0 20 40 60 80 100 120 140 160
0 11 22 33 44 55 66 77 88 99
Objective C value
Generation
min Avg. Max
-40 -30 -20 -10 10 20 30 40 50 60 70 80 90 0 100 110 120 130 140 150 160 170 180
0 11 22 33 44 55 66 77 88 99
Objective F value
Generation
min Avg. Max
33
在實驗中可以發現,因為使用穩態選擇的方法,所以不管是以哪種熱量基準做實 驗,脂肪、蛋白質、碳水化合物和花費這四個目標,在演化前段就有大幅的收斂,且 收斂速度快,大約能在五十代之前收斂。而收斂的過程當中會有跳動的情況,前段過 程中的跳動原因推測是因為演化過程中,產生的非支配解大於族群大小,而當所有染 色體的適應值都為常數 C 時,在穩態選擇中無法被保留下來。而當目標值都趨近於 最佳值時候的跳動是因為突變產生出新的非支配解,而這些突變產生的非支配解也無 法在演化中存活,所以產生跳動的情形產生。
34
4-3 使用者問卷結果分析
使用者問卷的部分,我們設計了五個問題,除了第一題是非題做為分類外,其他 問題設計是根據使用者使用的情況評分,最低分為 0 分,最高分則為 5 分。問卷有效 樣本為三十份,這五個問題分別是:
問題 1: 您是否使用菜單項目篩選或是特定菜色分類組合的功能?
問題 2: 產生出的菜色組合建議是否符合預期的程度?
問題 3: 您認為產生出來的菜色富有變化嗎?
問題 4: 您認為產生菜單等待時間如何?
問題 5: 您對於本系統整體滿意度如何?
第一個問題設計是將使用者分為兩類,第一類是有使用預先篩選要用那些菜色或 是分類組合成菜單的使用者;第二類為未使用預先篩選用那些菜色分類組合成菜單的 使用者。將兩類分開統計可以看出分類及篩選菜色的功能是否符合使用者需求。
第二個問題是針對使用者對於產生出來的菜色是否符合使用者預期,用來評估演 算法是否能找出合理的組合推薦給使用者,尤其是使用篩選菜色功能的使用者,系統 是否能依照使用者的期待產生出好的菜單是非常重要的。
第三個問題是關於菜單的變化性,在演化過程中因為沒有限制,可能會讓染色體 變化性太小,產生出重複的菜色組合推薦給使用者。
第四個問題是使用者對於菜單產生速度的感受。
第五個問題是綜合評價,讓使用者評估整個系統流程設計以及實用性。
首先,在未使用菜色篩選的使用者問卷部分,問題 2 產生出來的菜色是符合大部 分使用者的情況的,平均有 4.08 分;在菜色變化性也獲得使用者的認同,兩類的使 用者平均分數約在 3.8 分以上。在產生菜單的速度,預設演化是 100 代,如果染色體 長度較長的話,會計算比較慢,整體來說使用者是滿意的。
在有使用預先選擇菜單組合種類的使用者的部分,多數使用者能得到符合預期的 菜單組合建議;另外在對於菜單產生的時間感受方面,因為等待運算時間過久,平均 分數較其他項目來說偏低。
綜合所有使用者的問卷,使用者對於菜色的組合滿意程度佳,但是對於產生菜單
35
的速度還有一定改進的空間,這是未來演算法改進要注意的地方。
問題 2 問題 3. 問題 4 問題 5
Max
5 5 4 5Min
2 3 3 2Avg.
4.08 3.83 3.42 4.33Standard Deviation
1.00 0.72 0.51 0.89表 4-5 未使用菜色篩選功能
問題 2 問題 3. 問題 4 問題 5
Max
5 5 4 5Min
2 2 3 2Avg.
4.15 3.92 3.38 4.15Standard Deviation
0.90 0.95 0.51 0.99表 4-6 使用菜色篩選功能
36
圖4-13 使用者問卷
37