Список форумов   Список форумов  

Не могу найти алгоритм

Всё о программировании на Labview

Модераторы: Техподдержка NI, Robert, Модератор

Не могу найти алгоритм

Сообщение Yurets » Чт ноя 20, 2014 9:33 am

Здравствуйте, уважаемые форумчане.Образовалась следующая проблема: нужен алгоритм:
Имееются реальные 20 приборов, у которых надо последовательно померить 2 параметра(ток и напряжение(с ni pcie-6321)).Проблема заключается в том, что померив это дело, я получаю 2 массива по 20 значений в каждом(1массив-ток, 2массив-напряжение) и надо разбить эти 20 приборов на максимальное количество троек(по 3 прибора) с близкими значениями тока и напряжения(задается диапазон, в котором должны находится значения).Как это провернуть, как сгруппировать,отсортировать, чтобы на выходе получилось допустим
первая тройка--4,6,19, вторая--1,8,15 прибор и т.д.
Буду рад любым идеям и предложениям)
Спасибо.
Yurets
Специалист LabVIEW
 
Сообщений: 113
Зарегистрирован: Вт сен 10, 2013 3:22 pm

Re: Не могу найти алгоритм

Сообщение IvanLis » Чт ноя 20, 2014 10:49 pm

Yurets писал(а):Проблема заключается в том, что померив это дело, я получаю 2 массива по 20 значений в каждом(1массив-ток, 2массив-напряжение) и надо разбить эти 20 приборов на максимальное количество троек(по 3 прибора) с близкими значениями тока и напряжения(задается диапазон, в котором должны находится значения).Как это провернуть, как сгруппировать,отсортировать, чтобы на выходе получилось допустим
первая тройка--4,6,19, вторая--1,8,15 прибор и т.д.
Буду рад любым идеям и предложениям)
Спасибо.


