Я использую Pyomo для сформулирования задач оптимизации и решателей, как, например, iPopt. Теперь я хотел бы применить метахевристические решатели к этим проблемам оптимизации. Я уже слышал о таких каркасах, как Pymoo или Pygad, которые можно использовать для таких целей. Я хотел бы найти автоматический способ извлечь целевые или ограниченные формулировки из экземпляра Pyomo ConcreteModel и использовать его для сформулирования Fitness_func для pygad.
Для моего MWE я просто создаю простую модель с простой объективом (и стараюсь передать эту цель в качестве FITNESS_FUNC, чтобы PYGAD GA). /> Минимальный (не так желательно) Рабочий пример: < /strong> < /p>
from pyomo import environ as pe
import pygad
model = pe.ConcreteModel()
model.set1 = pe.Set(
initialize=[i for i in range(10)]
)
model.param1 = pe.Param(
model.set1,
initialize={
i: (i+1)**2 for i in model.set1
},
mutable=True
)
model.var = pe.Var(
model.set1,
domain=pe.PositiveReals,
bounds=(2, 5)
)
def obj_rule(model):
return sum(
model.param1[i] * model.var[i]
for i in model.set1
)
model.obj = pe.Objective(
rule=obj_rule,
sense=pe.maximize
)
solver = pe.SolverFactory('IPOPT')
solver.solve(model)
solution_ipopt = model.obj.expr()
#=== pyomo model done, now comes everything pygad related ======================
n_vars = len(model.set1)
def fitness_func(instance, solution, solution_idx):
# desired: something automated like
# return model.obj.expr
# (but that would be too easy and doesn't work)
return sum(
(i+1)**2 * solution[i] for i in range(1, n_vars)
) # yes, that works but is coded manually, I need something automated
ga_instance = pygad.GA(
num_generations = 100,
num_parents_mating = 10,
fitness_func = fitness_func,
sol_per_pop = 100,
num_genes = n_vars,
gene_type = float,
gene_space = [{'low': 2., 'high': 5.} for _ in range(n_vars)],
parent_selection_type = "tournament",
crossover_type = "single_point",
mutation_type = "random",
mutation_percent_genes = 50,
parallel_processing= ["thread", 8]
)
ga_instance.run()
solution, solution_fitness, solution_idx = ga_instance.best_solution()
in fitness_func мне пришлось вручную тип sum ((i+1) ** 2*Решение для i в диапазоне (1, n_vars)) , чтобы создать функцию пригодности в соответствии с модели. дает мне что -то, что выглядит многообещающе, но, конечно, это было бы слишком легко и не работает).
есть способ автоматически преобразовать целевую функцию модели оптимизации Pyomo в выражение, подходящее для передачи к Fitness_func для pygad.ga?
Я использую Pyomo для сформулирования задач оптимизации и решателей, как, например, iPopt. Теперь я хотел бы применить метахевристические решатели к этим проблемам оптимизации. Я уже слышал о таких каркасах, как Pymoo или Pygad, которые можно использовать для таких целей. Я хотел бы найти автоматический способ извлечь целевые или ограниченные формулировки из экземпляра Pyomo ConcreteModel и использовать его для сформулирования Fitness_func для pygad. Для моего MWE я просто создаю простую модель с простой объективом (и стараюсь передать эту цель в качестве FITNESS_FUNC, чтобы PYGAD GA). /> Минимальный (не так желательно) Рабочий пример: < /strong> < /p> [code]from pyomo import environ as pe import pygad
model = pe.ConcreteModel() model.set1 = pe.Set( initialize=[i for i in range(10)] ) model.param1 = pe.Param( model.set1, initialize={ i: (i+1)**2 for i in model.set1 }, mutable=True ) model.var = pe.Var( model.set1, domain=pe.PositiveReals, bounds=(2, 5) )
def obj_rule(model): return sum( model.param1[i] * model.var[i] for i in model.set1 )
#=== pyomo model done, now comes everything pygad related ====================== n_vars = len(model.set1)
def fitness_func(instance, solution, solution_idx): # desired: something automated like # return model.obj.expr # (but that would be too easy and doesn't work) return sum( (i+1)**2 * solution[i] for i in range(1, n_vars) ) # yes, that works but is coded manually, I need something automated
ga_instance.run() solution, solution_fitness, solution_idx = ga_instance.best_solution() [/code] in fitness_func мне пришлось вручную тип sum ((i+1) ** 2*Решение [i] для i в диапазоне (1, n_vars)) , чтобы создать функцию пригодности в соответствии с модели. дает мне что -то, что выглядит многообещающе, но, конечно, это было бы слишком легко и не работает). есть способ автоматически преобразовать целевую функцию модели оптимизации Pyomo в выражение, подходящее для передачи к Fitness_func для pygad.ga?
Я использую Pyomo для сформулирования задач оптимизации и решателей, как, например, iPopt. Теперь я хотел бы применить метахевристические решатели к этим проблемам оптимизации. Я уже слышал о таких каркасах, как Pymoo или Pygad, которые можно...
Я использую Pyomo для сформулирования задач оптимизации и решателей, как, например, iPopt. Теперь я хотел бы применить метахевристические решатели к этим проблемам оптимизации. Я уже слышал о таких каркасах, как Pymoo или Pygad, которые можно...
Я пытаюсь запустить несколько неасинхронных методов одновременно, как показано ниже. Все функции определены в том же классе, что и функции-члены.
private string getEstimatedWaypointStart()
{
return id-1 ;
}
После прекращения поддержки API Google Fit мне интересно, как перенести «com.google.android.gms.fitness.service.FitnessSensorService» в Google Health?
Мой вариант использования — стороннее устройство BLE, предоставляющее некоторые данные, связанные...
На Android 14 модуль фитнеса включен по умолчанию, но на некоторых специальных машинах это избыточно, как от этих вещей избавиться?
В процессе компиляции , я пытался удалить его непосредственно в конце PRODUCT_PACKAGES, удаление содержимого...