194 / 29 / 5
Регистрация: 11.04.2015
Сообщений: 721
|
|
1 | |
Простые ИИ для "простых" целей14.11.2020, 03:28. Показов 3606. Ответов 58
Метки нет (Все метки)
Всем доброго времени суток!
Я хотел бы узнать, есть ли какие-нибудь "общедоступные" нейросети для решения систем нелинейных уравнений? Есть моя "любимая" система уравнений: Я понимаю, что её можно решить и "обычным" образом, но matlab, например, решает её за 3-9 секунд, в зависимости от 12 входных коэффициентов, а это очень много. Я думаю, что обученная на, скажем, ста примерах простенькая нейросеть вполне будет способна угадать правильный ответ (она ведь так работает, верно?) и за десятую долю секунды; прав ли я? Или нужно больше обучающих примеров? Или такой скорости достичь не удастся в любом случае? Прошу помощи или совета в этой области Также хотел бы спросить о такой вещи: есть функция шести переменных площади эллипса, которую нужно минимизировать в условиях ряда ограничений-неравенств, содержащих всё те же шесть переменных (подробнее можно ознакомиться "со всем этим" по ссылке на мой же вопрос: Решение системы нелинейных неравенств). Этих ограничений может быть довольно много - до 20 штук - и, нужно сказать, matlab откровенно не справляется: кроме того, что он НЕВЕРОЯТНО чувствителен к виду начального приближения (поиск которого и так нетривиален) и ищет решение довольно долго (ОТ 10 секунд), так ещё и регулярно завершает расчёт сообщением о нахождении ЛОКАЛЬНОГО минимума функции (а не об абсолютном, который и хотелось бы получить) или, что ещё хуже, об остановке расчётов по какому-либо критерию остановки; а при некоторых ограничениях, уводящих возможное решение ещё дальше от нач. приближения, функция минимизации либо виснет, либо ищет решение несколько минут, и это кошмар. Подскажите, пожалуйста, можно ли вообще создать такую нейросеть, которая могла бы обходиться без какого-либо начального приближения и выполнять поиск ЛУЧШЕГО решения за, скажем так, хотя бы секунду? Буду очень благодарен за помощь!
0
|
14.11.2020, 03:28 | |
Ответы с готовыми решениями:
58
Найти все двухзначные простые числа, определив функцию для вычисления простых чисел Найти все двухзначные простые числа, определив функцию для вычисления простых чисел Найти все двухзначные простые числа, определив функцию для вычисления простых чисел Простые числа. Список простых чисел |
194 / 29 / 5
Регистрация: 11.04.2015
Сообщений: 721
|
|
25.11.2020, 01:16 [ТС] | 41 |
А что такое "тестировать поиск"?
Да, но, как я уже говорил, я уже углубился в свою работу значительно глубже (тавтология), чем требовалось, и если я ещё и уйду в перевод с неизвестного языка, то не судьба мне будет закончить в срок. Понимаю, что это мои проблемы, по сути, и благодарю Вас за найденный код! Вот разбираюсь прямо сейчас. Дело в том, что решения-то как такового там нет - на стр. 35 в начале написана фраза "If F1 = (α1, β1) and F2 = (α2, β2) are fixed .." (перевод: "если фокусы находятся в известных фиксированных точках .."), которая портит всё и делает представленный ход решения неприменимым в моей работе. У меня же просто массив точек, и где там фокусы - та хз (простите за вольности). Таким образом, мы снова имеем 5 переменных (координаты фокусов и угол поворота), которые должны поступить на вход "оптимизаторщика", и получается точно такая же
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
25.11.2020, 01:34 | 42 |
Ну генерировать данные похожие на настоящие за неимением таковых быстро и в разных вариантах для отлова багов, генерировать неудобные точки для оптимизации чтоб проверить пашет или нет в сложных случая, тут следует уже писать кровью…это отладка.
Там из 230 строк визуально 60 % закоментено. Так фокусы и задают угол поворота. Насколько понял таким макаром там поиск максимума 4 неизвестных. Там некий параметр “s” задает удаление контура. Похоже находят “s” из формулы где там есть d. Каких конструкций? Там вроде как есть аппроксимация через матрицу и систему линейных уравнений. Затем поиск 4 неизвестных я так понял вообще 1 строка вся целевая, затем поиск “s”.
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
25.11.2020, 01:48 | 43 |
0
|
194 / 29 / 5
Регистрация: 11.04.2015
Сообщений: 721
|
|
25.11.2020, 02:48 [ТС] | 44 |
Так а зачем внутри уже построенного по точкам эллипса-то это делать? Я под отладкой подразумеваю как раз рассмотрение ситуаций в посте №24 (или какой он там, с эллипсами), где мы строим эллипсы по точкам, и оцениваем результаты (но не генерируем точки после выполнения функции, находящейся под отладкой). Правда не улавливаю логику.
Да я видел и даже часок посидел, поразмышлял, но, видимо, уже поздновато, поскольку я так и не смог объяснить самому себе, что там происходит. Слушайте, а и правда - не обратил внимания на это. Да, таким образом всё сводится к четырём переменным, что должно быть проще для матлаба, хотя, ввиду наличия закона сохранения энергии (эвристика подъехала ), общая вычислительная сложность измениться не должна, ведь это просто альтернативный способ решения всё той же задачи, но это неточно Это, как я понял, сумма расстояний от любой точки на эллипсе до каждого из фокусов (аналог общей длины ниточек, с помощью которых можно нарисовать красивый эллипс на бумаге). Ну, смотрите - если абстрагироваться от s, которую, по сути, мы найти не сможем до завершения работы функции оптимизации, то площадь будет выражаться через конструкцию, которой s равна (там и a и b выражаются через s довольно непростым образом). Я сейчас думаю над видом неравенств-ограничений, ведь эта s как переменная мешается - в формулу бесполезно подставлять значения координат точек МВО, ведь остаётся ещё кучка переменных, и неравенство не построить. В том документе вообще всё так классно у них - то откуда-то берётся s, то откуда-то взялись точки фокусов - это не чистое решение моей задачи, это подгон на упрощениях какой-то. А, да - это я видел, но А картиночки питоновские, я правильно понимаю? То есть, оно работает, но а если я, допустим, захочу ограничить значение минимального радиуса? Или алгоритм призван только найти эллипс минимальной площади вокруг точек?
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
25.11.2020, 09:11 | 45 |
Зачем анализ точек внутри эллипса? А вдруг малый наклон эллипса ухудшит минимальное расстояние до точек внутри но сильней уменьшит площадь? Или улучшит соотношение площадей многоугольника и эллипса. Тут нужно знать что важней.
Условие “обвести эллипсом точки” может имеет несколько вариантов, по идее. Лично я вижу тут например 9 пунктов целевой которые еще нужно хитро сложить чтобы улучшение одного пункта не скрывало улучшение другого. Может нужна Средняя дисперсия и Размах вариации от всех TargFun? Я не математик, лично я вижу что нужны такие условия. Сближение от точек до эллипса не принадлежащих эллипсу TargFun1, процент таких точек. TargFun2, сумма квадратов расстояния TargFun3 средняя дисперсия, квадратов расстояния TargFun4 Размах вариации, квадратов расстояния Уточнение от точек до эллипса принадлежащих эллипсу TargFun5, сумма квадратов расстояния TargFun6 средняя дисперсия квадратов расстояния TargFun7 Размах вариации, квадратов расстояния TargFun8, разность площади эллипса и контура многоугольника TargFun9, площадь эллипса. Да...все решение в пару строк. Может s находят численно минимум одной неизвестной? Может там некий сумрачный гений в той брошурке свел все эти 9 условий в одно...или то одно условие имеет очень глубокий математический смысл…либо им было лень, работает и норм =)). По идее это заклинание значит максимизация суммы расстояний от всех точек, но где знак суммы? Вообще изложение сумбурное…как и обозначения. В общем варианты такие 1)пилите матлаб код, 2)не выдет пилите питон, 3)невыдет пилите по брошурке эксперимент в пару строк, раз там так просто все. 4)иначе вас ждет “целый парк кровавых аттракционов” с велосипедированием своего алгоритма поиска наверно на этих заумных TargFun9…=)).
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
25.11.2020, 09:28 | 46 |
А может тут всеравно 5 неизвестных, задали 2 фокуса это 4 неизвестных, находим самую дальнюю точку (где максимальный s) перебором точек и подставляем в формулу площади. Может в этом простом переборе точек и есть бонус формулы? Фактически тут поиск только 4 неизвестных.
0
|
194 / 29 / 5
Регистрация: 11.04.2015
Сообщений: 721
|
|
25.11.2020, 17:19 [ТС] | 47 |
Да, теперь я понял, о чём Вы говорите.
Честно говоря, я даже не ожидал, что будет так много "головной боли" при оптимизации; нас к такому не готовили Вот и хорошо бы ещё эту запись как-то расшифровать Мне знакомы записи минимизации функции (одной) при различного рода ограничениях, но это?! Математически, здесь написано, что нужно параллельно минимизировать множество различных функций, имея в виду то, что переменные изменяются одни и те же и сразу во всех функциях, но КАААК? Я попытался найти в интернете расшифровку такой формы записи, но не шмоглось (я ведь даже названия сего не знаю). Правда сумрачный гений Я написал на форум матлаба по этому вопросу, но мне думается, что там тоже все в шоке Слушайте, а и правда - 2 фокуса-то мы найдём, но к какой точке тянуть "ниточки" от них? Видимо, координаты точки (X,Y), к которой нужно привязать ниточки от фокусов (и одним движением условного карандаша нарисовать весь эллипс), и станут 5й и 6й переменной (или можно всё это сложить, и получить пятую переменную в виде некоей "обобщённой переменной" - s), ведь так называемое в "книжечке" уравнение эллипса описывается как "s = ...", где в правой части те же родные 6 переменных. Опять же, я думаю, что это "шило на мыло", хоть и отсутствие инвариантов в качестве ограничений однозначно делает всё проще.
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
25.11.2020, 18:22 | 48 |
Построил эллипс с фокусами, если таскать 7 точек мышкой по которым эллипс хоть примерно и смотреть на макс, мин, сумма значений в списке точек где каждой точке взята функция
f(xi,yi,a1,b1,a2,b2)=sqrt((xi-a1)^2+(yi-b1)^2)+sqrt((xi-a2)^2+(yi-b2)^2) похоже что все это ерунда. Ничего это не даст для оптимизации. Понятия не имею к чему там слово max в формуле. Даже по массиву значений по каждой точке видно что минимизировать нужно дисперсию, т.е. искать такие фокусы чтобы все f(xi,yi,a1,b1,a2,b2) были как можно ближе к максимальному из этого списка. Эта формула не возвращает со знаком точка вне эллипса или нет. Похоже тут принадлежность эллипсу это если для проверяемой точки f(xi,yi,a1,b1,a2,b2) < максимальному из этого списка. Черти что в общем. Эллипс победил В общем параметрическая формула есть, как находить аппроксимацию есть. Осталось использовать кусок из той книги где из параметрической формы получают коэф. ABCDEF т.к. там удобно находить расстоянии от точки до эллипса, это единственно зачем нужны эти коэф. А работать с параметрическим сгенерировав эллипсы как в посте 27 только меньше разброс параметрам и мультистарт поиск. Странно что математики молчат...
0
|
194 / 29 / 5
Регистрация: 11.04.2015
Сообщений: 721
|
|
25.11.2020, 23:04 [ТС] | 49 |
Вы озвучили мои мысли
Вообще, если на пальцах прикинуть, то если оставлять там слово "max", то единственно-возможным вариантом решения будет бесконечность (ведь именно в ней для любой (не бесконечной) точки будет достигаться максимум функции s), поэтому я склоняюсь к тому, что там случилась описка, и должно стоять "min" (как, в общем-то, и написано в строке перед этой "штукой"), что, впрочем, не добавляет ясности к математике процесса. Ну да. Там всё портит равенство левой части конкретному значению, которое, едрить его, напрямую зависит от этой левой части, поэтому устанавливать неравенства-ограничения, не зная вообще ничего, не получится. На кой нужна такая форма записи - я пока не понял. Да, пока это единственный рабочий вариант, получается. Они у шоке
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
26.11.2020, 03:29 | 50 |
может не "smallest possible s" a "smallest possible delta s "
Задаем два фокуса, считаем всем точкам s(F1,F2) создаем список. В списке ищем max и min. Находим разность delta= max- min, в идеале у всех точек s(F1,F2) меньше или равно max. max это и будет s для рисуемого эллипса. Ищем такие фокусы чтобы delta<(допустимый порог) и площадь была минимальна. Или вместо delta сумму квадратов отклонений, она меняется более резко Всем точкам найти (max-s(F1,F2))^2 и сложить.
1
|
194 / 29 / 5
Регистрация: 11.04.2015
Сообщений: 721
|
|
26.11.2020, 03:45 [ТС] | 51 |
Вы имеете в виду то, что это будет тем значением, от которого мы будем начинать сжатие эллипса?
А как? Последовательным фиксированием одного из фокусов и покоординатной оптимизацией положения другого? То есть, закрепили одну точку, потаскали другую так, что лучше уже не получается, закрепили её, начинаем таскать первую до получения лучшего положения, и повторяем до достижения заданного критерия остановки - я пока других вариантов не вижу, да и звучит многообещающе. А что за картиночки? Как Вы их получили? Добавлено через 51 секунду Я на них вижу, что правый фокус не смещался, смещался только левый, откуда и родилась идея покоординатной оптимизации.
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
26.11.2020, 13:05 | 52 |
У этой формулы нет сжатия и параметров a,b.
max значение той функции значит что это самая дальняя точка через нее проходит эллипс, это гарантия что остальные точки принадлежат эллипсу. Фокус это 2 точки, т.е 4 переменных. Значит фикисровать нужно 3 переменных перебирая 1. И так всем точкам. Я думаю нужно перебрать все комбинации с некоторым шагом. Вот несколько вариантов генерации точек. 1)Квадрат, сетка точек. Задать размер сетки L и кол-во точек в ней M. Вокруг каждого фокуса сделать сетку M на M точек со стороной L M=10 10*10=100 положений фокуса1 и тоже для второго. Значит 100*100=10 000 эллипсов. Дальше полет фантазии, хз как лучше. 2) Квадрат, рандом. 3)Круг, сетка внутри круга радиуса L. -рис сетка внутри круга 4) Круг, рандом. Случайно генерировать точки внутри квадрата описанного вокруг круга, точки что не попали в круг отбрасывать. Генерировать пока не наберется M*M попаданий это равновероятно разбросает точки. 5) Круг, радиальная сетка Как вариант брать параметрическое уравнение окружности, задаем радиус L и с шагом увеличивая радиус. 6) Круг, радиальная сетка рандом Дальше всем 10 000 посчитать max min, сохранить в массив и отсортировать. Нарисовать например топ 5 эллипсов. В смысле как? Сделал в GeoGebra 5, это такой мат пакет типа продвинутого экселя, тут можно таскать точки мышкой.
1
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
26.11.2020, 14:10 | 54 |
Варианты генерации точек для перебора фокусов. Есть ли там решение в той брошурке без оптимизации? Может что-то упускаем очевидное математикам?
Ромуальд_7, Если сильно увеличить кусок эллипса, то имеет ли значение как близко большинство точек к эллипсу если самая дальняя точка на постоянном расстоянии в обоих случаях? Если да, то это дисперсия. Черный эллипс, красный самая дальняя точка.
1
|
194 / 29 / 5
Регистрация: 11.04.2015
Сообщений: 721
|
|
26.11.2020, 16:53 [ТС] | 55 |
Ну, это понятно, да. Я имел в виду то, что на порядок сразу накладываются некоторые ограничения - неразумно трогать вторую точку, пока с парой координат первой точки не всё ясно.
Ну, то есть, ручками, я понял. Просто я думал о том, что Вы как-то расчётным путём получили именно такой расклад. Думаю, что нет, честно говоря.
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
26.11.2020, 18:44 | 56 |
Там просто набросаны точки, таскаю руками и смотрю что там с оценкой. Похоже что сумма квадратов отклонений хорошо оценивает. Так что форум матлаба никак? Никто не знает как сделать проще? Порт кода питон и матлаб из стаковерфлоу там 2 ссылки были все мимо?
Эллипс побеждает?
1
|
194 / 29 / 5
Регистрация: 11.04.2015
Сообщений: 721
|
|
26.11.2020, 22:26 [ТС] | 57 |
Я понял
Ну, там не понятно, что вообще происходит, и алгоритмы выполняют именно "энклозинг", а у меня есть ещё ряд граничных условий. Можно, конечно, придумать надстройки, но блен Получается так
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
26.11.2020, 23:04 | 58 |
Хотите в итоге не "энклозинг" а вкурить суть матана и добавить свои плюшки? Тогда сначала запилите самодельный "энклозинг". Генерируйте точки вокруг фокусов, сохраняйте в массив из 100 000 позиций в каждой все для построения: x0,y0,x1,y1,max,delta. Сортируйте по критерию delta, постройте лучшие топ 10 эллипсов оценить визуально что там нашли.
1
|
120 / 40 / 9
Регистрация: 29.10.2016
Сообщений: 243
|
|
03.12.2020, 02:20 | 59 |
Интересная задача. Определенно разрешимая, а готового метода нет.
Вот и нужно просто уловить на каком основании нам кажется, что с ней можно справиться.
1
|
03.12.2020, 02:20 | |
03.12.2020, 02:20 | |
Помогаю со студенческими работами здесь
59
Сколько простых чисел взаимно простые с 42 между 30 и 70 HC-05 был создан для ардуино или для других целей? Для каких целей подходит С++? ноут для всех целей червь для обучательных целей Подскажите БД для конкретных целей Спирт для электротехнических целей Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |