2013-06-13 30 views
1

我嘗試用遺傳算法解決這個問題,並且難以選擇適應度函數。 我的問題與原來的旅行推銷員問題有點不同,因爲人口也可能是贏得單位不是壞死地包含所有的城市。進化算法 - 旅行推銷員

所以,我對每個單位都有2個價值:他訪問的城市數量,總時間和訪問城市的順序。 我嘗試了2-3次健身功能,但他們不給予好感。

我需要良好的健身功能的想法,考慮到他訪問的城市數量和總時間。

謝謝!

回答

2

除了使用帕累託方法或某種加權求和的Peladao的建議有兩個可能性,我想爲了完整起見而提及。

首先,你可以優先考慮你的健身功能。因此,人口中的個人按照第一個目標,第二個目標,第三個目標排列。因此,只有在第一個目標中兩個人相等時,他們纔會通過第二個目標進行比較。如果在你的目標中有明顯的優勢,這可能是一種可行的方法。其次,你可以將你的兩個目標定義爲只有當他們超過某個閾值時才受到懲罰的約束。例如,這可能是可行的。城市數量不應該在一定範圍內,例如[4; 7],但如果是4或5則無關緊要。這類似於加權求和方法,其中個體目標對組合適應值的貢獻相差幾個數量級。

帕雷託方法是唯一對待所有目標同等重要的方法。它需要適用於多目標優化的特殊算法,例如NSGA-II,SPEA2,AbYSS,PAES,MO-TS,...

無論如何,如果你能顯示2-3適應度你嘗試過的功能。也許有相當簡單的錯誤。

+0

謝謝。我會用這個想法。我認爲我的問題在於交叉,我會在其上發佈新問題。 – user2459338