朱正偉,劉 晨,黃曉竹,刁小敏
(常州大學 信息科學與工程學院,江蘇 常州 213164)
隨著LTE、4G高速寬帶無線網絡的快速覆蓋和智能移動終端的快速普及,手機應用程序呈現爆發式增長,每天有數萬應用程序涌現在智能手機上。應用程序的多樣性極大地提高了用戶的體驗,但是開發者沒有對應用程序進行很好的優化,長時間的高能耗操作會迅速消耗電池電量。受手機存儲容量、處理能力以及電池壽命[1]的限制,盡管同一時期電池能量密度增長了3倍[2],但大部分智能手機續航能力沒有得到顯著提升。目前解決上述問題的途徑主要有2種,即基于數據傳輸調度的優化技術、基于移動網絡資源分配的優化技術。
基于數據傳輸調度是通過調度數據傳輸來降低手機天線的打開時間,以達到節能的目的。文獻[3]提出一種快速休眠和批處理的機制,在每次傳輸完成后立即關閉手機天線,將其RRC調至低能耗狀態以達到節能的目的。文獻[4]采用Wi-Fi和3G 2種接入網絡策略,研究手機系統功耗的變化。發現在信號強度弱的時候傳輸數據比在信號強度強時傳輸等量數據更耗能。文獻[5]通過配置適當的DRX參數使數據接收不連續,以此優化手機用戶的吞吐量來降低設備能耗。這些方法會對其他數據傳輸造成延遲容忍,同時頻繁的能態轉移會造成能量的浪費。
在考慮到上述工作的應用局限性后,一些研究者從移動網絡資源分配機制入手。文獻[6]在Wi-Fi環境下,基于用戶活動級別來智能調度用戶活動以達到節電目的。文獻[7]從終端設備被動測量實驗結果和在蜂窩網絡中獲得的QoE人群反饋信息兩個角度解決了智能手機中的QoE資源調配問題。這類方法需要對手機底層硬件和驅動進行修改,因而其應用性會受到較大限制。
上述方法未考慮用戶習慣,會對用戶體驗產生嚴重影響。為降低智能手機網絡功耗的同時保證用戶體驗,本文針對用戶行為的特點,提出一種面向用戶行為的智能手機能耗優化方法。采集用戶在使用應用程序時產生的行為數據,分析用戶行為特征,建立應用程序網絡請求最優控制的數學模型,利用多背包算法求解該模型,約束屏幕關閉狀態下應用程序的網絡訪問量,減少不必要的損耗,從而延長電池的工作時間。
智能手機用戶行為特征分析主要是對用戶進行聚類,可以根據手機用戶使用的4G網絡訪問各應用程序產生的日志來分析用戶行為。通過相關統計軟件獲取數據,然后對這些數據進行分析,預測應用程序對于用戶的重要性。
調查顯示超過73%的智能手機用戶經常瀏覽網頁,超過70%的智能手機用戶使用聊天工具,其次為影音播放器、游戲軟件、辦公軟件等[8]。而智能手機用戶對各類應用程序的使用時間相對均衡,每天使用時間最長的應用是即時通信,占上網時間的26.1%,12.4%的時間使用瀏覽器,其次是在線視頻、游戲等[9]。用戶常用的應用程序類型如圖1所示。

圖1 用戶常用應用程序類型
為了采集具有網絡活動的應用程序的相關數據,不同于文獻[10]通過將功率監控器連接到智能手機上來獲取數據,本文將應用定時器2、程序流量狀態這2個軟件安裝在8名不同年齡和職業的用戶的智能手機上,進行為期一個月的追蹤調查,統計出各應用程序的使用次數、使用時長、耗費的網絡流量占一天中所用程序的比例。
通過對這8位智能手機用戶為期一個月的追蹤調查,收集并理解用戶行為數據,發現在屏幕關閉狀態下,手機在后臺仍然參與不同的網絡活動成為用戶使用智能手機應用程序的顯著特征。如圖2所示,屏幕關閉下的網絡活動占所有網絡活動的40.98%[11]。如文獻[3]所闡述的,屏幕關閉后的網絡活動是低響應的,并且是可以被積極優化的。

圖2 網絡活動分析

(1)

(2)

從獲取的數據里抽取樣本進行計算分析,其中,2個樣本的數據集如表1所示。

表1 應用程序3個屬性的2個樣本數據集
以用戶8使用的應用程序QQ為例,其時長比例的候選劃分點集合包含14個候選值:T時長比例={0.066 3,0.080 9,0.082 4,0.085 5,0.088 5,0.104 4,0.109 8,0.112 3,0.121 1,0.122 3,0.122 4,0.123 9,0.125 2,0.129 0}。由式(2)可計算出屬性“時長比例”的信息增益Gain(D1,a)為0.579 9,對應于劃分點0.080 9。類似地,次數比例的信息增益Gain(D2,a)和網絡流量比例的信息增益Gain(D3,a)也可依次算出。“時長比例”被選作根結點劃分屬性,“次數比例”為中間結點,之后的劃分過程以遞歸的形式進行,最終生成如圖3所示的決策樹。

圖3 以用戶8為例生成的決策樹
應用程序的重要性指標值計算公式如下:
(3)
其中,Gain(Di1,a)、Gain(Di2,a)、Gain(Di3,a)分別代表應用程序的時長比例增益、次數比例增益和網絡流量比例增益。應用程序重要性的指標值與應用程序的3個屬性的信息增益有關。
節約電能主要來源于減少屏幕關閉狀態下應用的網絡活動而減少蜂窩數據的開啟時間,即管理應用程序的網絡請求[10]。首先預測屏幕關閉時的網絡活躍時間段,屏幕關閉時網絡活躍時間段指的是當屏幕關閉狀態下,仍然有數據通過移動網絡傳輸的時間段。假設有k天的記錄,定義時間段ti作為屏幕關閉狀態下的網絡活躍時間段,當且僅當ti滿足:
(4)
其中,P(ti)為時間段ti內使用網絡的概率,U(ti)j為觀測數據里第j天m個應用程序在時間段ti的網絡活動,時間段集合Tn表示所有滿足式(4)的網絡活躍時間段ti的集合。對于Tn中每一個ti,它的容量定義為:
C(ti)=Bandwidth·ti
(5)
其中,Bandwidth是運營商提供的頻帶寬度,給定n個應用程序,建立應用程序網絡請求最優控制的數學模型,見式(6)和式(7),其中式(6)滿足式(7)。
(6)
(7)
為求解該模型,本文將其轉化成多背包問題[15]。其中,Xij=1表示物體i屬于背包j,反之Xij=0表示不屬于。每一個網絡活動ni表示一個應用程序,Cj為m個背包的容量,對于每一個ti∈Tn,本文創造一個獨立的項目集。其數據傳輸/接收數據模型,如下:
(8)
對于每一個ti,它表示一個背包,C(ti)為背包ti的容量,每個項目的重要性為ΔIni,該網絡活動的權重為w(ni),即ti時間段中數據傳輸/接收的總和。多背包問題是一種組合優化問題,具有最優子結構性質[16],用子問題定義狀態,建立網絡活動的狀態轉移方程:設有n個應用程序,v[i][w]為最優解,其遞歸式見式(9)。對于初始狀態,v[0,w]表示雖然手機網絡開啟但不允許任何應用程序運行,同樣的v[i,0]表示數據連接關閉,應用程序仍然無法運行。
(9)
根據上述討論,本文使用與決策樹匹配的多背包算法來控制屏幕關閉狀態下的應用程序網絡請求。根據用戶行為分析得到的應用程序的重要性指標值和應用程序的網絡流量能耗,限制屏幕關閉時網絡活躍時間段內可以運行的應用程序數量。偽代碼如下。
算法多背包問題算法
輸入w←0表示應用程序重要性的集合,w←0為應用程序權重的集合
輸出屏幕關閉時網絡活動時段運行的應用程序數量
for w←0 to C(ti) do
v[0,w]←0
end for
for i←1 to n do
v[i,0]←0
for w←1 to C(ti)do
if wni≤w then
if ΔIni+v[i-1,w-wni]>v[i-1,w] then
v[i,w]←ΔIni+v[i-1,w-wni]
else
v[i,w]←v[i-1,w]
end if
else
v[i,w]←v[i-1,w]
end if
end for
end for
return [n,C(ti)]
以上方法的時間和空間復雜度均為O(nC(ti)),其中,時間復雜度不能再優化,但空間復雜度卻可以優化到0。考慮權重至多為W的網絡活動,如果本文從最優網絡活動項目中去掉某應用程序j的權重w,則余下的項目必須是可以從n-1個原有應用程序和應用程序j的wj-w中可帶走的,權重至多為W-wj的重要性指標值最高的一個應用程序。在背包問題中不會滿足所有應用程序的活動,空余的空間就降低了網絡活動所需要的能耗。按上述算法計算后,可求得時間段ti內可以運行的應用程序數量n(ti),定義時間段ti內所有發出網絡請求的應用程序數量表示為N(ti)。式(10)為該優化方法的干擾率,式(11)為能耗優化百分比。
(10)
(11)
為了更深入地闡述面向用戶行為的智能手機能耗優化方法的意義和作用,通過實驗驗證本文所提方法的準確性和有效性。
本文實驗在Android5.1及更高版本的平臺上對該優化方法進行測試。從8名智能手機用戶中選出5位使用模式存在較大差異的用戶來進行對比試驗,測試手機平臺分別是HUAWEI榮耀i7、HUAWEI榮耀5X、Samsung galaxy、Meizu MX6和小米手機4。
本次實驗中設置背包容量C為1 024 MB,考慮到應用程序的網絡能耗都比較大,并且參考文獻[17]對應用程序能耗的分析,容量設置的過大或過小對屏幕關閉后應用程序的網絡請求的約束產生影響,導致能耗優化效果不明顯,甚至影響用戶體驗。
采集用戶使用應用程序的相關數據,根據上述生成決策樹的方法預測應用程序對于用戶是否重要,并利用式(3)計算出重要性的指標值。5位用戶使用的應用程序的重要性指標值如表2所示。

