Почему бы не позволить программе бороться с самим собой? Возьмем некоторый вектор v (параметры) и дайте ему бороться с v + (0.1,0,0,0, .., 0), скажем, 15 раз. Затем возьмите победителя и измените другой параметр и так далее. Достаточно удачи, вы получите сильного игрока, способного победить большинство других.
Предыдущий ответ (большая часть его неактуальна после редактирования вопроса) :
С этими допущениями и таким уровнем обобщения вы ничего не достигнете (кроме, возможно, результата невозможности).
Основной вопрос: можете ли вы изменить алгоритм так, чтобы он возвращал вероятность успеха, а не результат одного эксперимента? Затем используйте подходящую оптимизацию методику (никто не скажет вам, что при таких общих предположениях). В Haskell вы можете даже изменить код, чтобы он находил вероятность в простых случаях ( монада вероятностей , вместо того, чтобы давать единственный результат. Как уже упоминалось, вы можете использовать генетический алгоритм, используя вероятность в качестве функции пригодности). Если у вас есть формула, используйте систему компьютерной алгебры , чтобы найти максимальное значение.
Вероятность успеха является гладкой функцией параметров и имеют единый глобальный оптимум.
Плавный или непрерывный? Если гладко, вы можете использовать дифференциальное исчисление ( множители Лагранжа? ). Вы даже можете, с небольшими изменениями в коде (при условии, что ваш язык программирования достаточно общий), автоматически вычислять производные, используя автоматическое дифференцирование .
Я запусту настройку за ночь, я смогу обработать около 1000 вызовов алгоритма Run.
Этот комплекс? Это позволит вам проверить два возможных значения (2 10 = 1024) из множества чисел с плавающей запятой. Вы даже не определите порядок величины или даже порядок порядка.
Существует около 10 параметров, большинство из которых настраиваются независимо (но некоторые являются взаимозависимыми)
Если вы знаете, что является независимым, исправьте некоторые параметры и измените те, которые не зависят от них, как в случае «разделяй и властвуй». Очевидно, что гораздо лучше настроить два алгоритма с 5 параметрами.
Я опускаю вопрос, если вы не дадите больше деталей. Здесь слишком много шума для академического вопроса и недостаточно данных для реального вопроса.