crossover

    1熱度

    1回答

    例如,我們有這樣的問題: 最大化函數f(X)= X^2,其中0≤X≤31 使用二進制編碼,我們可以用5位表示的個體。在選擇方法之後,我們找到遺傳算子。 對於這個問題(或任何優化問題),有什麼優點和以下的缺點: 高或低跨越速度 使用1點交叉 採用多點交叉 使用均勻交叉 這就是我想出迄今: 高交叉率和多點交叉可以減少父母有良好的體能素質,併產生更糟糕的後代 低交叉率意味着該解決方案將需要更長的時間來收

    1熱度

    2回答

    在工作訂單追蹤中,有一個字段「LEAD」,它將顯示潛在客戶的ID。 在我們的要求中,我們必須顯示Leadname和Lead ID。 因此,我在Workorder中爲Leadname創建了一個新字段,並在Wordorder和Person之間使用了一個新的關係的交叉域。關係where子句是personid =:導致 交叉域複製PERSON對象的Displayname屬性中Leadname的值,並且在我

    1熱度

    1回答

    我遵循遺傳算法的方法來解決揹包問題here。我知道他們使用直接值編碼方案而不是二進制表示法。交叉功能如下: def cxSet(ind1, ind2): """Apply a crossover operation on input sets. The first child is the intersection of the two sets, the second child is th

    2熱度

    1回答

    我正在使用GA Package來最小化函數。以下是我已實施的幾個階段。 0庫和數據集 library(clusterSim) ## for index.DB() library(GA) ## for ga() data("data_ratio") dataset2 <- data_ratio set.seed(555) 1.二進制編碼,並生成初始種羣。 initial_popu

    2熱度

    1回答

    遺傳算法中有一個階段,我們應該選擇交叉染色體從父母到後代。 通過二進制形式很容易做到。 但是如果我們使用值編碼來編碼染色體該怎麼辦?假設我染色體中的一個位是DOUBLE類型的值,比如0.99,它的範圍是(0-1),因爲它代表了一個概率。 如何交叉此DOUBLE號碼? 轉換爲二進制交叉然後轉換回來...?

    0熱度

    1回答

    我有兩個陣列(矩陣與一個行)temp1和temp2如下: temp1=[1 2 3 4 5 6 7 8 9] temp2=[10 11 12 13 14 15 16 17 18] 和我有一個索引pn=3。我需要輸出如下: tempNew=[1 2 3 13 14 15 16 17 18] 即如何創建tempNew使得在指數高達pn所有值來自temp1和超越指數pn所有值來自temp2?

    1熱度

    1回答

    我一直在重新編碼,優化和解碼遺傳算法。我第一次嘗試的是有序交叉的旅行推銷員,這很有效。我發現一篇文章試圖優化更復雜的基因組,同時優化2d包裝問題。 作者用有意義的反向波蘭符號來編碼問題。它使用部件和V或H作爲操作者的組合。 即34H5V 與具有被解析爲這是我的最終佈局一個堆疊元件堆棧進行解碼。也就是說,直到某個點的操作員數量必須比直到同一點的部件數量少1個。作者然後說,他使用交叉混合交叉,對操作員

    0熱度

    1回答

    我的問題是如何執行交叉並避免重複? 考慮p1 = {1, 2, 5, 6, 3, 4}和p2 = {2, 6, 5, 4, 1, 3} 一個交叉的是res = {1, 2, 5 , 6, 1 ,3} 正如你看到有一個重複... 我們能否避免呢? 這裏是我的代碼 private static Chromosome crossover(Chromosome chromosome1, Chromosom

    2熱度

    1回答

    我有一個問題,我想根據一些適應度函數使用遺傳算法搜索3D空間中的最佳位置。因爲我正在尋找一個位置,所以我的染色體由3個浮點數表示。目前,交叉是通過從一個父母中取出1或2個數字並將剩餘的數字從另一個父母中取出來完成的。 當像這樣交叉時,下一代將只包含與起始羣體中染色體具有相似X,Y或Z座標的位置。因此,沒有太多的變化是可能的。我的問題是,如果最好通過對我的染色體使用另一種表示法(例如位)來解決這個問

    1熱度

    1回答

    我正在構建一個項目,其主要目標是使用6個給定數字和主要操作符(+, - ,*,/)來查找給定數字(如果可能,否則最接近可能)。想法是用反向波蘭語(後綴)表示法隨機生成表達式,使用給定的數字和操作符,因爲我發現它是最容易生成和計算的。這些表達式是我的遺傳算法的種羣中的個體。這些表達式具有Java中Strings的ArrayList形式,其中Strings既是運算符也是操作數(給出的數字)。 這裏的主