У меня проблема с генетическим алгоритмом, но я застрял в локальном оптимуме. Как вы можете видеть из фрагмента, он просто не может решить проблему, независимо от того, сколько генов или генов я добавляю в поколение.
Код:
import random
class ZenGarden:
def __init__(self, width, height, rocks):
self.width = width
self.height = height
self.rock_count = len(rocks)
self.base_grid = [[0] * width for _ in range(height)] # Initialize a base grid
# Place rocks in the base grid as -1
for x, y in rocks:
self.base_grid[y][x] = -1
self.grid = self.copy_garden()
self.max_fitness = width * height - len(rocks)
# Place rocks in the garden as -1
for x, y in rocks:
self.grid[y][x] = -1 # -1 represents a rock
def copy_garden(self):
"""Create a copy of the garden grid for each genome."""
return [row[:] for row in self.base_grid]
def display_garden(self, grid=None):
"""Display the garden grid."""
if grid is None:
grid = self.grid
for row in grid:
print(" ".join(f"{' K ' if cell == -1 else f'{cell:3}'}" for cell in row))
print()
class Gene:
def __init__(self, garden):
# Choose a random edge to start from
width = garden.width
height = garden.height
edge = random.randrange(garden.width + garden.width + garden.height +garden.height)
# Starting from the top edge
if edge < width:
self.start = (0, edge)
self.direction = 'down'
# Starting from the bottom edge
elif width
Подробнее здесь: [url]https://stackoverflow.com/questions/79071784/how-to-solve-genetic-algorithm-stagnation-zen-garden-problem[/url]
У меня проблема с генетическим алгоритмом, но я застрял в локальном оптимуме. Как вы можете видеть из фрагмента, он просто не может решить проблему, независимо от того, сколько генов или генов я добавляю в поколение. Код: [code]import random
class ZenGarden: def __init__(self, width, height, rocks): self.width = width self.height = height self.rock_count = len(rocks) self.base_grid = [[0] * width for _ in range(height)] # Initialize a base grid
# Place rocks in the base grid as -1 for x, y in rocks: self.base_grid[y][x] = -1
# Place rocks in the garden as -1 for x, y in rocks: self.grid[y][x] = -1 # -1 represents a rock
def copy_garden(self): """Create a copy of the garden grid for each genome.""" return [row[:] for row in self.base_grid]
def display_garden(self, grid=None): """Display the garden grid.""" if grid is None: grid = self.grid for row in grid: print(" ".join(f"{' K ' if cell == -1 else f'{cell:3}'}" for cell in row)) print()
class Gene: def __init__(self, garden): # Choose a random edge to start from width = garden.width height = garden.height edge = random.randrange(garden.width + garden.width + garden.height +garden.height)
# Starting from the top edge if edge < width: self.start = (0, edge) self.direction = 'down'
У меня проблема генетического алгоритма, но я застрял в локальном оптимуме. Как вы можете видеть в фрагменте, он просто не может решить проблему, независимо от того, сколько генов или геномов я добавляю в генерацию.
код:
import random
У меня проблема генетического алгоритма, но я застрял в локальном оптимуме. Как вы можете видеть в фрагменте, он просто не может решить проблему, независимо от того, сколько генов или геномов я добавляю в генерацию.
код:
import random
У меня проблема с оптимизацией большого количества переменных. Предположим, их всего три: скорость автомобиля (км/ч), вес автомобиля (тонны) и цена автомобиля ($). Очевидно, что диапазон каждой переменной различен: скорость автомобиля варьируется от...
У меня проблема с оптимизацией большого количества переменных. Предположим, их всего три: скорость автомобиля (км/ч), вес автомобиля (тонны) и цена автомобиля ($). Очевидно, что диапазон каждой переменной различен: скорость автомобиля варьируется от...
Вы, конечно, знаете, что происходит, когда вы импортируете это, но где находится Дзен в исходном коде интерпретатора ?
Я' d выполнил поиск по строке Читаемость учитывается в локальном клоне, но не нашел ничего подходящего.
Поиск на сайте zen of...