void storebest() {//todo: przenieś fval do struktur danych, potem linq.max int i; float val = -1; for (i = 0; i < classicPopulation.Individuals.Length; i++) { if (this.fval[i] > val) { val = this.fval[i]; this.bestIndividual = classicPopulation.Individuals[i]; } } //todo: pomysł nowotniaka, stop gdy funkcja przystosowania przestanie się poprawiać, bestval }
//todo: zdecyduj się, parametry czy nie void update(ClassicIndividual bestIndividual) { for (int i = 0; i < quantumPopulation.Individuals.Length; i++) { for (int j = 0; j < quantumPopulation.Individuals[i].Chromosome.Length; j++) { double sum = 0; int bestamp = Bin2dec(CopySlice(bestIndividual.Chromosome, j, 2)); for (int amp = 0; amp < quantumPopulation.Individuals[i].Chromosome[j].Qubits.Length; amp++) { if (amp != bestamp) { //todo: no to już poszalałem sum += Math.Pow(quantumPopulation.Individuals[i].Chromosome[j].Qubits[amp] *= 0.99, 2); } } quantumPopulation.Individuals[i].Chromosome[j].Qubits[bestamp] = Math.Sqrt(1 - sum); } } }