表2 應用程序的重要性指標
從圖4可以看出,在為期4周的測試中,不同用戶的電能節省量也不相同,該能耗優化方法平均可以節省電能38.4%。其中,用戶4為重度用戶,利用此方法可以節省至少25%的電能。此外,通過實驗可以得到能夠在屏幕關閉狀態下進行網絡活動的應用程序的數量,并利用式(10)對此數據進行處理,發現不同用戶的干擾率都維持在11%以內。

圖4 不同用戶的手機節能百分比
作為對比,采用文獻[3]提出的延遲批處理方案即將網絡活動推遲一定的時間間隔進行測試。在實驗中,選用從1 s~600 s的不同時間間隔,但隨著延時間隔的增加,該方案對用戶的干擾率也在上升。為了盡可能地減少對用戶體驗的影響,本文使用10 s和20 s作為測試間隔,結果如圖5所示。

圖5 不同情況下的節能百分比
圖5展示了延遲批處理方案與本文提出的能耗優化方法的節能效果對比情況。從實驗對比結果可以看到,通過延遲方案獲得的平均節能百分比為18.5%,本文提出的能耗優化方法的平均節能百分比維持在38.4%左右,相比于延遲方案提高了19.9%。因此,本文提出的面向用戶行為的智能手機能耗優化方法限制了重要性指標值低的應用程序在屏幕關閉后的網絡活動,減少了這些應用程序運行時需要的能耗,滿足了降低手機能耗的要求。
本文提出一種面向用戶行為的智能手機能耗優化方法,獲取了大規模真實用戶數據,利用數據分類、歸納生成決策樹,計算出應用程序重要性的指標值,并建立了基于多背包算法的應用程序網絡請求最優控制的數學模型。實驗結果表明,該方法的節能百分比得到提高,明顯優于批處理、延遲容忍等方法,并能兼顧用戶體驗。由于用戶使用習慣多種多樣,獲取用戶真實數據受限較大,因此目前只能對使用習慣相似的用戶進行跟蹤調查,下一步將擴展用戶群體,進一步提高優化方法的精確度。
[1] TAWALBEH M,EARDLEY A,TAWALBEH L.Studying the energy consumption in mobile devices[J].Procedia Computer Science,2016,94:183-189.
[2] CASAS R,CASAS O.Battery sensing for energy aware system design[J].Computer,2005,38(11):48-54.
[3] HUANG Junxian,QIAN Feng,MAO Zhangqing,et al.Screen-off traffic characterization and optimization in 3G/4G networks[J].ACM Conference on Internet Measurement Conference,2012:50(1):357-364.
[4] DING Ning,WAGNER D,CHEN Xiaomen,et al.Characterizing and modeling the impact of wireless signal strength on smartphone battery drain[J].ACM Sigmetrics Performance Evaluation Review,2013,41(1):29-40.
[5] KOLDING T,WIGARD J,DALSGAARD L.Balancing power saving and single user experience with discontinuous reception in LTE[C]//Proceedings of IEEE International Symposium on Wireless Communication Systems.Washington D.C.,USA:IEEE Press,2008:713-717.
[6] VISHAL K,BANSAL R,NAMBOODIRI A M,et al.Providing services on demand by user action modeling on smart phones[C]//Proceedings of UbiComp’14.New York,USA:ACM Press,2014:167-170.
[7] CASAS P,GARDLO B,SEUFERT M,et al.Taming QoE in cellular networks:from subjective lab studies to measurements in the field[C]//Proceedings of Inter-national Conference on Network and Service Management.Washington D.C.,USA:IEEE Press,2015:237-245.
[8] 騰訊科技.智能手機用戶使用習慣調查報告[EB/OL].[2016-12-11].http://www.techweb.com.cn/data/2011-12-01/1125983_3.shtml.
[9] 易觀智庫.2015年中國移動互聯網用戶行為統計[EB/OL].[2016-11-21].http://www.askci.com/news/chanye/2015/05/11/171144sd8m.shtml.
[10] 段林濤,郭 兵,沈 艷,等.Android應用程序能耗分析與建模[J].電子科技大學學報,2014,43(2):272-277.
[11] ZHANG Yi,HE Yuan,WU Xiaopei,et al.Net Master:taming energy devourers on smartphones[C]//Proceedings of the 43rd International Conference on Parallel Processing.Washington D.C.,USA:IEEE Press,2014:301-310.
[12] YANG Yi,CHEN Wenguang.Taiga:performance optimiza-tion of the C4.5 decision tree construction algorithm[J].Tsinghua Science & Technology,2016,21(4):415-425.
[13] GILAD K,ASAF S,LIOR R,et al.ConfDTree:a statistical method for improving decision trees[J].Journal of Computer Science & Technology,2014,29(3):392-407.
[14] 黃宇達,王迤冉.基于樸素貝葉斯與ID3算法的決策樹分類法[J].計算機工程,2012,38(14):41-43.
[15] 王熙照,賀毅朝.求解背包問題的演化算法[J].軟件學報,2017,28(1):1-16.
[16] QIN Lei,ZHOU Kang.An improved artificial fish school algorithm for multi-knapsack problem[J].Bulletin of Science and Technology,2016,32(6):166-171.
[17] PATHAK A,HU Y C,ZHANG M.Where is the energy spent inside my App[C]//Proceedings of the 7th ACM Conference on Computer Systems.New York,USA:ACM Press,2012:29-42.