Skip to content

EndeavourBlack/GeneticAlgorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Swift Genetic Algorithm

A genetic algorithm written in swift. Linux compatible.

Swift 3.0 Platforms Linux License MIT

Ussage

class TestFitnessCalculator : FitnessCalculator {

    let solution = [1,5,2,1,6,3,1,7,8,2,5,7,3,8,1,2,5,7,3,8,9,2,4,6]

    func calculateFitness(candidate: Candidate) -> Double {
        var sum = -24.0
        var rawGenome = candidate.getGenome().getGenome()
        for var index = 0; index < candidate.getGenome().length; index += 1 {
            let genomeValueAtIndex = rawGenome[index]

            if Double(solution[index]) == (Double(Int(genomeValueAtIndex * 1000))/100) {
                sum += 1
            }

        }

        return sum
    }

}

var population = DefaultPopulation(model: DefaultPopulationModel(), candidateBreeder: DefaultCandidateBreeder(), fitnessCalculator: TestFitnessCalculator())

var itteration = 0

population.evolveUntilFit({ (fittest: Candidate) -> () in

        itteration += 1
        print(itteration)
        print(fittest.getFitness())

    }) { (fittest) -> () in
        print(fittest)
}

Notes

This is a port of an old Java library I wrote and has some relics of java programming patterns in it.

About

A genetic algorithm written in swift.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages