0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

近似算法及對(duì)某些標(biāo)準(zhǔn)問(wèn)題的適用性

新機(jī)器視覺(jué) ? 來(lái)源:機(jī)器之心 ? 作者:機(jī)器之心 ? 2022-07-06 11:02 ? 次閱讀

新冠大流行給世界帶?來(lái)了巨大的改變,全球科學(xué)家和研究人員在研制有效的疫苗。他們正在做的就是從廣闊的樣本空間中近似地收緊可能性范圍,并盡力得到一些有效解。近似在我們的生活中發(fā)揮了重要作用。以在線食品配送為例,我們經(jīng)常從網(wǎng)上訂購(gòu)食物,享受快速送達(dá)的服務(wù)。但你想過(guò)這些 app 后端運(yùn)行的什么算法讓快遞員在更短時(shí)間內(nèi)抵達(dá)目的地嗎?答案是近似算法。這類(lèi)問(wèn)題就是「旅行商問(wèn)題」。

食品配送:旅行商問(wèn)題的現(xiàn)實(shí)應(yīng)用。本文將介紹近似算法及其對(duì)某些標(biāo)準(zhǔn)問(wèn)題的適用性,以及哪些因素會(huì)影響到特定算法的選擇。什么是近似算法?近似算法是一種處理優(yōu)化問(wèn)題 NP 完全性的方式,它無(wú)法確保最優(yōu)解。近似算法的目標(biāo)是在多項(xiàng)式時(shí)間內(nèi)盡可能地接近最優(yōu)值。它雖然無(wú)法給出精確最優(yōu)解,但可以將問(wèn)題收斂到最終解的近似值。其目標(biāo)滿足以下三個(gè)關(guān)鍵特性:

能夠在多項(xiàng)式時(shí)間內(nèi)高效運(yùn)行;

能夠給出最優(yōu)解;

對(duì)于每個(gè)問(wèn)題實(shí)例均有效。

背景數(shù)學(xué)表達(dá)式的評(píng)估常伴隨常量、變量分析和方程的階,可用于衡量近似的復(fù)雜度。此類(lèi)評(píng)估將問(wèn)題分解為 P 和 NP 難問(wèn)題。P 問(wèn)題和 NP 問(wèn)題的策略P 問(wèn)題是指可以在多項(xiàng)式時(shí)間內(nèi)求解的問(wèn)題。NP 表示不確定性多項(xiàng)式時(shí)間(nondeterministic polynomial time),NP 問(wèn)題是指在多項(xiàng)式時(shí)間內(nèi)近似驗(yàn)證答案的問(wèn)題。但目前人們發(fā)現(xiàn),很多此類(lèi)問(wèn)題需要指數(shù)時(shí)間才能求解。

P 和 NP 策略。真正的爭(zhēng)論在于 P=NP 還是 P≠NP。之前的一些研究證明這兩種都是對(duì)的。如果一個(gè)問(wèn)題是多項(xiàng)式次方,則存在多個(gè)最優(yōu)算法。因此,在 NP 完全問(wèn)題中,存在兩種方法找到近優(yōu)解,然后選擇最適合的算法。如果輸入的大小比較小,則具備指數(shù)運(yùn)行時(shí)間的算法可能會(huì)比較適合。其次,通過(guò)用近似算法替代確定性算法,我們?nèi)匀荒軌蛟诙囗?xiàng)式時(shí)間內(nèi)找到近優(yōu)解。近似算法的復(fù)雜度可以從輸入大小和近似因子中推斷出來(lái)。接下來(lái),我們通過(guò)一些示例,深入探索這些算法如何應(yīng)用到現(xiàn)實(shí)問(wèn)題中。分區(qū)問(wèn)題(Partition Problem)在計(jì)算機(jī)科學(xué)領(lǐng)域,該問(wèn)題的定義是:給定多重正整數(shù)集 X,它可以被分割為兩個(gè)元素之和相等的子集 X1 和 X2,即每個(gè)子集的數(shù)值之和與另一個(gè)子集相等。

