隨機算法簡介

一、隨機數值算法算法

  • 主要用於數值問題求解
  • 輸出每每是近似解
  • 近似解的精確度與算法執行時間成正比

eg1:計算$\pi$值性能

 設一個半徑爲r的圓及其外切圓排序

向正方形隨機投擲n個點,設有k個點落在圓內,則能夠得出落在圓內的機率是$\frac{\pi r^{2}}{4r^{2}}=\frac{k}{n}$,因此$\pi =\frac{4k}{n}$數學

eg2:計算定積分隨機數

二、Monte Carlo算法數據

  • 算法並不總能得到問題的正確解
  • 算法以較高的機率得到正確解
  • 不存在有效過程判斷算法輸出的解是否爲正確解
  • 運行時間固定,但結果是否正確是隨機的

eg:素數斷定算法】集合

三、Las Vegas算法時間

爲了確保最終得到問題的正確解,能夠反覆運行p-正確的LasVegas算法,直到找到正確解。其中運行遍數的數學指望是$\frac{1}{p}$實例

  • 算法一旦獲得問題的解,則必定是正確的。也可能不能得到問題的解
  • 反覆運行算法,最終能夠獲得問題的解
  • 運行時間隨機,獲得的解是正確的

eg:找出給定集合中第K小的元素。

四、Sherwood算法

當一個肯定算法的最壞時間複雜度與其最好時間複雜度的差異較大時,能夠在肯定算法中引入隨機性將它改形成一個隨機算法,以消除或減小算法在好壞實例之間的時間複雜度的差異。

  • 利用隨機算法改造肯定型算法,使得算法性能與輸入數據無關
  • 總能獲得問題的正確解
  • 其精髓不是避免最壞狀況發生,而是設法消除最壞行爲與特定實例之間的關聯性

eg:隨機快速排序算法。

相關文章
相關標籤/搜索