|
Нужна ваша поддержка в поиске оптимального значения "Метод отжига"
|
|||
---|---|---|---|
#18+
Добрый день, у меня с C# небольшой опыт, вот столкнулся с такой задачей и не знаю как к ней подступится (( - каждый день нужно обрабатывать большой объем данных около 100 000 строк - в каждой строке содержится несколько параметров (их количество может варьироваться) - каждая строка с параметрами отправляются на удаленный сервер, который в свою очередь возвращает число (положительное или отрицательное) - ответ сервера 1-2 секунд следовательно этот процесс занимает минимум 30 часов Идея в том чтобы за относительно небольшое количество итераций найти максимально положительное значение Я слышал что есть, "Метод отжига" - Он представляет собой упорядоченный случайный поиск оптимума целевой функции. В данном примере данных, в каждой строке три параметра и четвертый это результат (к примеру 30.89, 24.07) -25;40;18;30.89 -25;40;17;30.89 -25;40;16;24.07 -25;40;15;24.07 -25;40;14;19.94 -25;40;13;19.94 -25;39;25;-26.57 -25;39;24;26.57 -25;39;23;25.33 В приложении файл с несортированными данными, буду благодарен за любую помощь или подсказку куда копать Код: c# 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 16:27 |
|
Нужна ваша поддержка в поиске оптимального значения "Метод отжига"
|
|||
---|---|---|---|
#18+
life0n - каждая строка с параметрами отправляются на удаленный сервер, который в свою очередь возвращает число (положительное или отрицательное) - ответ сервера 1-2 секунд ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 18:35 |
|
Нужна ваша поддержка в поиске оптимального значения "Метод отжига"
|
|||
---|---|---|---|
#18+
Shocker.Pro, нет, в конкретном случае, только один запрос за один раз ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 18:55 |
|
Нужна ваша поддержка в поиске оптимального значения "Метод отжига"
|
|||
---|---|---|---|
#18+
life0n, ты хочешь получить максимальное значение без отправки его на сервер, имея только входные данные? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 19:59 |
|
Нужна ваша поддержка в поиске оптимального значения "Метод отжига"
|
|||
---|---|---|---|
#18+
vb_sub, без отправки на сервер не получится, так как отправляя на сервер одни и те же данные входных параметров, в разные дни, получу разные результаты в ответ идея такая, 1. к примеру изменили параметр номер один, цена не увеличилась тогда оставляем его в покое пока, 2. пробуем изменить второй параметр, тут значение с сервера к примеру изменилось в большую сторону (значит этот параметр сейчас теплый), 3. тогда продолжаем изменять второй параметр до тех пор пока возвращаемый результат будет будет возвращаться больше предыдущего, 4. как только сервер вернул значение меньше предыдущего, переключаемся на следующий параметр в итоге можем найти наибольшее значение с относительно небольшим количеством итераций, но это теория а как на практике без понятие )) а в примере я привел исходные данные параметров с ответами сервера, только для тестирования ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 20:14 |
|
Нужна ваша поддержка в поиске оптимального значения "Метод отжига"
|
|||
---|---|---|---|
#18+
life0n, я правильно понимаю, что у тебя функция с группой входных параметров и с одним выходным. Эта функция реализована на сервере и на клиенте ты её реализовать не можешь, потому что она видать питается какими-либо серверными данными, которые на клиенте не доступны. Ты хочешь заменить прогонку всех данных через эту функцию на сервере на функцию, которая будет давать аналогичный результат с определенной погрешностью, но с меньшим количеством обращений к серверу. life0n к примеру изменили параметр номер один, цена не увеличилась тогда оставляем его в покое пока, Цена я так понимаю у тебя выходной параметр? life0nпробуем изменить второй параметр, тут значение с сервера к примеру изменилось в большую сторону (значит этот параметр сейчас теплый) Ты здесь подразумеваешь линейную корреляцию или может быть какой-либо другой? Тут сразу вопрос- каков шаг изменения параметра? Тут тоже скорее всего необходимо будет применить какой-либо алгоритм нахождения этого шага. Если буде константа, то сильно упростится этот пункт. Каким образом необходимо сагрегировать все входные данные, чтобы получить этот второй параметр? Ведь в каждой строке он разный. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 21:08 |
|
Нужна ваша поддержка в поиске оптимального значения "Метод отжига"
|
|||
---|---|---|---|
#18+
vb_sub, Доброе утро! авторя правильно понимаю, что у тебя функция с группой входных параметров и с одним выходным. Эта функция реализована на сервере и на клиенте ты её реализовать не можешь, потому что она видать питается какими-либо серверными данными, которые на клиенте не доступны. Ты хочешь заменить прогонку всех данных через эту функцию на сервере на функцию, которая будет давать аналогичный результат с определенной погрешностью, но с меньшим количеством обращений к серверу. все верно именно так авторЦена я так понимаю у тебя выходной параметр? цена это выходной параметр авторТут сразу вопрос- каков шаг изменения параметра? Тут тоже скорее всего необходимо будет применить какой-либо алгоритм нахождения этого шага. Если буде константа, то сильно упростится этот пункт. Каким образом необходимо сагрегировать все входные данные, чтобы получить этот второй параметр? Ведь в каждой строке он разный. Шаг тут не нужен, так как все входные параметры известны заранее, тот большой массив данных и есть уже сгенерированные входные параметры с нужным шагом авторТы здесь подразумеваешь линейную корреляцию или может быть какой-либо другой? На сколько я понимаю вопрос может быть только линейная ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 09:38 |
|
Нужна ваша поддержка в поиске оптимального значения "Метод отжига"
|
|||
---|---|---|---|
#18+
life0n, -25;40;18;30.89 y=f(x,y,z) 30.89=f(-25,40,18) Так? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 10:59 |
|
Нужна ваша поддержка в поиске оптимального значения "Метод отжига"
|
|||
---|---|---|---|
#18+
vb_sub, Совершенно верно ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 11:05 |
|
Нужна ваша поддержка в поиске оптимального значения "Метод отжига"
|
|||
---|---|---|---|
#18+
life0n, life0n2. пробуем изменить второй параметр, тут значение с сервера к примеру изменилось в большую сторону (значит этот параметр сейчас теплый), В случае с 30.89=f(-25,40,18) второй параметр это 40. Его нужно изменить и посмотреть, изменится ли 30.89. То есть нужно вместо 40 подставить 41, или 40.0000005 и посмотреть значение выходной функции. Как определить этот шаг наращивания? life0nНа сколько я понимаю вопрос может быть только линейная Квадратичная, логарифмическая, экспоненциальная. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 11:19 |
|
Нужна ваша поддержка в поиске оптимального значения "Метод отжига"
|
|||
---|---|---|---|
#18+
vb_sub, авторВ случае с 30.89=f(-25,40,18) второй параметр это 40. Его нужно изменить и посмотреть, изменится ли 30.89. То есть нужно вместо 40 подставить 41, или 40.0000005 и посмотреть значение выходной функции. Как определить этот шаг наращивания? именно так, изменить второй параметр и посмотреть изменится ли 30.89 в большую сторону шаг искать не нужно, просто подставлять данные из списка параметров Вот эти параметры уже с учетом нужного шага -25;40;18 -25;40;17 -25;40;16 -25;40;15 -25;40;14 -25;40;13 -25;39;25 -25;39;24 -25;39;23 к примеру, мы поменяли второй параметр (40) к нам вернулось значение больше (30.89) следовательно этот параметр влияет на увеличение возвращаемого значения, следующий шаг, нужно найти в списке параметров которые еще не отправляли на сервер строку со значением второго параметра больше или меньше (40), и продолжать это делать до тех пор пока этот параметр влияет на увеличение возвращаемого значение, если пробовать изменить к примеру третий параметр надеюсь понятно объяснил )) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 11:33 |
|
Нужна ваша поддержка в поиске оптимального значения "Метод отжига"
|
|||
---|---|---|---|
#18+
life0n, в качестве базисного значения(то с каким нужно сравнивать- уменьшилось оно или увеличилось) выходного параметра какую строку данных берем? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 12:48 |
|
Нужна ваша поддержка в поиске оптимального значения "Метод отжига"
|
|||
---|---|---|---|
#18+
vb_sub, за базис для параметров берем первую строку параметров в списке (то значение которое вернет удаленный сервер) благодарю ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 13:04 |
|
Нужна ваша поддержка в поиске оптимального значения "Метод отжига"
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 12:50 |
|
Нужна ваша поддержка в поиске оптимального значения "Метод отжига"
|
|||
---|---|---|---|
#18+
vb_sub, спасибо огромное!!!!!!! это не совсем та логика которую имел ввиду, но думаю я смогу докрутить уже до ума как мне вас отблагодарить? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 20:44 |
|
Нужна ваша поддержка в поиске оптимального значения "Метод отжига"
|
|||
---|---|---|---|
#18+
life0n, рад что смог помочь. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 15:34 |
|
Нужна ваша поддержка в поиске оптимального значения "Метод отжига"
|
|||
---|---|---|---|
#18+
life0n vb_sub, спасибо огромное!!!!!!! это не совсем та логика которую имел ввиду, но думаю я смогу докрутить уже до ума как мне вас отблагодарить? чтобы нас отблагодарить пишите здесь на вопросы юзеров "Обратитесь к <xxx>, он реально помог мне, отжёг". Тогда и вы, и благодаруемый будут иметь иммунитет от забанивания как минимум. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 15:40 |
|
|
start [/forum/topic.php?fid=18&tid=1354444]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
23ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 298ms |
total: | 419ms |
0 / 0 |