Генетический алгоритм распределения KubernetesPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Генетический алгоритм распределения Kubernetes

Сообщение Anonymous »

Я пытаюсь распределить модули Kubernetes по узлам с помощью генетического алгоритма, где каждый модуль назначается одному узлу. Ниже моя реализация:

Код: Выделить всё

from string import ascii_lowercase
import numpy as np
import random
from itertools import compress
import math
import pandas as pd
import random

def create_pods_and_nodes(n_pods=40, n_nodes=15):
# Create pod and node names
pod = ['pod_' + str(i+1) for i in range(n_pods)]
node = ['node_' + str(i+1) for i in range(n_nodes)]

# Define CPU and RAM options
cpu = [2**i for i in range(1, 8)]  # 2, 4, 8, 16, 32, 64, 128
ram = [2**i for i in range(2, 10)]  # 4, 8, 16, ..., 8192

# Create the pods DataFrame
pods = pd.DataFrame({
'pod': pod,
'cpu': random.choices(cpu[0:3], k=n_pods),  # Small CPU for pods
'ram': random.choices(ram[0:4], k=n_pods),  # Small RAM for pods
})

# Create the nodes DataFrame
nodes = pd.DataFrame({
'node': node,
'cpu': random.choices(cpu[4:len(cpu)-1], k=n_nodes),  # Larger CPU for nodes
'ram': random.choices(ram[4:len(ram)-1], k=n_nodes),  # Larger RAM for nodes
})

return pods, nodes

# Example usage
pods, nodes = create_pods_and_nodes(n_pods=46, n_nodes=6)

# Display the results
print("Pods DataFrame:\n", pods.head())
print("\nNodes DataFrame:\n", nodes.head())

print(f"total CPU pods: {np.sum(pods['cpu'])}")
print(f"total RAM pods: {np.sum(pods['ram'])}")
print('\n')
print(f"total CPU nodes: {np.sum(nodes['cpu'])}")
print(f"total RAM nodes: {np.sum(nodes['ram'])}")

# Genetic Algorithm Parameters
POPULATION_SIZE = 100
GENERATIONS = 50
MUTATION_RATE = 0.1
TOURNAMENT_SIZE = 5

def create_individual():
return [random.randint(0, len(nodes) - 1) for _ in range(len(pods))]

def create_population(size):
return [create_individual() for _ in range(size)]

def fitness(individual):
total_cpu_used = np.zeros(len(nodes))
total_ram_used = np.zeros(len(nodes))
unallocated_pods = 0

for pod_idx, node_idx in enumerate(individual):
pod_cpu = pods.iloc[pod_idx]['cpu']
pod_ram = pods.iloc[pod_idx]['ram']

if total_cpu_used[node_idx] + pod_cpu 

Подробнее здесь: [url]https://stackoverflow.com/questions/79049807/genetic-algorithm-for-kubernetes-allocation[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Генетический алгоритм распределения Kubernetes
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Нейронная сеть и генетический алгоритм Connect4
    Anonymous » » в форуме Python
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Генетический алгоритм - траектория автомобиля
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Генетический алгоритм - траектория автомобиля
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Проблема N Queen Генетический алгоритм против детерминированного алгоритма
    Anonymous » » в форуме JAVA
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»