本發(fā)明涉及路徑規(guī)劃方法,尤其涉及對碼頭水平運輸區(qū)的路徑規(guī)劃方式。
背景技術:
現(xiàn)有的a*算法或者dijkstra算法在搜尋路徑時,強調(diào)的是單個agv最短路徑,但是并不一定是整體最優(yōu)的,碼頭水平運輸區(qū)規(guī)劃路徑要求遵循一定的循環(huán)方向,要求在特定的區(qū)域執(zhí)行特定的運動方式(斜行、s彎等),在指定的位置進行倒箱門,單純的搜尋路徑算法在有限的計算資源上不能滿足上述功能,其實現(xiàn)也是非常的復雜,不利于代碼的維護和擴展。
技術實現(xiàn)要素:
以下給出一個或多個方面的簡要概述以提供對這些方面的基本理解。此概述不是所有構(gòu)想到的方面的詳盡綜覽,并且既非旨在指認出所有方面的關鍵性或決定性要素亦非試圖界定任何或所有方面的范圍。其唯一的目的是要以簡化形式給出一個或多個方面的一些概念以為稍后給出的更加詳細的描述之序。
本發(fā)明的目的在于解決上述問題,提供了一種碼頭水平運輸區(qū)輔助路徑規(guī)劃方法、介質(zhì)和系統(tǒng),能夠適用于碼頭水平運輸區(qū)的實際情況。
本發(fā)明的技術方案為:本發(fā)明揭示了一種碼頭水平運輸區(qū)輔助路徑規(guī)劃方法,包括:
步驟1:根據(jù)區(qū)域?qū)崿F(xiàn)的功能將碼頭水平運輸區(qū)劃分為多個分區(qū);
步驟2:在劃分出的分區(qū)中定義車道,車道指定自動導引運輸車通過分區(qū)的路徑,并初始化車道狀態(tài),其中狀態(tài)為空閑時表示車道可以使用;
步驟3:計算車道之間的連通性和通行時間;
步驟4:根據(jù)坐標和方向計算起點和終點所在的分區(qū),其中坐標在分區(qū)內(nèi)部,方向和分區(qū)內(nèi)的車道方向平行;
步驟5:根據(jù)起點所在的分區(qū)和終點所在的分區(qū),找到對應的工況;
步驟6:根據(jù)起點車道的連通性,找出從起點車道出發(fā)可以連通的車道列表,過濾出空閑狀態(tài)的車道,根據(jù)起點車道和車道列表中的車道的相對位置關系以及起點車道上車頭朝向,計算出車道列表中的車頭朝向,記錄為列表s1,其中列表s1包含的信息包括但不限于:車道號、父車道號、車頭朝向;
步驟7:檢查列表s1中是否有終點車道,如果有終點車道,則檢查起點車道和終點車道的車頭朝向是否一致,若一致則找到一組可用的車道組合,且這一車道組合是起點車道和終點車道是無中間車道的直達類型;
步驟8:如果在步驟7中沒有找到可用的車道組合,根據(jù)終點車道的連通性找出可以連通到終點車道的車道,在過濾掉空閑狀態(tài)的車道后,根據(jù)終點車道和車道列表中的車道的相對位置關系以及終點車道上車頭朝向,計算車道列表中的車道的車頭朝向,記錄為列表e1,其中列表e1包含的信息包括但不限于:車道號、父車道號、車頭朝向;
步驟9:檢查列表s1和列表e1中的車道是否有交集,若有則再檢查車頭朝向是否一致,若一致則找到至少一組可用的車道組合,將車頭朝向一致的交集中的車道作為中間車道;
步驟10:對列表s1中的每一個車道ls1,根據(jù)車道的連通性,找出從車道ls1出發(fā)可以連通的車道列表,過濾掉空閑狀態(tài)的車道后,根據(jù)車道ls1和步驟10中找出的車道列表中的車道的相對位置關系以及車道ls1上的車頭朝向,計算步驟10中找出的車道列表中的車道的車頭朝向,記錄為列表s2,其中列表s2包含的信息包括但不限于:車道號、父車道號、車頭朝向;
步驟11:檢查列表s2和列表e1中的車道是否有交集,如果有交集則檢查車頭朝向是否一致,若一致則分別從列表s2和列表e1中查找交集中車頭朝向一致的車道的父車道號,其中還從列表s1中查找在列表s2中找到的父車道號的父車道號為起點車道,從列表e1中找到的父車道號為終點車道,從而查找到從起點到終點的關鍵車道的組合;
步驟12:如果在步驟11中檢查出列表s2和列表e1的車道沒有交集,則對列表e1中的每一個車道le1,根據(jù)車道的連通性,查找去到車道le1可以連通的車道列表,過濾掉空閑狀態(tài)的車道,根據(jù)車道le1和步驟12中找出的車道列表中的車道的相對位置關系以及車道le1上的車頭朝向,計算出步驟12中找出的車道列表中的車道的車頭朝向,記錄為列表e2,其中列表e2包含的信息包括但不限于:車道號、父車道號、車頭朝向;
步驟13:檢查列表s2和列表e2中的車道是否有交集,若有交集則檢查車頭朝向是否一致,如果一致則分別從列表s2和列表e2中查找交集中車頭朝向一致的車道的父車道號,其中還從列表s1中查找在列表s2中找到的父車道號的父車道號為起點車道,從列表e1中查找在列表e2中找到的父車道號的父車道號為終點車道,從而查找到從起點到終點的關鍵車道的組合;
步驟14:重復執(zhí)行步驟10到步驟13以獲取所有的關鍵車道的組合,如果最終沒有符合條件的關鍵車道的組合則表示獲取車道組合失敗;
步驟15:對獲得的所有的關鍵車道的組合進行打分,包括根據(jù)步驟3中的車道之間的通行時間對每一關鍵車道組合中路徑上相鄰的兩個車道進行打分;
步驟16:對打分后的關鍵車道的組合進行排序,按照分數(shù)選出最優(yōu)路徑上的關鍵車道組合。
根據(jù)本發(fā)明的碼頭水平運輸區(qū)輔助路徑規(guī)劃方法的一實施例,在劃分分區(qū)時確保劃分出的分區(qū)不重疊,多個分區(qū)包括但不限于:堆場交換區(qū)、東西高速車道區(qū)、岸橋緩沖區(qū)、岸橋交換區(qū)。
根據(jù)本發(fā)明的碼頭水平運輸區(qū)輔助路徑規(guī)劃方法的一實施例,在定義車道時確保同一個分區(qū)內(nèi)不存在交叉的車道。
根據(jù)本發(fā)明的碼頭水平運輸區(qū)輔助路徑規(guī)劃方法的一實施例,步驟3是使用路徑規(guī)劃算法計算車道之間的連通性,規(guī)劃成功的車道之間表示可以連通,規(guī)劃失敗的車道之間表示不可連通,其中高速車道的連通性不用計算,且在計算連通性時基于以下的限制條件:避開禁行區(qū)、滿足自動導引運輸車的轉(zhuǎn)彎半徑。
根據(jù)本發(fā)明的碼頭水平運輸區(qū)輔助路徑規(guī)劃方法的一實施例,步驟3中,在使用路徑規(guī)劃算法計算車道之間的連通性的過程中,根據(jù)規(guī)劃成功的路徑計算整條路徑的通行時間,將規(guī)劃失敗的路徑設置到車道之間的通行時間為無窮大,將車道到自身的通行時間設置為0。
根據(jù)本發(fā)明的碼頭水平運輸區(qū)輔助路徑規(guī)劃方法的一實施例,在步驟5中,起點所在的分區(qū)包括但不限于堆場交換區(qū)、東西高速車道區(qū)、岸橋緩沖區(qū)、岸橋交換區(qū),終點所在的分區(qū)包括但不限于堆場交換區(qū)、岸橋緩沖區(qū)、岸橋交換區(qū)。
根據(jù)本發(fā)明的碼頭水平運輸區(qū)輔助路徑規(guī)劃方法的一實施例,步驟9中的中間車道用于完成倒箱門的功能。
根據(jù)本發(fā)明的碼頭水平運輸區(qū)輔助路徑規(guī)劃方法的一實施例,步驟15中,如果車道之間連通則打分是車道之間的通行時間,如果車道之間不連通則丟棄該車道組合。
本發(fā)明還揭示了一種計算機可讀介質(zhì),介質(zhì)上存儲了計算機程序,計算機程序用于執(zhí)行如前述的碼頭水平運輸區(qū)輔助路徑規(guī)劃方法。
本發(fā)明還揭示了一種計算機系統(tǒng),包括處理器、計算機可讀介質(zhì),計算機可讀介質(zhì)上存儲計算機程序,計算機程序被處理器讀取并在其中運行成計算機指令,計算機指令在運行中執(zhí)行如前述的碼頭水平運輸區(qū)輔助路徑規(guī)劃方法。
本發(fā)明對比現(xiàn)有技術有如下的有益效果:本發(fā)明通過在搜索路徑的過程中加入車道組合,找出滿足指定條件的關鍵車道組合,使得規(guī)劃的路徑依次經(jīng)過關鍵車道即可。相較于現(xiàn)有技術,本發(fā)明的方法能適用于像碼頭水平運輸區(qū)那樣的要求遵循一定的循環(huán)方向、要求在特定區(qū)域執(zhí)行特定運動方式、要求在指定位置進行倒箱門的場合中,取代傳統(tǒng)的a*算法或者dijkstra算法等路徑搜尋算法來完成傳統(tǒng)算法無法正常使用的任務。
附圖說明
圖1示出了本發(fā)明的碼頭水平運輸區(qū)輔助路徑規(guī)劃方法的實施例的流程圖。
圖2a、2b示出了車道組合計算的流程圖。
具體實施方式
在結(jié)合以下附圖閱讀本公開的實施例的詳細描述之后,能夠更好地理解本發(fā)明的上述特征和優(yōu)點。在附圖中,各組件不一定是按比例繪制,并且具有類似的相關特性或特征的組件可能具有相同或相近的附圖標記。
圖1示出了本發(fā)明的碼頭水平運輸區(qū)輔助路徑規(guī)劃方法的實施例的流程。圖2a和2b示出了車道組合的計算流程。請參見圖1,并結(jié)合圖2a和2b所示,下面是對本實施例的路徑規(guī)劃方法的實施步驟的詳細描述。
步驟s101:根據(jù)區(qū)域?qū)崿F(xiàn)的功能將碼頭水平運輸區(qū)劃分為多個分區(qū)。
在劃分分區(qū)時確保劃分出的分區(qū)不重疊,多個分區(qū)包括但不限于:堆場交換區(qū)、東西高速車道區(qū)、岸橋緩沖區(qū)、岸橋交換區(qū)。
步驟s102:在劃分出的分區(qū)中定義車道,車道指定自動導引運輸車(agv)通過分區(qū)的路徑,并初始化車道狀態(tài),其中狀態(tài)為空閑(idle)時表示車道可以使用。
在定義車道時確保同一個分區(qū)內(nèi)不存在交叉的車道。
步驟s103:計算車道之間的連通性和通行時間。
使用路徑規(guī)劃算法計算車道之間的連通性,規(guī)劃成功的車道之間表示可以連通,規(guī)劃失敗的車道之間表示不可連通,其中高速車道的連通性不用計算,且在計算連通性時基于以下的限制條件:避開禁行區(qū)、滿足自動導引運輸車的轉(zhuǎn)彎半徑。
在使用路徑規(guī)劃算法計算車道之間的連通性的過程中,根據(jù)規(guī)劃成功的路徑計算整條路徑的通行時間,將規(guī)劃失敗的路徑設置到車道之間的通行時間為無窮大,將車道到自身的通行時間設置為0。
步驟s104:根據(jù)坐標和方向計算起點和終點所在的分區(qū),其中坐標在分區(qū)內(nèi)部,方向和分區(qū)內(nèi)的車道方向平行。
步驟s105:根據(jù)起點所在的分區(qū)和終點所在的分區(qū),找到對應的工況。
起點所在的分區(qū)包括但不限于堆場交換區(qū)、東西高速車道區(qū)、岸橋緩沖區(qū)、岸橋交換區(qū),終點所在的分區(qū)包括但不限于堆場交換區(qū)、岸橋緩沖區(qū)、岸橋交換區(qū)。
步驟s106:根據(jù)起點車道的連通性,找出從起點車道出發(fā)可以連通的車道列表,過濾出空閑狀態(tài)的車道,根據(jù)起點車道和車道列表中的車道的相對位置關系以及起點車道上車頭朝向,計算出車道列表中的車頭朝向,記錄為列表s1,其中列表s1包含的信息包括但不限于:車道號、父車道號、車頭朝向。
步驟s107:檢查列表s1中是否有終點車道,如果有終點車道,則檢查起點車道和終點車道的車頭朝向是否一致,若一致則找到一組可用的車道組合,且這一車道組合是起點車道和終點車道是無中間車道的直達類型。
步驟s108:如果在步驟s107中沒有找到可用的車道組合,根據(jù)終點車道的連通性找出可以連通到終點車道的車道,在過濾掉空閑狀態(tài)的車道后,根據(jù)終點車道和車道列表中的車道的相對位置關系以及終點車道上車頭朝向,計算車道列表中的車道的車頭朝向,記錄為列表e1,其中列表e1包含的信息包括但不限于:車道號、父車道號、車頭朝向。
步驟s109:檢查列表s1和列表e1中的車道是否有交集,若有則再檢查車頭朝向是否一致,若一致則找到至少一組可用的車道組合,將車頭朝向一致的交集中的車道作為中間車道。
中間車道用于完成倒箱門的功能。
步驟s110:對列表s1中的每一個車道ls1,根據(jù)車道的連通性,找出從車道ls1出發(fā)可以連通的車道列表,過濾掉空閑狀態(tài)的車道后,根據(jù)車道ls1和步驟s110中找出的車道列表中的車道的相對位置關系以及車道ls1上的車頭朝向,計算步驟s110中找出的車道列表中的車道的車頭朝向,記錄為列表s2,其中列表s2包含的信息包括但不限于:車道號、父車道號、車頭朝向。
步驟s111:檢查列表s2和列表e1中的車道是否有交集,如果有交集則檢查車頭朝向是否一致,若一致則分別從列表s2和列表e1中查找交集中車頭朝向一致的車道的父車道號,其中還從列表s1中查找在列表s2中找到的父車道號的父車道號為起點車道,從列表e1中找到的父車道號為終點車道,從而查找到從起點到終點的關鍵車道的組合。
步驟s112:如果在步驟s111中檢查出列表s2和列表e1的車道沒有交集,則對列表e1中的每一個車道le1,根據(jù)車道的連通性,查找去到車道le1可以連通的車道列表,過濾掉空閑狀態(tài)的車道,根據(jù)車道le1和步驟s112中找出的車道列表中的車道的相對位置關系以及車道le1上的車頭朝向,計算出步驟s112中找出的車道列表中的車道的車頭朝向,記錄為列表e2,其中列表e2包含的信息包括但不限于:車道號、父車道號、車頭朝向。
步驟s113:檢查列表s2和列表e2中的車道是否有交集,若有交集則檢查車頭朝向是否一致,如果一致則分別從列表s2和列表e2中查找交集中車頭朝向一致的車道的父車道號,其中還從列表s1中查找在列表s2中找到的父車道號的父車道號為起點車道,從列表e1中查找在列表e2中找到的父車道號的父車道號為終點車道,從而查找到從起點到終點的關鍵車道的組合。
步驟s114:重復執(zhí)行步驟s110到步驟s113以獲取所有的關鍵車道的組合,如果最終沒有符合條件的關鍵車道的組合則表示獲取車道組合失敗。
步驟s115:對獲得的所有的關鍵車道的組合進行打分,包括根據(jù)步驟s103中的車道之間的通行時間對每一關鍵車道組合中路徑上相鄰的兩個車道進行打分。
如果車道之間連通則打分是車道之間的通行時間,如果車道之間不連通則丟棄該車道組合。
步驟s116:對打分后的關鍵車道的組合進行排序,按照分數(shù)選出最優(yōu)路徑上的關鍵車道組合。
此外,本發(fā)明還揭示了一種計算機可讀介質(zhì),計算機可讀介質(zhì)上存儲了計算機程序,計算機程序用于執(zhí)行如前述實施例的碼頭水平運輸區(qū)輔助路徑規(guī)劃方法。
此外,本發(fā)明還公開了一種計算機系統(tǒng),計算機系統(tǒng)包括處理器、計算機可讀介質(zhì),計算機可讀介質(zhì)上存儲計算機程序,計算機程序被處理器讀取并在其中運行成計算機指令,計算機指令在運行中執(zhí)行如前述實施例的碼頭水平運輸區(qū)輔助路徑規(guī)劃方法。
以下用一個具體的示例來說明本發(fā)明的使用車道組合的計算過程。主要包括了計算車道到車道的時間、計算車道連通性、車道連通性的更新三部分。
一、計算車道到車道的時間
步驟1:獲取所有的車道id和車道方向、寬度和停止點坐標。
步驟2:配置所有的運動方式,包括(1)入彎車道寬度、(2)出彎車道寬度、(3)半徑、(4)入彎調(diào)整距離、(5)出彎調(diào)整距離、(6)入彎速度、(7)出彎速度、(8)轉(zhuǎn)彎時間、(9)出入彎車道間距、(10)運動方式id。
步驟3:遍歷起點車道集合和終點車道集合,對每一對車道執(zhí)行如下操作計算車道到車道的時間矩陣。
步驟4:計算正確的運動方式,包括以下三方面的處理:
步驟4.1:對于起點和終點車道類型相同,檢查u型彎是否符合要求,亦即車道寬度和出入彎車道間距是否符合要求,如果符合要求則選擇該u型彎。
步驟4.2:對于起點和終點車道類型不相同,檢查斜行或者s型彎是否符合要求,亦即出入彎車道間距是否符合要求,如果符合要求則選擇該斜行或者s型彎。
步驟4.3:若在步驟4.1和4.2都沒有找到符合要求的運動方式,則檢查使用兩個q型彎是否符合要求,亦即起點和終點車道間距是否大于27米,車道寬度是否符合要求;如果符合要求則選擇使用2個q型彎,如果不符合要求則設置時間為無效。
步驟5:根據(jù)步驟4獲得的運動方式配置的參數(shù),計算入彎點和出彎點坐標。
步驟6:如果是u型彎、斜行、s型彎、q型彎,則對起點到入彎點用直行方式計算時間,對出彎點到終點用直行方式計算時間,轉(zhuǎn)彎方式根據(jù)實際運行距離計算時間,這些時間之和記為起點到終點的時間。如果是2個q型彎則第一個出彎點到第二個入彎點之間也使用直行方式計算時間。計算公式需要考慮起點和終點的速度、加速度、最大速度和距離,使用梯形加速計算時間,先加速到最大速度,再減速到終點速度,如果經(jīng)過的距離大于等于給定的距離,則不可以加速到最大速度就開始減速;如果經(jīng)過的距離小于給定的距離,則可以加速到最大速度,再以最大速度勻速一段,再減速到終點速度到達終點。
二、計算車道連通性
步驟1:獲取所有的車道id及車道方向,寬度和停止點坐標.
步驟2:配置所有的運動方式:(1)入彎車道寬度、(2)出彎車道寬度、(3)半徑、(4)入彎調(diào)整距離、(5)出彎調(diào)整距離、(6)入彎速度、(7)出彎速度、(8)轉(zhuǎn)彎時間、(9)出入彎車道間距、(10)運動方式id。
步驟3:遍歷起點車道集合和終點車道集合,對每一對車道執(zhí)行如下四個方面的操作計算車道到車道的實時連通性。
步驟3.1:若起點和終點在一條直線上,并且方向符合要求,則考慮直行到達,檢查路徑是否跟禁行區(qū)沖突,如果沖突則返回蛇擺,如果不沖突則兩個車道連通。
步驟3.2:根據(jù)起點車道和終點車道相對位置,查找合適的轉(zhuǎn)彎方式,例如具有相同的y坐標(同是qcpb或者同是wstp),則可以是u型彎、兩個q型彎;如具有不同的y坐標(一個是qcpb,另一個是wstp),則可以是斜行、s型彎、兩個q型彎。
步驟3.3:對兩個q型彎,先計算第一個q型彎(執(zhí)行步驟3.4-步驟3.4.2),如果規(guī)劃成功且不與禁行區(qū)沖突,再規(guī)劃剩下的q型彎(執(zhí)行步驟3.4-步驟3.4.2),如果規(guī)劃成功且不與禁行區(qū)沖突,則兩個車道連通。
步驟3.4:遍歷每一個運動方式,檢查已經(jīng)配置的運動方式是否符合實際要求(1入彎車道寬度2出彎車道寬度3半徑4入彎調(diào)整距離5出彎調(diào)整距離6入彎速度7出彎速度8轉(zhuǎn)彎時間9出入彎車道間距),對符合要求的運動方式做如下兩個方面的檢查。
步驟3.4.1:根據(jù)運動參數(shù)和起點終點坐標,計算入彎點和出彎點坐標,起點到入彎點為直行子路徑,出彎點到終點為直行子路徑,入彎點到出彎點之間為前述運動方式,組成一個完整的路徑;
步驟3.4.2:檢查得到的路徑是否跟禁行區(qū)沖突,如果沖突則設置兩個車道不連通;如果不沖突則設置兩個車道連通。
三、車道連通性的更新
更新時機:(1)初始化時更新:計算全部車道之間的連通性;(2)添加或刪除禁行區(qū)時更新:計算全部車道之間的連通性;(3)當路徑規(guī)劃不成功時需要更新相關的車道連通性為false。
盡管為使解釋簡單化將上述方法圖示并描述為一系列動作,但是應理解并領會,這些方法不受動作的次序所限,因為根據(jù)一個或多個實施例,一些動作可按不同次序發(fā)生和/或與來自本文中圖示和描述或本文中未圖示和描述但本領域技術人員可以理解的其他動作并發(fā)地發(fā)生。
本領域技術人員將進一步領會,結(jié)合本文中所公開的實施例來描述的各種解說性邏輯板塊、模塊、電路、和算法步驟可實現(xiàn)為電子硬件、計算機軟件、或這兩者的組合。為清楚地解說硬件與軟件的這一可互換性,各種解說性組件、框、模塊、電路、和步驟在上面是以其功能性的形式作一般化描述的。此類功能性是被實現(xiàn)為硬件還是軟件取決于具體應用和施加于整體系統(tǒng)的設計約束。技術人員對于每種特定應用可用不同的方式來實現(xiàn)所描述的功能性,但這樣的實現(xiàn)決策不應被解讀成導致脫離了本發(fā)明的范圍。
結(jié)合本文所公開的實施例描述的各種解說性邏輯板塊、模塊、和電路可用通用處理器、數(shù)字信號處理器(dsp)、專用集成電路(asic)、現(xiàn)場可編程門陣列(fpga)或其它可編程邏輯器件、分立的門或晶體管邏輯、分立的硬件組件、或其設計成執(zhí)行本文所描述功能的任何組合來實現(xiàn)或執(zhí)行。通用處理器可以是微處理器,但在替換方案中,該處理器可以是任何常規(guī)的處理器、控制器、微控制器、或狀態(tài)機。處理器還可以被實現(xiàn)為計算設備的組合,例如dsp與微處理器的組合、多個微處理器、與dsp核心協(xié)作的一個或多個微處理器、或任何其他此類配置。
結(jié)合本文中公開的實施例描述的方法或算法的步驟可直接在硬件中、在由處理器執(zhí)行的軟件模塊中、或在這兩者的組合中體現(xiàn)。軟件模塊可駐留在ram存儲器、閃存、rom存儲器、eprom存儲器、eeprom存儲器、寄存器、硬盤、可移動盤、cd-rom、或本領域中所知的任何其他形式的存儲介質(zhì)中。示例性存儲介質(zhì)耦合到處理器以使得該處理器能從/向該存儲介質(zhì)讀取和寫入信息。在替換方案中,存儲介質(zhì)可以被整合到處理器。處理器和存儲介質(zhì)可駐留在asic中。asic可駐留在用戶終端中。在替換方案中,處理器和存儲介質(zhì)可作為分立組件駐留在用戶終端中。
在一個或多個示例性實施例中,所描述的功能可在硬件、軟件、固件或其任何組合中實現(xiàn)。如果在軟件中實現(xiàn)為計算機程序產(chǎn)品,則各功能可以作為一條或更多條指令或代碼存儲在計算機可讀介質(zhì)上或藉其進行傳送。計算機可讀介質(zhì)包括計算機存儲介質(zhì)和通信介質(zhì)兩者,其包括促成計算機程序從一地向另一地轉(zhuǎn)移的任何介質(zhì)。存儲介質(zhì)可以是能被計算機訪問的任何可用介質(zhì)。作為示例而非限定,這樣的計算機可讀介質(zhì)可包括ram、rom、eeprom、cd-rom或其它光盤存儲、磁盤存儲或其它磁存儲設備、或能被用來攜帶或存儲指令或數(shù)據(jù)結(jié)構(gòu)形式的合意程序代碼且能被計算機訪問的任何其它介質(zhì)。任何連接也被正當?shù)胤Q為計算機可讀介質(zhì)。例如,如果軟件是使用同軸電纜、光纖電纜、雙絞線、數(shù)字訂戶線(dsl)、或諸如紅外、無線電、以及微波之類的無線技術從web網(wǎng)站、服務器、或其它遠程源傳送而來,則該同軸電纜、光纖電纜、雙絞線、dsl、或諸如紅外、無線電、以及微波之類的無線技術就被包括在介質(zhì)的定義之中。如本文中所使用的盤(disk)和碟(disc)包括壓縮碟(cd)、激光碟、光碟、數(shù)字多用碟(dvd)、軟盤和藍光碟,其中盤(disk)往往以磁的方式再現(xiàn)數(shù)據(jù),而碟(disc)用激光以光學方式再現(xiàn)數(shù)據(jù)。上述的組合也應被包括在計算機可讀介質(zhì)的范圍內(nèi)。
提供對本公開的先前描述是為使得本領域任何技術人員皆能夠制作或使用本公開。對本公開的各種修改對本領域技術人員來說都將是顯而易見的,且本文中所定義的普適原理可被應用到其他變體而不會脫離本公開的精神或范圍。由此,本公開并非旨在被限定于本文中所描述的示例和設計,而是應被授予與本文中所公開的原理和新穎性特征相一致的最廣范圍。