簡體   English   中英

具有“固定尺寸”的計算復雜性

[英]Computational complexity with “fixed dimension”

閱讀科學論文后:

該算法的計算復雜度為O(N^d) ,其中N為數據數, d為維。 因此,對於固定維數,算法復雜度是多項式。

現在,這使我想到(如果我沒有記錯的話),在二進制輸入的數量中定義了big-O表示法。 因此,如果我確定數據的維數,則很自然可以得出多項式解。 此外,如果我還要固定N ,即輸入的數量,我將得出O(1)解決方案,請參見相關文章: 輸入的算法復雜度是固定大小的

我的問題是,如果您認為這是多項式復雜度的有效論點? 真的可以確定一個維度和輸入數據並聲稱多項式復雜度嗎?

作為大學時代的快速回憶。 大O符號僅僅是一個上限的你的算法是如何執行。 在數學上,f(x)為O(g(x))意味着存在常數k> 0和x0使得

對於所有x> x0,f(x)<= kg(x)

要回答您的問題,您不能修復N,它是自變量。 如果您將N固定為<100,則根據定義,我們肯定可以到達O(1)。 我們可以設置一個大的K來確保所有x(<100)的f(N)<= kG(N)

是的,這樣做是合理的。

這確實取決於最初的問題,但是在大多數情況下,我會說固定尺寸的數目是合理的。 我希望本文聲稱“實用的多項式復雜性”之類的東西,或者提出一些理由來解釋為什么限制d是合理的。

您可以將其與復雜度為O(d ^ N)的解決方案進行比較,其中固定維數並不意味着該解決方案是多項式。 因此,當d較小時,提出的那個顯然更好。

這僅適用於某些算法。 我不清楚在某些情況下“尺寸”應該是什么。

例如,SubSetSum是NP完全的,因此沒有已知具有多項式復雜度的算法。 但是輸入只是N個數字。 您也可以將其視為N個位數的位長d。 但是該算法仍然具有多項式復雜度。

晶格的最短向量問題(SVP)也是如此。 輸入是一個N x N基(用整數條目說),您正在尋找最短的非零向量。 這也是一個難題,目前尚不知道具有多項式復雜度的算法。

對於許多問題,不僅僅是使問題變得困難的輸入數據的大小,還在於該數據的某些屬性或參數。 例如,許多圖問題的復雜度分別由節點和邊的數量給出。

有時,此參數之間的差異可能會很大,例如,如果您有類似O(n ^ d)的信息,則當n增大時,復雜度只是多項式,而當d增大時,則呈指數級。

如果現在碰巧有一個應用程序,您知道像維度這樣的參數值始終是相同的,或者存在一個(較小的)最大值,那么將該參數視為固定值可以為您提供有用的信息。 因此,此類陳述在科學論文中非常普遍。

但是,您不能只修復任何參數,例如您的內存是有限的,因此數據的排序是固定時間的,因為該參數的范圍太大,以至於將其視為固定值都無法提供任何有用的見解。

因此,固定所有參數通常不是一種選擇,因為必須在一個方面改變數據大小。 如果您的復雜性增長非常緩慢,則可以選擇。

例如,如果常數也非常小,則具有O(log n)運算的數據結構有時被認為具有有效的常數復雜性。 或數據結構為聯合查找結構,其中操作的攤余復雜度為O(α(n)),其中α是Ackermann函數的逆函數,該函數增長得如此緩慢,以至於不可能超過10大小n任何可以想象的硬件都可以處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM