Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Как-то так...
Как-то так...
Спасибо! Сразу видна рука мастера! Завтра буду пробовать, смотреть, что выходит.
Как-то так...
Приступил к опробованию кода, создал искусственный пример - заполнил массив
Получаю:
Т.е. получили один вариант, но ожидается ещё и вариант
Можно ли алгоритм научить и его находить?
Приступил к опробованию кода, создал искусственный пример - заполнил массив
Получаю:
Т.е. получили один вариант, но ожидается ещё и вариант
Можно ли алгоритм научить и его находить?
А вариант "0-1 3-6 7-9" не лучше варианта "0 - 0-1 2-5 7-9" - оба от 0 до 1 и имеют по 2 пропуска длиной 1.
Два варианта представляется в данном случае:
1 - сделать все тоже самое, но с конца набора отрезков.
2 - сразу искать не самый ближайший отрезок, а с допуском. Но в это случае, если данных много и много стыкующихся последовательностей, то будет еще больше.
Однако после варианта 1 возникнет желание начинать построение цепочек из всех возможных начальных положений. Это правильно, но объем работы алгоритма значительно увеличивается.
Да! Надо начинать построение вариантов от каждого из отрезков исходного набора и продолжать построение в начало и конец.
А вариант "0-1 3-6 7-9" не лучше варианта "0 - 0-1 2-5 7-9" - оба от 0 до 1 и имеют по 2 пропуска длиной 1.
В данном случае они равнозначны, согласен, но они разные и по условиям задачи необходимо будет оценить суммарно результат с помощью суммы их показателей, а пока не построим строку мы не узнаем объединённую оценку всех отрезков.
Однако после варианта 1 возникнет желание начинать построение цепочек из всех возможных начальных положений. Это правильно, но объем работы алгоритма значительно увеличивается.
Да! Надо начинать построение вариантов от каждого из отрезков исходного набора и продолжать построение в начало и конец.
Мне так же кажется, что это более правильная стратегия! Однако, думаю, что могут возникнуть дублирующиеся варианты.
Поможете написанием кода?
Дубли не отсеивал из массива, только пометку сделал. Поскольку теперь в каждом варианте отрезки хранятся в двух массивах, чтобы было удобней, их можно объединить в один массив методом Combine().
Дубли не отсеивал из массива, только пометку сделал. Поскольку теперь в каждом варианте отрезки хранятся в двух массивах, чтобы было удобней, их можно объединить в один массив методом Combine().
Дмитрий, спасибо за новый алгоритм!
Да, копий действительно много
Как я понимаю, их не считать не получится. Комбинацию из 1000 элементов дождаться не смог - память начала кончаться на нетбуке :(
А есть ли возможность использовать не все комбинации при добавления отрезка, а только определенное количество из возможных на текущем шаге, допустим лучшие 10?
Дмитрий, спасибо за новый алгоритм!
Да, копий действительно много
Как я понимаю, их не считать не получится. Комбинацию из 1000 элементов дождаться не смог - память начала кончаться на нетбуке :(
А есть ли возможность использовать не все комбинации при добавления отрезка, а только определенное количество из возможных на текущем шаге, допустим лучшие 10?
Чтобы узнать, что они лучшие, их надо сравнить с другими, то есть сначала надо получить все. Другое дело - как-то оптимизировать алгоритм, но у меня нет цели посвятить этому алгоритму свою жизнь)
Может быть, определиться с критерием достаточности и сначала получить все варианты, начиная только с одного отрезка, случайно выбранного и так далее, пока не появится удовлетворительный вариант.
Да и второй вариант можно ускорить - масштабировать массив с вариантами не по одному элементу, а сразу на несколько десятков элементов, а в конце подровнять его.
Чтобы узнать, что они лучшие, их надо сравнить с другими, то есть сначала надо получить все. Другое дело - как-то оптимизировать алгоритм, но у меня нет цели посвятить этому алгоритму свою жизнь)
Я говорю об отдельно взятом отрезке, допустим у него есть коэффициент для оценки его качества, тогда после каждой итерации мы ветвимся, к примеру, только по 10 лучшим этим коэффициентам.
Может быть, определиться с критерием достаточности и сначала получить все варианты, начиная только с одного отрезка, случайно выбранного и так далее, пока не появится удовлетворительный вариант.
К сожалению, "достаточность" оценить вот сложно - тут надо знать эталон, тогда от него можно определить допуск, а эталона у меня нет.
Да и второй вариант можно ускорить - масштабировать массив с вариантами не по одному элементу, а сразу на несколько десятков элементов, а в конце подровнять его.
Не совсем понял, подразумевается распараллеливание с помощью OpenCL?
1. Я говорю об отдельно взятом отрезке, допустим у него есть коэффициент для оценки его качества, тогда после каждой итерации мы ветвимся, к примеру, только по 10 лучшим этим коэффициентам.
2. К сожалению, "достаточность" оценить вот сложно - тут надо знать эталон, тогда от него можно определить допуск, а эталона у меня нет.
3. Не совсем понял, подразумевается распараллеливание с помощью OpenCL?
1. А где этот коэффициент?
2. А п.1?
3. Нет, все проще. Ладно, завтра постараюсь ускорить.