Модель оптимизации для установки станка?Python

Программы на Python
Anonymous
Модель оптимизации для установки станка?

Сообщение Anonymous »

Я работаю над этим проектом, цель которого — заставить машину самостоятельно выравниваться по ОЧЕНЬ конкретной точке. Не вдаваясь в подробности, я могу легко определить, насколько близко выравнивание по шкале от 0 до 1, и я могу перемещать свою машину по осям X и Y и сразу видеть, как это «выравнивание» соотношение» увеличивается или уменьшается. Теоретически это кажется простым, но есть несколько заминок, из-за которых я не смог приступить к выравниванию машины.
Моей первой мыслью была попытка перебора. машина никогда не запустится с нулевым выравниванием, поэтому я подумал, что могу заставить его произвольно перемещаться в одном направлении по заданной оси и посмотреть, увеличится или уменьшится показатель выравнивания. Он всегда будет наблюдать некоторое увеличение или уменьшение, если оно начинается с ненулевого значения. Если оно увеличится, снова двигайтесь в этом направлении, если оно уменьшится, вернитесь назад и попробуйте другое направление, а если оно уменьшится в обоих направлениях, то остановитесь. Я бы повторил это на другой оси, и это было бы золото.
Однако из-за особенностей мировоззрения мне сообщили, что это невероятно уязвимо для попадания в локальные максимумы. Итак, моей следующей мыслью был градиентный спуск. Я бы установил отрицательный параметр выравнивания и попытался найти минимумы. Но я никогда раньше не работал с градиентным спуском, и из примеров Python, которые я видел в Интернете, каждый вариант использования градиентного спуска требует знания градиента функции для использования. Я этого не знаю, поэтому не знаю, является ли градиентный спуск тем, что я ищу.
Полагаю, я просто спрашиваю, есть ли у кого-нибудь какие-либо рекомендации по оптимизации В такой ситуации можно рекомендовать, что можно было бы работать исключительно с постоянно пополняемой базой данных, а не с заранее установленной формулой или базой данных с информацией. Я начинаю, зная только текущую ориентацию (x, y) и текущий коэффициент выравнивания от 0 до 1, и мне нужно максимально приблизиться к 1, внося небольшие корректировки и наблюдая, как это повлияет на систему, но Мне также нужно избегать попадания в локальные максимумы и недостижения оптимального состояния. Может быть, лучше всего было бы реализовать что-то вроде грубой силы, но заставить его прыгать на несколько шагов и повторять, если «оптимальное» соотношение меньше заданного числа, например 0,9 или что-то в этом роде? Я не знаю. Буду признателен за любую помощь, даже если это всего лишь список других стратегий оптимизации, которые я могу просмотреть в свободное время. Я даже не знаю формальных терминов большинства из них, поэтому исследование было болезненным.
Спасибо :)

Подробнее здесь: https://stackoverflow.com/questions/786 ... -a-machine

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