簡體   English   中英

根據輸入大小來表達一種算法相對於另一種算法的加速

[英]Expressing the speed up of one algorithm over another as a function of input size

我有兩種矩陣乘法算法-一種效率比另一種算法高-並且在N = [500, 1000, 1500, 2000, 2500]計算兩個N x N矩陣的乘積時,已經測量了兩者的速度。

我現在想展示速度作為N的函數的總體提高。 我怎樣才能做到這一點?

您可以將曲線擬合為快速運行時與慢速運行時的比率。 生成的曲線將使您根據輸入大小來加快速度。

為了使它真正有用,我建議您確定每種算法的最佳和最差情況。 因此,您確定了四組:

  • 快速算法的最佳案例
  • 快速算法的最壞情況
  • 慢速算法的最佳情況
  • 慢速算法的最壞情況

理想情況下,最佳情況和最壞情況是相同的,在這種情況下,您可以通過采用(最佳情況慢)/(最佳情況快)和(最壞情況慢)/(最壞情況快)來限制加速。

實際上,可能存在不可忽略的輸入類別,它們表示:

  • 快速算法的最佳情況,而慢速算法的最壞情況
  • 快速算法的最壞情況,慢速算法的最好情況

在這種情況下,您的實際界限將是(最壞情況下較慢)/(最壞情況下較快)和(最壞情況下較快)/(最壞情況下較慢)。

請注意,重要的是,您已經確定了一致的類,並且正在將Apple與Apple進行比較-也就是說,您提供的任何功能都是使用相同的情況比較算法。 您需要充分了解每種算法,才能了解兩者之比的最佳和最差情況。

暫無
暫無

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

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