例如,X={3,4,1,3,3,2,3,2,1} 可以被分割為 X1={3,3,2,3} 和 X2={4,2,3,1,1},二者的數(shù)值之和都是 11。類(lèi)似地,X={1,3,1,2,1,2} 可以被分成 X1={2,1,1,1} 和 X2={3,2},兩個(gè)子集的數(shù)值之和都是 5。有趣的是,這不是唯一解。X1={1,3,1} 和 X2={2,1,2} 的數(shù)值之和也為 5,這表明存在多個(gè)可能的子集。這就是 NP 完全問(wèn)題,存在偽多項(xiàng)式時(shí)間動(dòng)態(tài)規(guī)劃解,可獲得該問(wèn)題的近優(yōu)解。方法和決定步驟現(xiàn)在,我們開(kāi)始分析這個(gè)問(wèn)題,把它分解成數(shù)個(gè)單獨(dú)的標(biāo)準(zhǔn)問(wèn)題。這里,我們想要找出多重集的元素之和相等的子集,那么該問(wèn)題就可以分解成以下兩個(gè)問(wèn)題:

子集和問(wèn)題:子集 X 的元素之和等于數(shù)字 W。

多路數(shù)字分割:給定整數(shù)參數(shù) W,確定如何將 X 分割成 W 個(gè)等額子集。

近似算法如上所述,將分區(qū)問(wèn)題分解為多路分割與子集和問(wèn)題后,我們就可以考慮為這些問(wèn)題而開(kāi)發(fā)的算法,包括:貪婪數(shù)字分割(Greedy number Partitioning)該算法循環(huán)遍歷所有數(shù)字,將每個(gè)數(shù)字分配給總和最小的子集。如果數(shù)字未以排序方式排列,則其運(yùn)行時(shí)復(fù)雜度為 O(n),近似率約為 3/2。其 Python 偽代碼如下:

def find_partition(numbers):    """Separate the available numbers into two eqal sum series.    Args:        numbers: collection of numbers, for example list of integers.    Returns:        Two lists of numbers.    """    X = []    Y = []    sum_X = 0    sum_Y = 0    for n in sorted(numbers, reverse=True):        if sum_X < sum_Y:           X.append(n)           sum_X = sum_X + n        else:           Y.append(n)           sum_Y = sum_Y + n    return (X, Y)

將數(shù)字排序,則運(yùn)行時(shí)復(fù)雜度增加到 O(n logn),近似率增加到 7/6。如果數(shù)字在 [0,1] 范圍內(nèi)均勻分布,則近似率約為 1 + O(log logn/n)。

分區(qū)問(wèn)題圖示。上圖用二叉樹(shù)的形式展示所有分區(qū)。樹(shù)的根部表示集合中的最大數(shù),每一級(jí)對(duì)應(yīng)輸入數(shù)字,每個(gè)獨(dú)立分支對(duì)應(yīng)不同的子集。遍歷這些集合需要深度優(yōu)先遍歷(depth-first traversal),所需的空間復(fù)雜度為 O(n),時(shí)間復(fù)雜度為 O(2^n)。適用性:該算法可以根據(jù)情況進(jìn)行修改,以便改善運(yùn)行時(shí)復(fù)雜度。每一級(jí)的首要目標(biāo)是構(gòu)建一個(gè)分支,將當(dāng)前數(shù)字分配給總和最小的子集。首先通過(guò)貪婪數(shù)字分割找出總和,然后切換到優(yōu)化,得到全多項(xiàng)式時(shí)間近似解。Karmarkar-Karp 算法Karmarkar-Karp 算法指以降序方式排列數(shù)字的最大差分方法,該方法將差值替換掉原來(lái)的數(shù)字不斷放進(jìn)集合中。其 Java 偽代碼實(shí)現(xiàn)如下:

int karmarkarKarpPartition(int[] baseArr) {        // create max heap        PriorityQueue heap = new PriorityQueue(baseArr.length, REVERSE_INT_CMP);
    for (int value : baseArr) {                heap.add(value);        }
    while (heap.size() > 1) {        int val1 = heap.poll();            int val2 = heap.poll();            heap.add(val1 - val2);    }
    return heap.poll();}

該算法包含輸入集 S 和參數(shù) k。將 S 分割成 k 個(gè)子集,使這些子集中的數(shù)字總和相等,從而構(gòu)建期望輸出。該算法包含如下關(guān)鍵步驟:

以降序方式排列數(shù)字;

用差值替換掉原來(lái)的數(shù)字,直到只有一個(gè)數(shù)字;

采用回溯算法,完成分區(qū)。

適用性:該算法通過(guò)構(gòu)建二叉樹(shù)來(lái)假設(shè)分區(qū)。每一級(jí)表示一對(duì)數(shù)字,左側(cè)的分支表示用差值替換數(shù)字,右側(cè)的分支表示將差值放置在同一個(gè)子集中。該算法先通過(guò)最大差分求得解,然后繼續(xù)尋找更好的近似解。它所需的空間復(fù)雜度為 O(n),但最糟糕的情況下所需的時(shí)間復(fù)雜度可能會(huì)達(dá)到 O(2^n)。裝箱問(wèn)題裝箱問(wèn)題有多種現(xiàn)實(shí)應(yīng)用。例如,如何從根本上改善印度的垃圾管理系統(tǒng)。這個(gè)問(wèn)題就可以通過(guò)裝箱問(wèn)題來(lái)解決,幫助當(dāng)局決定 x 量的垃圾需要多少個(gè)垃圾箱。

在計(jì)算機(jī)科學(xué)領(lǐng)域中,該問(wèn)題可用于多種內(nèi)存管理技術(shù)。在該算法中,我們可以通過(guò)去除冗余和最小化空間浪費(fèi)來(lái)包裝不同形狀和大小的對(duì)象。例如:給定一個(gè)包含 n 個(gè)項(xiàng)的集合,每個(gè)項(xiàng)的大小分別為 s1,s2,。.,sn (0《=si《=1, 1《=i《=n),如何將它們裝進(jìn)最少數(shù)量的箱子?經(jīng)典方法:1. 鄰近適應(yīng)算法 (Next Fit):查看當(dāng)前項(xiàng)是否適合當(dāng)前箱子。如果適合,則將物品放置在箱子里,否則開(kāi)啟一個(gè)新的箱子。我們來(lái)看一個(gè)示例:項(xiàng)是 0.5, 0.7, 0.5, 0.2, 0.4, 0.2, 0.5, 0.1, 0.6,箱子大小均為 1。

基于鄰近適應(yīng)算法的裝箱解決方案(M = 箱子總數(shù) = 6)。2. 最先匹配法 (First Fit):按順序?yàn)g覽箱子,在第一個(gè)箱中放置新的項(xiàng),直到放不下再啟用新的箱子。我們來(lái)看一個(gè)示例:項(xiàng)是 0.5, 0.7, 0.5, 0.2, 0.4, 0.2, 0.5, 0.1, 0.6,箱子的大小均為 1。

基于最先匹配法的裝箱解決方案(M = 箱子總數(shù) = 5)。3. 最優(yōu)匹配法 (Best Fit):按順序?yàn)g覽箱子,將每一個(gè)新的項(xiàng)放在最適合的箱子里。如果不適合,則創(chuàng)建一個(gè)新的箱子。我們來(lái)看一個(gè)示例:項(xiàng)是 0.5, 0.7, 0.5, 0.2, 0.4, 0.2, 0.5, 0.1, 0.6,箱子的大小均為 1。

基于最優(yōu)匹配法的裝箱解決方案(M = 箱子總數(shù) = 5)。該方法的輸出與最先匹配法相同,但該方法的優(yōu)點(diǎn)是實(shí)現(xiàn)速度比 FFD 快,即時(shí)間復(fù)雜度為 O(nlogn)。自然方法:如果我們提前知道所有項(xiàng)的大小,那么自然的解決方案就是首先按照從大到小排序,然后應(yīng)用以下啟發(fā)式方法:

最先匹配遞減法

最優(yōu)匹配遞減法

假設(shè)有相同的示例 0.7, 0.6, 0.5, 0.5, 0.5, 0.4, 0.2, 0.2, 0.1,則排序?yàn)?0.7, 0.6, 0.5, 0.5, 0.5, 0.4, 0.2, 0.2, 0.1。

優(yōu)化方法(M = 箱子總數(shù) = 4)。

審核編輯:郭婷


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7525

    瀏覽量

    88382
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4804

    瀏覽量

    84910

