Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Parameterinnstilling og Konvergens | Genetiske Algoritmer
Bio-inspirerte Algoritmer

bookParameterinnstilling og Konvergens

Note
Definisjon

Parameterinnstilling i genetiske algoritmer refererer til valg og justering av nøkkelverdier som mutasjonsrate, kryssings-sannsynlighet og populasjonsstørrelse for å kontrollere algoritmens oppførsel og forbedre konvergensen.

Statisk vs. Dynamisk Parameterinnstilling

To hovedtilnærminger finnes for å kontrollere parametere i genetiske algoritmer:

  • Statisk parameterinnstilling: parametere som mutasjonsrate, kryssings-sannsynlighet og populasjonsstørrelse fastsettes før algoritmen starter og forblir konstante under kjøringen;
  • Dynamisk (adaptiv) parameterinnstilling: parametere justeres automatisk basert på tilbakemeldinger fra populasjonen eller algoritmens fremdrift. Adaptiv innstilling bidrar til å opprettholde mangfold og unngå for tidlig konvergens.

Statisk innstilling er enkel, men kan være suboptimal når optimale innstillinger endres over tid.
Dynamisk innstilling gir fleksibilitet og forbedrer både konvergenshastighet og robusthet.

1234567891011121314151617181920212223242526272829
import numpy as np def adaptive_mutation_rate(population, min_rate=0.01, max_rate=0.2): """ Adjusts mutation rate based on population diversity. Diversity is measured as the average Hamming distance between individuals. """ def hamming_distance(ind1, ind2): return sum(a != b for a, b in zip(ind1, ind2)) n = len(population) if n < 2: return min_rate # No diversity in a single-individual population # Compute average Hamming distance distances = [] for i in range(n): for j in range(i + 1, n): distances.append(hamming_distance(population[i], population[j])) avg_distance = np.mean(distances) max_distance = len(population[0]) # Normalize diversity diversity = avg_distance / max_distance if max_distance else 0 # Inverse relationship: lower diversity -> higher mutation mutation_rate = max_rate - (max_rate - min_rate) * diversity return np.clip(mutation_rate, min_rate, max_rate)
copy

Når populasjonsmangfoldet synker, blir individene for like, og algoritmen risikerer stagnasjon. Å øke mutasjonsraten i slike øyeblikk tilfører nytt genetisk materiale, noe som hjelper med å unnslippe lokale optima. Når mangfoldet er høyt, gir lavere mutasjonsrate mer målrettet utnyttelse av gode løsninger. Denne adaptive styringen balanserer utforskning og utnyttelse dynamisk, og forbedrer stabiliteten i konvergensen.

123456789101112131415161718192021222324
import matplotlib.pyplot as plt # Simulate parameter and fitness changes for illustration generations = np.arange(1, 51) mutation_rates = np.linspace(0.2, 0.01, 50) + 0.02 * np.random.randn(50) avg_fitness = np.linspace(10, 90, 50) + 5 * np.random.randn(50) plt.figure(figsize=(10, 5)) plt.subplot(1, 2, 1) plt.plot(generations, mutation_rates, label="Mutation Rate") plt.xlabel("Generation") plt.ylabel("Mutation Rate") plt.title("Adaptive Mutation Rate Over Time") plt.legend() plt.subplot(1, 2, 2) plt.plot(generations, avg_fitness, color="green", label="Average Fitness") plt.xlabel("Generation") plt.ylabel("Average Fitness") plt.title("Population Fitness Over Time") plt.legend() plt.tight_layout() plt.show()
copy

Overvåking og konvergens

For å oppnå pålitelig konvergens og ytelse i genetiske algoritmer:

  • Start med parametere fra litteraturen eller tidligere eksperimenter;
  • Bruk statisk parameterinnstilling for enkle oppgaver, men foretrekk adaptiv justering for komplekse problemer;
  • Overvåk måleverdier som populasjonsmangfold, beste og gjennomsnittlig fitness;
  • Juster parametere dynamisk for å opprettholde balanse mellom utforskning og utnyttelse.
question mark

Hvilke utsagn om parameterjustering og konvergens i genetiske algoritmer er korrekte? Velg alle som gjelder.

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Awesome!

Completion rate improved to 6.25

bookParameterinnstilling og Konvergens

Sveip for å vise menyen

Note
Definisjon

Parameterinnstilling i genetiske algoritmer refererer til valg og justering av nøkkelverdier som mutasjonsrate, kryssings-sannsynlighet og populasjonsstørrelse for å kontrollere algoritmens oppførsel og forbedre konvergensen.

Statisk vs. Dynamisk Parameterinnstilling

To hovedtilnærminger finnes for å kontrollere parametere i genetiske algoritmer:

  • Statisk parameterinnstilling: parametere som mutasjonsrate, kryssings-sannsynlighet og populasjonsstørrelse fastsettes før algoritmen starter og forblir konstante under kjøringen;
  • Dynamisk (adaptiv) parameterinnstilling: parametere justeres automatisk basert på tilbakemeldinger fra populasjonen eller algoritmens fremdrift. Adaptiv innstilling bidrar til å opprettholde mangfold og unngå for tidlig konvergens.

Statisk innstilling er enkel, men kan være suboptimal når optimale innstillinger endres over tid.
Dynamisk innstilling gir fleksibilitet og forbedrer både konvergenshastighet og robusthet.

1234567891011121314151617181920212223242526272829
import numpy as np def adaptive_mutation_rate(population, min_rate=0.01, max_rate=0.2): """ Adjusts mutation rate based on population diversity. Diversity is measured as the average Hamming distance between individuals. """ def hamming_distance(ind1, ind2): return sum(a != b for a, b in zip(ind1, ind2)) n = len(population) if n < 2: return min_rate # No diversity in a single-individual population # Compute average Hamming distance distances = [] for i in range(n): for j in range(i + 1, n): distances.append(hamming_distance(population[i], population[j])) avg_distance = np.mean(distances) max_distance = len(population[0]) # Normalize diversity diversity = avg_distance / max_distance if max_distance else 0 # Inverse relationship: lower diversity -> higher mutation mutation_rate = max_rate - (max_rate - min_rate) * diversity return np.clip(mutation_rate, min_rate, max_rate)
copy

Når populasjonsmangfoldet synker, blir individene for like, og algoritmen risikerer stagnasjon. Å øke mutasjonsraten i slike øyeblikk tilfører nytt genetisk materiale, noe som hjelper med å unnslippe lokale optima. Når mangfoldet er høyt, gir lavere mutasjonsrate mer målrettet utnyttelse av gode løsninger. Denne adaptive styringen balanserer utforskning og utnyttelse dynamisk, og forbedrer stabiliteten i konvergensen.

123456789101112131415161718192021222324
import matplotlib.pyplot as plt # Simulate parameter and fitness changes for illustration generations = np.arange(1, 51) mutation_rates = np.linspace(0.2, 0.01, 50) + 0.02 * np.random.randn(50) avg_fitness = np.linspace(10, 90, 50) + 5 * np.random.randn(50) plt.figure(figsize=(10, 5)) plt.subplot(1, 2, 1) plt.plot(generations, mutation_rates, label="Mutation Rate") plt.xlabel("Generation") plt.ylabel("Mutation Rate") plt.title("Adaptive Mutation Rate Over Time") plt.legend() plt.subplot(1, 2, 2) plt.plot(generations, avg_fitness, color="green", label="Average Fitness") plt.xlabel("Generation") plt.ylabel("Average Fitness") plt.title("Population Fitness Over Time") plt.legend() plt.tight_layout() plt.show()
copy

Overvåking og konvergens

For å oppnå pålitelig konvergens og ytelse i genetiske algoritmer:

  • Start med parametere fra litteraturen eller tidligere eksperimenter;
  • Bruk statisk parameterinnstilling for enkle oppgaver, men foretrekk adaptiv justering for komplekse problemer;
  • Overvåk måleverdier som populasjonsmangfold, beste og gjennomsnittlig fitness;
  • Juster parametere dynamisk for å opprettholde balanse mellom utforskning og utnyttelse.
question mark

Hvilke utsagn om parameterjustering og konvergens i genetiske algoritmer er korrekte? Velg alle som gjelder.

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 3
some-alt