Как оптимизировать несколько параметров с помощью функции через Python? - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть функция, которая принимает некоторые параметры и возвращает число с плавающей точкой.И у них есть распределения для каждого из параметров.

class Ranges:
    K = range(0, 100)
    D = range(0, 100)
    KD_difference = ('K>D', 'K<D', 'K=D', None)

def function(parameters):
    # <some code>
    return result   # -10.2 or 32.4 etc.

Как я мог найти оптимизированные значения моих параметров с помощью функции быстрой оптимизации?

I've tried grid optimisation:
for K in Ranges.K:
    for D in Ranges.D:
        for KD in Ranges.KD_difference:
            parameters = (K, D, KD)
            result = function(parameters)
            # ... chose parameters, that give max result value

... но это было слишком медленно.Чем я пробовал случайный поиск:

import random
while True:
    parameters = (
        random.choice(Ranges.K),
        random.choice(Ranges.D),
        random.choice(Ranges.KD_difference)
    )
    result = function(parameters)
    # ... chose parameters, that give max result value

... но он не может дать мне полностью оптимизированные значения моих параметров.

Теперь я ищу использовать scipy.optimize,Но я не могу понять, где я должен поставить свои распределения для каждого параметра и как он мог получить строковые значения для параметра 'KD_difference'.Пожалуйста, дайте мне совет или пример, как я могу оптимизировать свои параметры?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...