專利名稱:一種廣告位緯度沖突計算方法及裝置的制作方法
技術領域:
本發(fā)明涉及廣告位庫存計算技術,尤指一種廣告位緯度沖突計算方法及裝置。
背景技術:
針對廣告用戶群的不同特征,一個廣告位可以分為多個緯度,比如時間、年齡、性別、地區(qū)等。如地區(qū)可以分為,北京,上海,廣州等;時間可以分為0點至12點,12點至M點等;性別可以分為男女。有了緯度的概念,廣告就可以定向的向特定緯度的用戶播放,這樣的廣告稱為定向廣告。當廣告A為定向廣告,為定向到上海、7pm-10pm的用戶時,則只有在7pm-10pm這個時間段內,屬于上海地區(qū)的用戶,才能訪問到廣告A。全流量廣告是區(qū)分定向廣告而言,指對所有緯度的用戶播放該廣告。另外,每個緯度可以細分為更小的單位,稱為顆粒,比如時間緯度可以分為對個顆粒,Oam-lam,lam-2am, . . .,22pm_23pm,23pm_24pm,每個小時代表一個顆粒;性別可以分為男女兩個顆粒,年齡分為8個不通的年齡段。最大輪播數為一個廣告位上最多可以播放的廣告數。當廣告位上沒有預定任何廣告時,最大輪播數為該廣告位的庫存數。在現有技術中,為了計算一個廣告位的庫存數,首先計算當前預定廣告和已有廣告在各個緯度上沖突數,以其中最小的作為預定廣告和已有廣告的沖突數,然后用最大輪播數減去預定廣告和已有廣告的沖突數得到當前預定廣告后的庫存數。預定廣告為當前新進的廣告,已有廣告是已存在于廣告位上的廣告?,F有技術在計算非地區(qū)緯度的沖突數時,比如時間、年齡、性別等時,會將已有廣告在該緯度上進行拆分,根據該緯度的顆粒數拆分到一個哈希表中,然后輪訓該哈希表,將當前預定廣告和已有廣告在每個顆粒上進行比較,找到沖突的次數,然后以最大的沖突數為該緯度沖突數。即當前預定廣告A與已有廣告B在時間緯度上的沖突數為2,當前預定廣告A與已有廣告C在時間緯度上的沖突數為3,則時間緯度的沖突數為3。根據上述的分析可知,在計算緯度沖突數時,由于需要對已有廣告進行拆分,因此計算復雜度為o(N*M),其中N為已有廣告數,M為改緯度上的顆粒最大數,比如年齡為8,性別為2,時間為24,由此可見算法比較復雜,并且效率低下。
發(fā)明內容
有鑒于此,本發(fā)明的主要目的在于提供一種廣告位緯度沖突計算方法及裝置,應用本發(fā)明提供的方法及裝置能夠簡化緯度沖突次數的計算方法,提高計算效率。為達到上述目的,本發(fā)明的技術方案是這樣實現的一種廣告位緯度沖突計算方法,在計算非地區(qū)緯度的沖突次數時,該方法包括在數據結構上用變量的一位代表該緯度上一個顆粒,采用該數據結構表示當前預定廣告和各已有廣告在該緯度上的顆粒;對于各已有廣告,用表示當前預定廣告的數據與表示各已有廣告的數據分別進行與操作,得到該與操作的結果,并統(tǒng)計其中為1的位數,該統(tǒng)計結果即為該緯度上的當前預定廣告與該已有廣告的沖突數;取其中最大的沖突數為該緯度上沖突次數。一種廣告位緯度沖突計算裝置,該裝置包括處理單元、執(zhí)行單元和操作單元;所述處理單元,用于在計算非地區(qū)緯度的沖突次數時,在數據結構上用變量的一位代表該緯度上一個顆粒,采用該數據結構表示當前預定廣告和各已有廣告在該緯度上的顆粒;所述執(zhí)行單元,用于根據所述處理單元的處理對各已有廣告,用表示當前預定廣告的數據與表示各已有廣告的數據分別進行與操作,得到該與操作的結果,并統(tǒng)計其中為1 的位數,該統(tǒng)計結果即為該緯度上的當前預定廣告與該已有廣告的沖突數;所述操作單元,用于根據所述執(zhí)行單元的處理結果,取其中最大的沖突數為該緯度上沖突次數。本發(fā)明所提供的一種廣告位緯度沖突計算方法及裝置,在計算非地區(qū)緯度的沖突次數時,通過在數據結構上用變量的一位代表該緯度上一個顆粒,使執(zhí)行與操作就能夠實現預定廣告和已有廣告在緯度上的沖突計算。這樣,由于避免了將廣告拆分至哈希表的操作,簡化了緯度沖突次數的計算方法,提高了計算效率。另外,在計算地區(qū)緯度的沖突次數時,由于減少了遍歷哈希表的次數,同樣簡化了緯度沖突次數的計算方法,提高了計算效率。
圖1為本發(fā)明實施例方法的流程圖;圖2為本發(fā)明實施例裝置的結構圖。
具體實施例方式在本部分的詳細描述中,僅通過對實施本發(fā)明的發(fā)明者所預期的最佳方式的示例,示出并描述了本發(fā)明的較佳實施例。應意識到,可以在不背離本發(fā)明的前提下,就各個顯而易見的方面對其進行修改。相應地,附圖和說明書應被視為在本質上是示例性的,而不是限制性的。參見圖1,圖1為本發(fā)明方法的示例性流程圖。該方法在計算非地區(qū)緯度的沖突次數時,包括在步驟101中,在數據結構上用變量的一位代表該緯度上一個顆粒,采用該數據結構表示當前預定廣告和各已有廣告在該緯度上的顆粒;在步驟102中,對于各已有廣告,用表示當前預定廣告的數據與表示各已有廣告的數據分別進行與操作,得到該與操作的結果,并統(tǒng)計其中為1的位數,該統(tǒng)計結果即為該緯度上的當前預定廣告與該已有廣告的沖突數;在步驟103中,取其中最大的沖突數為該緯度上沖突次數。以時間緯度舉例,性別,年齡相似。當時間以小時為緯度時,最多需要M位。這樣, 當Ο-lam,就用Oxl表示,lam-2am用0x2表示,23pm-24pm就用0x800000表示,全流量預定就用Oxffffff表示。當計算當前預定廣告與已有預定廣告之間的沖突數時,只要在其對應的位上,對兩條預定進行與操作,如果與的結果為1則表示對應的位上有沖突,此時統(tǒng)計為 1的個數,該統(tǒng)計個數即為該緯度上的當前預定廣告與已有廣告的沖突數。當與操作的結果為0時,則表示當前預定廣告與已有廣告之間沒有沖突。 由于本發(fā)明的技術方案只需在相應的位執(zhí)行與操作,同時也不需要進行將數據拆分到哈希表中,因此本發(fā)明的技術方案相對于現有技術而言,不但簡化運算,還提高了運算效率。
PHP版本的算法代碼如下 StmaxConf = O ; StmaxConf = O ;
for($i = 1 ;$i <= 0x800000 ;$i <<= 1)
StcurConf = 0 ;
foreach($iDBTjArray as $itemDbTj)
{
if (SitemDbTj == NULL) continue ;
else if (($this->pTimeBlock->pBinaryTime & $i) >0 &&($i
&$itemDbtj- > pTimeBlock- > pBinaryTime) > 0)++$tcurConf ;}if($tcurConf > $tmaxConf)$tmaxConf = $tcurConf ;}return$tmaxConf ;本發(fā)明的技術方案除了對非地區(qū)緯度的沖突計算進行了改進之外,還對地區(qū)緯度的沖突計算進行了改進?,F有技術在計算地區(qū)緯度的沖突次數時,首先將當前預定廣告和各已有廣告按照地區(qū)緯度的粒度拆分到國家、地區(qū)和城市這三個哈希表中。例如,當存在以下廣告,美國、中國、中國廣東、中國廣東深圳時,拆分到國家、地區(qū)以及城市這三個哈希表的結果是國家哈希表中包含美國和中國,且出現的次數分別為1次;地區(qū)哈希表中包含中國廣東,且出現的次數為1次;城市哈希表中包含中國廣東深圳和中國上海上海,且出現的次數分別為1次。然后,采用三層嵌套循環(huán),國家在外層,地區(qū)在中層,城市在最內層的形式計算沖突次數。具體為,依次遍歷國家哈希表中的國家,對于存在的每個國家遍歷地區(qū)哈希表,找到地區(qū)哈希表中屬于當前國家的地區(qū),對于找到的地區(qū)再遍歷城市哈希表,找到城市哈希表中屬于當前地區(qū)的城市,將當前國家出現的次數,以及當前地區(qū)出現的次數,以及當前城市的出現次數相加,得到對應當前城市的沖突次數。在所有循環(huán)結束后,取最大的沖突次數為當前地區(qū)緯度的沖突次數??梢?,計算復雜度為ο (C*P*T),其中C為國家的數目、P代表地區(qū)的數目、T代表城市的數目。以上述的廣告為例,在現有技術的方案中,首先以美國為基準遍歷地區(qū)哈希表,未找到滿足條件的地區(qū),此時結束針對美國的遍歷過程;然后再以中國為基準遍歷地區(qū)哈希表,找到滿足條件的地區(qū),中國廣東,再遍歷城市哈希表,找到滿足條件的城市,中國廣東深圳,最后針對當前城市中國廣東深圳的沖突次數為1 (中國)+1 (中國廣東)+1 (中國廣東深圳)=3。
為了簡化計算,在本發(fā)明的技術方案減少了一次循環(huán)計算,具體方法如下所示。首先,將當前預定廣告和各已有廣告按照地區(qū)緯度的粒度拆分到國家、地區(qū)和城市這三個哈希表中;然后,遍歷國家哈希表,對于國家哈希表中的各個國家,在城市哈希表中查找屬于該國家的城市,對于找到的城市,其沖突次數加1 ;其中,城市的沖突次數初始值為1 ;再遍歷地區(qū)哈希表,對于地區(qū)哈希表中的各個地區(qū),在城市哈希表中查找屬于該地區(qū)的城市,對于找到的城市,其沖突次數加1 ;最后,遍歷城市哈希表中的各城市,找到最大的沖突次數, 其即為當前預定廣告和各已有廣告在地區(qū)緯度上的沖突次數。其中,城市的沖突次數初始值為1表示,在1的基礎上執(zhí)行加1操作??梢钥闯?,本發(fā)明計算地區(qū)緯度的復雜度為 o((C+P)*T),明顯低于現有技術的計算方法。同樣以上述的例子為例,首先遍歷國家哈希表,對于美國未找到滿足條件的城市; 對于中國,找到滿足條件的城市中國廣東深圳;此時沖突次數2 = 1 (中國)+1 (中國廣東深圳的沖突次數初始值)。然后遍歷地區(qū)哈希表,對于中國廣東,找到滿足條件的城市中國廣東深圳,此時沖突次數為在中國廣東深圳的沖突次數上累加,為2+1(中國廣東)=3。另外,還可以通過如下方式計算地區(qū)緯度的沖突次數,即將當前預定廣告和各已有廣告按照地區(qū)緯度的粒度拆分到國家、地區(qū)和城市這三個哈希表中;然后,遍歷地區(qū)哈希表,對于地區(qū)哈希表中的各個地區(qū),在城市哈希表中查找屬于該地區(qū)的城市,對于找到的城市,其沖突次數加1 ;其中,城市的沖突次數初始值為1 ;再遍歷國家哈希表,對于國家哈希表中的各個國家,在城市哈希表中查找屬于該國家的城市,對于找到的城市,其沖突次數加 1 ;最后,遍歷城市哈希表中的各城市,找到最大的沖突次數,其即為當前預定廣告和各已有廣告在地區(qū)緯度上的沖突次數。另外,在本發(fā)明的技術方案中還可以根據系統(tǒng)內預定的信息,避免不必要的沖突計算,從而提高計算速度。可以分如下幾種情況在廣告位不允許定向的情況下,則所有廣告均為全流量,沖突次數就為已有預訂的條數,可以快速返回。如果當前庫存中的已有廣告為獨占廣告,則只需要將當前預定廣告和已有廣告中的一條進行比較,要有沖突則全沖突, 而且計算中只要有一個緯度不沖突,則兩條預定不沖突,最壞情況下,也只要0(1)的時間復雜度。實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。另外,本發(fā)明還提供了一種廣告位緯度沖突計算裝置,具體結構可參見圖2。該裝置包括處理單元、執(zhí)行單元和操作單元;所述處理單元,用于在計算非地區(qū)緯度的沖突次數時,在數據結構上用變量的一位代表該緯度上一個顆粒,采用該數據結構表示當前預定廣告和各已有廣告在該緯度上的顆粒;所述執(zhí)行單元,用于根據所述處理單元的處理對各已有廣告,用表示當前預定廣告的數據與表示各已有廣告的數據分別進行與操作,得到該與操作的結果,并統(tǒng)計其中為1的位數,該統(tǒng)計結果即為該緯度上的當前預定廣告與該已有廣告的沖突數;所述操作單元,用于根據所述執(zhí)行單元的處理結果,取其中最大的沖突數為該緯度上沖突次數。另外,該裝置還可以進一步包括拆分單元和運行單元。其中,所述拆分單元,用于在計算地區(qū)緯度的沖突次數時,將當前預定廣告和各已有廣告按照地區(qū)緯度的粒度拆分到國家、地區(qū)和城市這三個哈希表中;所述運行單元,用于根據所述拆分單元的處理結果,遍歷國家哈希表,對于國家哈希表中的各個國家,在城市哈希表中查找屬于該國家的城市,對于找到的城市,其沖突次數加1 ;其中,城市的沖突次數初始值為1 ;遍歷地區(qū)哈希表,對于地區(qū)哈希表中的各個地區(qū),在城市哈希表中查找屬于該地區(qū)的城市,對于找到的城市,其沖突次數加1 ;遍歷城市哈希表中的各城市,找到最大的沖突次數,其即為當前預定廣告和各已有廣告在地區(qū)緯度上的沖突次數。通過本案的優(yōu)化方法,程序計算庫存的性能可以提高10倍以上,當從C語言版本移植到PHP版本,按照常規(guī)衡量方法,性能至少會快90倍,實際測試中顯示,性能保持在了相同數量級還略有提高。本算法在Planning系統(tǒng)中,預定廣告位時頻繁大量使用,可以說是該系統(tǒng)最核心,最重要,最具價值的算法。對其性能的優(yōu)化,可以提高系統(tǒng)的服務速度,增強該系統(tǒng)的市場效果。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種廣告位緯度沖突計算方法,其特征在于,在計算非地區(qū)緯度的沖突次數時,該方法包括在數據結構上用變量的一位代表該緯度上一個顆粒,采用該數據結構表示當前預定廣告和各已有廣告在該緯度上的顆粒;對于各已有廣告,用表示當前預定廣告的數據與表示各已有廣告的數據分別進行與操作,得到該與操作的結果,并統(tǒng)計其中為1的位數,該統(tǒng)計結果即為該緯度上的當前預定廣告與該已有廣告的沖突數;取其中最大的沖突數為該緯度上沖突次數。
2.根據權利要求1所述的方法,其特征在于,該方法進一步包括,在計算地區(qū)緯度的沖突次數時,將當前預定廣告和各已有廣告按照地區(qū)緯度的粒度拆分到國家、地區(qū)和城市這三個哈希表中;遍歷國家哈希表,對于國家哈希表中的各個國家,在城市哈希表中查找屬于該國家的城市,對于找到的城市,其沖突次數加1 ;其中,城市的沖突次數初始值為1 ;遍歷地區(qū)哈希表,對于地區(qū)哈希表中的各個地區(qū),在城市哈希表中查找屬于該地區(qū)的城市,對于找到的城市,其沖突次數加1 ;遍歷城市哈希表中的各城市,找到最大的沖突次數,其即為當前預定廣告和各已有廣告在地區(qū)緯度上的沖突次數。
3.根據權利要求1所述的方法,其特征在于,該方法進一步包括在計算地區(qū)緯度的沖突次數時,將當前預定廣告和各已有廣告按照地區(qū)緯度的粒度拆分到國家、地區(qū)和城市這三個哈希表中;遍歷地區(qū)哈希表,對于地區(qū)哈希表中的各個地區(qū),在城市哈希表中查找屬于該地區(qū)的城市,對于找到的城市,其沖突次數加1 ;其中,城市的沖突次數初始值為1 ;遍歷國家哈希表,對于國家哈希表中的各個國家,在城市哈希表中查找屬于該國家的城市,對于找到的城市,其沖突次數加1 ;遍歷城市哈希表中的各城市,找到最大的沖突次數,其即為當前預定廣告和各已有廣告在地區(qū)緯度上的沖突次數。
4.一種廣告位緯度沖突計算裝置,其特征在于,該裝置包括處理單元、執(zhí)行單元和操作單元;所述處理單元,用于在計算非地區(qū)緯度的沖突次數時,在數據結構上用變量的一位代表該緯度上一個顆粒,采用該數據結構表示當前預定廣告和各已有廣告在該緯度上的顆粒;所述執(zhí)行單元,用于根據所述處理單元的處理對各已有廣告,用表示當前預定廣告的數據與表示各已有廣告的數據分別進行與操作,得到該與操作的結果,并統(tǒng)計其中為1的位數,該統(tǒng)計結果即為該緯度上的當前預定廣告與該已有廣告的沖突數;所述操作單元,用于根據所述執(zhí)行單元的處理結果,取其中最大的沖突數為該緯度上沖突次數。
5.根據權利要求4所述的裝置,其特征在于,該裝置進一步包括拆分單元和運行單元;所述拆分單元,用于在計算地區(qū)緯度的沖突次數時,將當前預定廣告和各已有廣告按照地區(qū)緯度的粒度拆分到國家、地區(qū)和城市這三個哈希表中;所述運行單元,用于根據所述拆分單元的處理結果,遍歷國家哈希表,對于國家哈希表中的各個國家,在城市哈希表中查找屬于該國家的城市,對于找到的城市,其沖突次數加1 ; 其中,城市的沖突次數初始值為1 ;遍歷地區(qū)哈希表,對于地區(qū)哈希表中的各個地區(qū),在城市哈希表中查找屬于該地區(qū)的城市,對于找到的城市,其沖突次數加1 ;遍歷城市哈希表中的各城市,找到最大的沖突次數,其即為當前預定廣告和各已有廣告在地區(qū)緯度上的沖突次數。
6.根據權利要求4所述的裝置,其特征在于,該裝置進一步包括拆分單元和運行單元; 所述拆分單元,用于在計算地區(qū)緯度的沖突次數時,將當前預定廣告和各已有廣告按照地區(qū)緯度的粒度拆分到國家、地區(qū)和城市這三個哈希表中;所述運行單元,用于根據所述拆分單元的處理結果,遍歷地區(qū)哈希表,對于地區(qū)哈希表中的各個地區(qū),在城市哈希表中查找屬于該地區(qū)的城市,對于找到的城市,其沖突次數加1 ; 其中,城市的沖突次數初始值為1 ;遍歷國家哈希表,對于國家哈希表中的各個國家,在城市哈希表中查找屬于該國家的城市,對于找到的城市,其沖突次數加1 ;遍歷城市哈希表中的各城市,找到最大的沖突次數,其即為當前預定廣告和各已有廣告在地區(qū)緯度上的沖突次數。
全文摘要
本發(fā)明公開了本發(fā)明所提供的一種廣告位緯度沖突計算方法及裝置,在計算非地區(qū)緯度的沖突次數時,通過在數據結構上用變量的一位代表該緯度上一個顆粒,使執(zhí)行與操作就能夠實現預定廣告和已有廣告在緯度上的沖突計算。這樣,由于避免了將廣告拆分至哈希表的操作,簡化了緯度沖突次數的計算方法,提高了計算效率。
文檔編號G06Q30/00GK102314653SQ201010222559
公開日2012年1月11日 申請日期2010年6月30日 優(yōu)先權日2010年6月30日
發(fā)明者段云 申請人:騰訊科技(北京)有限公司