У Вас элементарная задача разбиения на множества, причем всего два параметра.
Для вычисления "расстояния" между объектами можно использовать Евклидову метрику (https://ru.wikipedia.org/wiki/%D0%95%D0 ... 0%BA%D0%B0)
Самое главное правильно определить критерий.
Что делать если например по току входит в одну группу, а по напряжению в другую :P
Знание нескольких принципов освобождает от знания многих фактов!

Живу я здесь ||| LabVIEW Portal in Google+
IvanLis
Специалист LabVIEW
 
Сообщений: 488
Зарегистрирован: Пн апр 23, 2007 1:44 pm
Откуда: СССР

Re: Не могу найти алгоритм

Сообщение Yurets » Пт ноя 21, 2014 9:25 am

IvanLis писал(а):Что делать если например по току входит в одну группу, а по напряжению в другую

ничего, не брать во внимание, значит не подходят.
Хотелось бы реализовать так: сначала сформировать тройки элементов по току, затем тройки по напряжению, а уже потом найти пересечения этих множеств
Последний раз редактировалось Yurets Пт ноя 21, 2014 11:30 am, всего редактировалось 3 раз(а).
Yurets
Специалист LabVIEW
 
Сообщений: 113
Зарегистрирован: Вт сен 10, 2013 3:22 pm

Re: Не могу найти алгоритм

Сообщение Yurets » Пт ноя 21, 2014 9:26 am

сейчас скину, что сделал, пару приборов по 2 параметрам нашел, а вот как теперь сформировать тройку?(или четверку приборов)
А конкретнее вопрос такой: как сравнивать не 2, а 4 элемента одновременно, обойдя весь диапазон? вот
Вложения
алгоритм - копия -только диагонали.vi
(286.36 KiB) Скачиваний: 84
Последний раз редактировалось Yurets Вт ноя 25, 2014 4:51 pm, всего редактировалось 1 раз.
Yurets
Специалист LabVIEW
 
Сообщений: 113
Зарегистрирован: Вт сен 10, 2013 3:22 pm

Re: Не могу найти алгоритм

Сообщение IvanLis » Пт ноя 21, 2014 11:10 pm

Yurets писал(а):сейчас скину, что сделал, пару приборов по 2 параметрам нашел, а вот как теперь сформировать тройку?(или четверку приборов)
А конкретнее вопрос такой: как сравнивать не 2, а 4 элемента одновременно, обойдя весь диапазон? вот

Вы определитесь с условиями задачи.
Сначала была тройка, теперь четверка.
Чем конкретнее будут заданы условия, ограничения и критерий, тем проще написать алгоритм.

Но не обольщайтесь, я хоть и сказал, что задача элементарна, но... это комбинаторная задача. Так что решать ее либо в лоб (а это факториальная зависимость количества комбинаций), либо вводить ограничения для ускорения решения.
Знание нескольких принципов освобождает от знания многих фактов!

Живу я здесь ||| LabVIEW Portal in Google+
IvanLis
Специалист LabVIEW
 
Сообщений: 488
Зарегистрирован: Пн апр 23, 2007 1:44 pm
Откуда: СССР

Re: Не могу найти алгоритм

Сообщение Yurets » Пн ноя 24, 2014 9:36 am

вроде как решил, но не знаю все ли решения нашлись,приведу к нормальному виду , тогда выложу.На корректность решения не знаю,делал на интуитивном уровне, взял пока 8 приборов и сравниваю их всеми комбинациями по 2 параметрам так, чтобы выяснить количество четверок с значениями параметров, не выходящих из диапазона требуемых значений.
Yurets
Специалист LabVIEW
 
Сообщений: 113
Зарегистрирован: Вт сен 10, 2013 3:22 pm

Re: Не могу найти алгоритм

Сообщение Yurets » Пн ноя 24, 2014 10:51 am

Вот алгоритм.
Но находит не все комбинации, помогите исправить.
Вложения
алгоритм - копия.vi
(198.74 KiB) Скачиваний: 107
Yurets
Специалист LabVIEW
 
Сообщений: 113
Зарегистрирован: Вт сен 10, 2013 3:22 pm

Re: Не могу найти алгоритм

Сообщение Yurets » Пн ноя 24, 2014 10:55 am

IvanLis писал(а):Вы определитесь с условиями задачи.
Сначала была тройка, теперь четверка.
Чем конкретнее будут заданы условия, ограничения и критерий, тем проще написать алгоритм.

Хотелось бы сформировывать четверки, но, если таковых нет то тройки. СМысл такой
Yurets
Специалист LabVIEW
 
Сообщений: 113
Зарегистрирован: Вт сен 10, 2013 3:22 pm

Re: Не могу найти алгоритм

Сообщение IvanLis » Вт ноя 25, 2014 10:05 pm

Yurets писал(а):
IvanLis писал(а):Вы определитесь с условиями задачи.
Сначала была тройка, теперь четверка.
Чем конкретнее будут заданы условия, ограничения и критерий, тем проще написать алгоритм.

Хотелось бы сформировывать четверки, но, если таковых нет то тройки. СМысл такой


Делать работу за Вас никто не станет.
Я могу дать направление в котором двигался бы я, это лично мое мнение и не является аксиомой.

Сначала попытаться решить задачу перебора в "лоб", но повторяюсь это возможно только при малом количестве точек!
------------------
Дано: 9 точек на 2D плоскости.
Необходимо: сформировать три группы точек, по 3 точки в группе.
Критерий: минимум суммы суммы расстояний между точками по Евклидовой метрике - Вес.
--------
Если не заморачиваться над формирование групп, то всего возможно 9!=362880 вариантов.
Каждый из вариантов будем оценивать как сумму расстояний всех групп. Расстояние в группе из трех точек будем рассчитывать (опять для упрощения и унификации) как сумму расстояний между точками "каждая с каждой", итого это 3 точки у каждой 2 соседа, получаем 6 расстояний.

Все что остается, это просчитать все возможные комбинации, вычислить для них Вес и выбрать комбинацию с минимальным Весом или одно из них в случае равенства критерия (Парето). Это и будет оптимальное решение.

-----------------------------
Аналогичным образом можно сформулировать задачу и для четырех точек, решение аналогично. Только в группе будет уже 4*3=12 расстояний.

----------------------------
А уже потом пытаться оптимизировать решение. Первое что я вижу, это формирование групп. Т.к. смысла их переставлять внутри нет.
Потом расчет Веса для группы, например для точек достаточно посчитать три расстояния, а не шесть, но это по сравнению с перебором "капля в море".

При большом количестве точек задача перебором не решается. Нужно использовать альтернативные алгоритмы поиска "квази-оптимального решения".
Часто используются генетические алгоритмы.

Возможно перед перебором выполнить так называемую "релаксацию", это позволит снизить размерность задачи.
-----------------

Теперь Вам наверное понятно, почему ответа Вы не дождались и не дождетесь. Потому что разбираться в чужом коде, а еще заведомо неверным, никто не станет.
Да и читать лекции и разжевывать давно известные методы и алгоритмы никто не станет.

Пользуйтесь поиском, каждый из этапов описанного мной решения, описаны многократно и подробнейшим образом.
Знание нескольких принципов освобождает от знания многих фактов!

Живу я здесь ||| LabVIEW Portal in Google+
IvanLis
Специалист LabVIEW
 
Сообщений: 488
Зарегистрирован: Пн апр 23, 2007 1:44 pm
Откуда: СССР

Re: Не могу найти алгоритм

Сообщение Yurets » Чт ноя 27, 2014 12:37 pm

Да как то очень сложно получилось.
За направление и отзыв спасибо.
Yurets
Специалист LabVIEW
 
Сообщений: 113
Зарегистрирован: Вт сен 10, 2013 3:22 pm

Re: Не могу найти алгоритм

Сообщение Yurets » Ср дек 03, 2014 4:31 pm

Суть такая была
Вложения
как.jpg
как.jpg (110.93 KiB) Просмотров: 3072
Yurets
Специалист LabVIEW
 
Сообщений: 113
Зарегистрирован: Вт сен 10, 2013 3:22 pm

Re: Не могу найти алгоритм

Сообщение Yurets » Чт дек 04, 2014 11:02 pm

Yurets
Специалист LabVIEW
 
Сообщений: 113
Зарегистрирован: Вт сен 10, 2013 3:22 pm


Вернуться в LabVIEW

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3