Я только начал изучать генетические алгоритмы и, не глядя на какой-либо существующий GA в коде, я написал эту простую программу, цель которой состоит в том, чтобы угадать число из заданного диапазона, и это предполагаемое число должно правильно соответствовать ожидаемому числу.Я понимаю, что GA в основном развивается, пока не достигнет ожидаемого состояния.
Что делает эта программа, она генерирует случайное число, сравнивает его с правильным числом и корректирует его диапазон после каждого ошибочного предположения, и в течение определенного периода времени она правильно угадывает число, поскольку диапазон становится уже.Будет ли эта программа называться генетическим алгоритмом?
number_to_be_guessed = 10
attempt = 0
start = 0
end = 100
while True:
guessed_number = random.randint(start,end)
if guessed_number == number_to_be_guessed:
print("Number found, which is {}".format(guessed_number))
break
elif guessed_number > number_to_be_guessed:
end = guessed_number
else:
start = guessed_number
print("Attempt:{} -- Guessed Number:{} -- Start Value:{} -- End Value:{}"\
.format(attempt,guessed_number,start,end))
attempt += 1
Вывод
Попытка: 0 - Догаданный номер: 0 - Начальное значение: 0 - Конечное значение: 100
Попытка: 1 - Угаданное число: 27 - Начальное значение: 0 - Конечное значение: 27
Попытка: 2 - Угаданное число: 22 - Начальное значение: 0 - Конечное значение: 22
Попытка: 3 - Догаданный номер: 15 - Начальное значение: 0 - Конечное значение: 15
Попытка: 4 - Догаданный номер: 2 - Начальное значение: 2 -Конечное значение: 15
Попытка: 5 - Догаданный номер: 6 - Начальное значение: 6 - Конечное значение: 15
Попытка: 6 - Догаданный номер: 8 - Начальное значение: 8 - Конечное значение: 15
Попытка: 7 - Предполагаемое число: 9 - Начальное значение: 9 - Конечное значение: 15
Попытка: 8 - Предполагаемое число: 14- Начальное значение: 9 - Конечное значение: 14
Попытка: 9 - Догаданное число: 12 - Начальное значение: 9 - Конечное значение: 12
Попытка: 10 -Догаданный номер: 12 - Начальное значение: 9 - Конечное значение: 12
Найден номер, который равен 10