原文標(biāo)題:什么是近似算法?它適用于哪些問(wèn)題?這篇文章給你答案

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    hdi高密度互連PCB電金適用性

    元器件的數(shù)量和體積。 激光鉆微孔技術(shù):與傳統(tǒng)PCB相比,HDI PCB可以利用激光鉆孔技術(shù)實(shí)現(xiàn)更小的孔徑,從而提高線路密度。 高信號(hào)完整和高元器件密度:提供了更好的信號(hào)完整,并比常規(guī)PCB有更高的層數(shù),具有更高的元器件密度和更小的體積。 二、電金技
    的頭像 發(fā)表于 01-10 17:00 ?113次閱讀
    hdi高密度互連PCB電金<b class='flag-5'>適用性</b>

    AI大潮下通訊基板材料的普遍適用性(下)

    本篇文章從5G材料的應(yīng)用角度展望了基板材料在AI浪潮下面臨的新機(jī)遇與挑戰(zhàn)。在上期的分享中,我們深入分析了通訊基板材料的廣泛適用性,并探討了PPO樹(shù)脂改性的高速基板材料如何逐漸展現(xiàn)出更強(qiáng)的市場(chǎng)競(jìng)爭(zhēng)力
    的頭像 發(fā)表于 01-08 11:09 ?128次閱讀
    AI大潮下通訊基板材料的普遍<b class='flag-5'>適用性</b>(下)

    AI大潮下通訊基板材料的普遍適用性(上)

    02. ? 通訊基板材料的 “普遍適用性” 開(kāi)篇,筆者想引用一句耳熟能詳?shù)拿裕骸半娮与娐罚牧鲜腔?。”這句話深刻地揭示了材料在電子電路設(shè)計(jì)與制造中的重要。 眾所周知,傳統(tǒng)的FR-4基板材料主要由樹(shù)脂、玻璃增強(qiáng)材料、陶瓷粉填充物和銅箔組
    的頭像 發(fā)表于 01-06 09:15 ?282次閱讀
    AI大潮下通訊基板材料的普遍<b class='flag-5'>適用性</b>(上)

    言必信電源濾波器的適用性:不僅僅局限于用電穩(wěn)定且消耗小的器材

    電源濾波器用于濾除電源線上雜波和干擾,適用于多種設(shè)備,不僅限于用電穩(wěn)定和電力消耗小的器材,對(duì)保障設(shè)備正常運(yùn)行、系統(tǒng)穩(wěn)定性和電磁兼容至關(guān)重要。
    的頭像 發(fā)表于 11-26 14:45 ?253次閱讀
    言必信電源濾波器的<b class='flag-5'>適用性</b>:不僅僅局限于用電穩(wěn)定且消耗小的器材

    706-512B-010分體雷達(dá)液位計(jì)適用于哪些液體

    分體雷達(dá)液位計(jì)憑借其高精度、高穩(wěn)定性以及廣泛的適用性,在石油化工、制藥、食品、化肥、污水處理等多個(gè)行業(yè)中得到了廣泛應(yīng)用。
    的頭像 發(fā)表于 09-30 15:21 ?262次閱讀

    如何保障光伏發(fā)電裝置的安全適用性

    確保光伏發(fā)電裝置安全和質(zhì)量高標(biāo)是重點(diǎn)。安裝正確驗(yàn)證、系統(tǒng)性能檢查及持續(xù)能源輸出確認(rèn)是基本要求。SEAWARDPV200PV200測(cè)試儀提供高效測(cè)試及診斷,支持無(wú)線NFC連接pvmobileAndroid應(yīng)用程序進(jìn)行數(shù)據(jù)傳輸和即時(shí)分析。
    的頭像 發(fā)表于 08-01 15:15 ?299次閱讀
    如何保障光伏發(fā)電裝置的安全<b class='flag-5'>性</b>和<b class='flag-5'>適用性</b>

    熱門(mén)研華工控機(jī):除了研華工控610l,研華還有哪些產(chǎn)品適用性高?

    在工業(yè)自動(dòng)化和智能系統(tǒng)領(lǐng)域,研華科技一直以其卓越的產(chǎn)品質(zhì)量和廣泛的產(chǎn)品線而備受贊譽(yù)。除了廣為人知的工控 c之外,研華還有許多其他產(chǎn)品在不同的應(yīng)用場(chǎng)景中展現(xiàn)出了高適用性。接下來(lái)就隨蘇州研訊電子科技
    的頭像 發(fā)表于 07-16 14:04 ?429次閱讀

    科普ROHS:理解環(huán)保標(biāo)準(zhǔn)的重要

    義與目的,旨在幫助讀者更好地理解ROHS標(biāo)準(zhǔn)的重要。ROHS是什么?ROHS,全稱(chēng)《關(guān)于限制在電子電氣設(shè)備中使用某些有害成分的指令》,是歐盟制定的一項(xiàng)環(huán)保標(biāo)準(zhǔn)。
    的頭像 發(fā)表于 06-17 13:52 ?619次閱讀
    科普ROHS:理解環(huán)保<b class='flag-5'>標(biāo)準(zhǔn)</b>的重要<b class='flag-5'>性</b>

    論RISC-V的MCU中UART接口的重要

    適用性和重要。在某些應(yīng)用場(chǎng)景中,只需要異步通信能力的UART接口就能滿足需求,從而簡(jiǎn)化了系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)。 綜上所述,RISC-V的MCU中UART接口的重要在于其廣泛的
    發(fā)表于 05-27 15:52

    M5_4芯接頭便捷怎么樣

      德索工程師說(shuō)道M5_4芯接頭在便捷方面確實(shí)展現(xiàn)出了顯著的優(yōu)點(diǎn),這些優(yōu)點(diǎn)不僅體現(xiàn)在其設(shè)計(jì)、安裝、使用等多個(gè)方面,還體現(xiàn)在其廣泛的適用性和靈活的連接方式上。以下是對(duì)M5_4芯接頭便捷的詳細(xì)分析:
    的頭像 發(fā)表于 05-14 17:39 ?248次閱讀
    M5_4芯接頭便捷<b class='flag-5'>性</b>怎么樣

    影響壓縮空氣儲(chǔ)能系統(tǒng)適用性的技術(shù)參數(shù)有哪些

    壓縮空氣儲(chǔ)能系統(tǒng)(CAES )的適用性受多種技術(shù)參數(shù)的影響,這些參數(shù)共同決定了系統(tǒng)的性能、效率和經(jīng)濟(jì)。
    的頭像 發(fā)表于 04-25 15:07 ?703次閱讀

    鴻蒙系統(tǒng)三防平板電腦突出的性能和環(huán)境的適用性

    、安全高鴻蒙系統(tǒng)三防平板在安全方面也表現(xiàn)出色。系統(tǒng)內(nèi)置了多種安全機(jī)制,包括指紋解鎖、面部識(shí)別等生物識(shí)別技術(shù),能夠有效保護(hù)用戶隱私和設(shè)備安全。同時(shí),平板還支持華為獨(dú)有的芯片級(jí)安全解決方案,從硬件層面
    發(fā)表于 04-09 14:24

    微型絲桿在醫(yī)療領(lǐng)域的適用性

    微型絲桿是一種細(xì)小絲桿,具有良好的耐腐蝕性能和高強(qiáng)度,在現(xiàn)代醫(yī)療領(lǐng)域中,微型絲桿的應(yīng)用越來(lái)越廣泛,這種機(jī)械傳動(dòng)零件可以被用于一系列不同的應(yīng)用中。
    的頭像 發(fā)表于 03-29 17:24 ?452次閱讀
    微型絲桿在醫(yī)療領(lǐng)域的<b class='flag-5'>適用性</b>

    單級(jí)功率因數(shù)校正電路的適用性分析

    電子發(fā)燒友網(wǎng)站提供《單級(jí)功率因數(shù)校正電路的適用性分析.doc》資料免費(fèi)下載
    發(fā)表于 03-18 14:41 ?0次下載

    電子鎮(zhèn)流器熱保護(hù)器:優(yōu)勢(shì)和適用性分析

    電子鎮(zhèn)流器熱保護(hù)器:優(yōu)勢(shì)和適用性分析? 電子鎮(zhèn)流器熱保護(hù)器是一種應(yīng)用于電子鎮(zhèn)流器的熱保護(hù)裝置,其作用是在電子鎮(zhèn)流器過(guò)熱時(shí)自動(dòng)斷開(kāi)電路,以保護(hù)電子鎮(zhèn)流器免受損壞。本文將從優(yōu)勢(shì)和適用性兩個(gè)方面對(duì)電子
    的頭像 發(fā)表于 02-01 17:25 ?591次閱讀