2010-12-09 84 views
0

我需要概率性地從一組數據中選擇一個樣本。如果我有一組值array[12, 15, 29, 17, 12, 29]。標準方法是計算總數(12 + 15 + 29 + 17 + 12 + 29),然後創建一個偏好較高值的微調。有點像餅圖,我們從樣本集中隨機選擇,但贊成具有最高價值的個人。逆向概率選擇(進化算法的逆適應選擇)

以上數字隨機選擇array[0]的例子爲11%,而array[5]爲25%。這很好

我想要做的事情是贊成較低的數字和所有我的頭腦風暴的能力,我無法找到一種方法來讓較低的數字具有統計上相同的選擇概率,就像我們選擇較大的數字一樣。我接觸過這個問題

的方法之一是增加array[]然後減去從總給你一個array2[102, 99, 85, 102, 85]然後重新計算百分比每個值從array2[].給予array[0] 21%。這個解決方案的問題是在array[1]中具有接近的選擇統計概率的元素具有較遠的選擇百分比。

我們也嘗試只交換最低和最高,然後是下一個最低的百分比值,但是這給了我們第一次嘗試的同樣的問題。

我覺得應該有一個簡單的方法來解決這個問題。

注意:如果您熟悉進化/遺傳計算,我們將嘗試根據健身比例進行父母選擇。但是,我們的適應度值是顛倒的(越低越好)。那麼,如果適合度越低越好,我們如何爲父母選擇健身比例?

+0

我無法弄清楚你想要什麼。你的第4段表示「贊成較低的數字......給較低的數字一個統計上相等的概率」,這是一個矛盾。你想要什麼?每個數字有相同的概率,在這種情況下是1/5,還是其他的? – 2010-12-09 04:10:49

回答

2

你爲什麼不用反向工作?在你的例子中概率的基數組是array[1.0/12, 1.0/15, 1.0/29, 1.0/17, 1.0/12, 1.0/29],其餘的將保持不變。