Rubicite Genetic Algorith Framework Tutorial
General:
Basic Info
Selection Bias
Hard Problem
Downloads
Crossovers:
Cycle
Order X
Order 1
Edge Recombination
PMX Crossover
Order Multiple
Direct Insertion
Mutations:
Inversion
Random Slide
Insertion
Single Swap
Random Swap
Scramble
Crossover Technique:
Order X
VB.NET 2008 Source Code
Public Sub Permutation_Order_X(ByRef Child1 As PChromo, ByRef Child2 As PChromo, ByRef Parent1 As PChromo, ByRef Parent2 As PChromo) 'Crossover parents i and i + 1 Dim CrossPoint As Integer = RAND.Next(1, AlleleCount - 1) Dim HS1 As New Hashtable Dim Hs2 As New Hashtable 'Fill up Childrenz up to CrossPoint For j As Integer = 0 To CrossPoint - 1 Child1.Alleles(j) = Parent1.Alleles(j) HS1.Add(Parent1.Alleles(j), Nothing) Child2.Alleles(j) = Parent2.Alleles(j) Hs2.Add(Parent2.Alleles(j), Nothing) Next 'Fill in the rest of Child 1 Dim marker As Integer = CrossPoint For j As Integer = 0 To AlleleCount - 1 If Not HS1.Contains(Parent2.Alleles(j)) Then Child1.Alleles(marker) = Parent2.Alleles(j) HS1.Add(Parent2.Alleles(j), Nothing) marker += 1 End If Next 'Fill in the rest of Child 2 marker = CrossPoint For j As Integer = 0 To AlleleCount - 1 If Not Hs2.Contains(Parent1.Alleles(j)) Then Child2.Alleles(marker) = Parent1.Alleles(j) Hs2.Add(Parent1.Alleles(j), Nothing) marker += 1 End If Next End Sub
© 2008/2009 Rubicite Interactive Inc.