CodingTrain / CodingTrain/Suggestion-Box

Evolution time

Ouverte
#481 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Aucune donnée de langage
Étoiles
570
Forks
85
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

I have an idea of decreasing evolution time by shifting gene index for fitness calculation.

Suppose we want to generate "To be or not to be". We compare every single letter to the result every time we want to calculate fitness. Code below increases comparing gene index starting point by 1 every 10th generation is made. Every time fitness calculation is active, comparing gene index will increase by 3.

The question arises. How can we be sure that every 3rd gene with starting point of 1 and 2 is "correct" after 20 generations? Maybe new way of reproduction or just adding an inspection array in fitness calculation method?

public class Evolution {

private final int TIME_INTERVAL = 10;
private final int GENE_SHIFT = 3;

private int geneStart = 0;

public Evolution(DNA resultDNA) {
startEvolution(resultDNA);
}

public void startEvolution(DNA resultDNA) {
initializePopulation();

int counter = 0;

while(true) {
counter++;

if(counter > TIME_INTERVAL) {
geneStart++;

if(geneStart > GENE_SHIFT - 1) {
geneStart = 0;
}

counter = 0;
}

calculateFitness(resultDNA.getGenes());
doSelection();
doReproduction();

if(evaluationOK()) {
break;
}
}
}

private void calculateFitness(Gene[] resultGenes) {
for(DNA dna : population) {
Gene[] genes = dna.getGenes();

dna.setFitness(0);

int i = geneStart;

while(i < genes.length) {
if(genes[i] == resultGenes[i]) {
dna.increaseFitness();
}

i += GENE_SHIFT;
}
}
}

private void doSelection() {
//...
}

private void doReproduction() {
//...
}
}

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Aucun fichier du dépôt, test ou point d’entrée n’est nommé. Commencez par localiser toute implémentation existante de l’évolution ou du calcul de la fitness liée à cette proposition, puis vérifiez si l’approche de décalage des gènes préserve la couverture de la fitness au fil des générations. L’issue ne définit pas ce qui est considéré comme terminé ; un contributeur devrait d’abord s’accorder sur un algorithme et des critères de validation.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java
Domaine
machine-learning
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
20/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.