Добрый день, коллеги. Помоги с решением задачи: есть два набора данных (столбца) - 294 значения в каждом. Нужно максимизировать коэфф. корреляции, для этого можно выкинуть примерно 10% значений (остаться должно не менее 260 пар значений), Ставлю условия: менять можно слобец, который будет индикатором того оставляем (1) значение или убираем(0): сумма значений >=260 значение столбца с индикатором может быть целым числом, >=0 и <=1. Когда сохраняла модель, выплыло сообщение, что OpenSolver не умеет решать такие задачи, но, к сожалению, не очень внимательно прочитала и закрыла сообщение. Больше такое сообщение не появлялось даже если заново модель создать. Но когда нажимаю "инициализировать модель" он весь столбец индикаторов в 0 загоняет, т.е. игнорируется условие, что сумма индикаторов должна быть не меньше 260. Что не так делаю? Может, не тот метод выбираю? Помогите, пожалуйста, кто в теме. (воспользоваться excel и его поиском решений не получается, так как ограничение на 200 параметров, а у меня их тут 294)
Добрый день, коллеги. Помоги с решением задачи: есть два набора данных (столбца) - 294 значения в каждом. Нужно максимизировать коэфф. корреляции, для этого можно выкинуть примерно 10% значений (остаться должно не менее 260 пар значений), Ставлю условия: менять можно слобец, который будет индикатором того оставляем (1) значение или убираем(0): сумма значений >=260 значение столбца с индикатором может быть целым числом, >=0 и <=1. Когда сохраняла модель, выплыло сообщение, что OpenSolver не умеет решать такие задачи, но, к сожалению, не очень внимательно прочитала и закрыла сообщение. Больше такое сообщение не появлялось даже если заново модель создать. Но когда нажимаю "инициализировать модель" он весь столбец индикаторов в 0 загоняет, т.е. игнорируется условие, что сумма индикаторов должна быть не меньше 260. Что не так делаю? Может, не тот метод выбираю? Помогите, пожалуйста, кто в теме. (воспользоваться excel и его поиском решений не получается, так как ограничение на 200 параметров, а у меня их тут 294)Tooly
На сколько знаю, opensolver решает линейные задачи симплекс-методом, нелинейные задачи он не решает (либо нужно искать дополнительные модули) У Вас составлена нелинейная модель. Может быть как то можно заменить функцию корелляции на другой вариант зависимости.
значение столбца с индикатором может быть целым числом, >=0 и <=1.
Данный вариант можно указать сразу одним ограничением - значения = bin (бинарные, т.е. целочисленные, могут быть либо 1 либо 0)
В качестве альтернативы, можно рассмотреть другой расчет, "без поиска решения", он может быть не самым оптимальным, но быть приемлемым по результату. Например генерация случайных данных и выбор наилучшего из множества и др. алгоритмы
пример во вложении
На сколько знаю, opensolver решает линейные задачи симплекс-методом, нелинейные задачи он не решает (либо нужно искать дополнительные модули) У Вас составлена нелинейная модель. Может быть как то можно заменить функцию корелляции на другой вариант зависимости.
значение столбца с индикатором может быть целым числом, >=0 и <=1.
Данный вариант можно указать сразу одним ограничением - значения = bin (бинарные, т.е. целочисленные, могут быть либо 1 либо 0)
В качестве альтернативы, можно рассмотреть другой расчет, "без поиска решения", он может быть не самым оптимальным, но быть приемлемым по результату. Например генерация случайных данных и выбор наилучшего из множества и др. алгоритмы
Ув. Светлый, я правильно понимаю, что Вы генерируете набор (35шт) значений с номерами строк и проверяете отбрасывание строк из какого набора дает лучший коэфф. корр? Можете сообщить сколько времени занимает перебрать все комбинации 294^35 (минус повторы)? а лучше выложите, пожалуйста, файл с полной полседовательностью действий?
Ув. Светлый, я правильно понимаю, что Вы генерируете набор (35шт) значений с номерами строк и проверяете отбрасывание строк из какого набора дает лучший коэфф. корр? Можете сообщить сколько времени занимает перебрать все комбинации 294^35 (минус повторы)? а лучше выложите, пожалуйста, файл с полной полседовательностью действий?Tooly
2МСН, спасибо за предложенный алгорит и идею почему солвер не считает мою модель.. С генерацией, конечно, есть свои особенности. может оказаться, что набор из 270 пар даст луйший коэфф. корр, чем набор из 260. поэтому не хотелось бы, конечно, сразу задавать "отбросить указанное кол-во пар"... Попробую поискать еще способы обхода.
2МСН, спасибо за предложенный алгорит и идею почему солвер не считает мою модель.. С генерацией, конечно, есть свои особенности. может оказаться, что набор из 270 пар даст луйший коэфф. корр, чем набор из 260. поэтому не хотелось бы, конечно, сразу задавать "отбросить указанное кол-во пар"... Попробую поискать еще способы обхода.Tooly
Сообщение отредактировал Tooly - Четверг, 29.11.2018, 12:46
По аналогии с предыдущем решением через стандартный "Поиск решения" от MS Настройки "Поиска решения" сохранены на листе: генерируем целые числа от 1 до 294 в количестве 34 штуки - те строки, которые будут выбрасываться устанавливаем максимизацию целевой функции устанавливаем генетический алгоритм
найденный результат не обязательно оптимальный, это может быть локальный оптимум Перебрать 294^35, а точнее 294!/260!/34! варианта различных наборов чисел не возможно за разумное время
По аналогии с предыдущем решением через стандартный "Поиск решения" от MS Настройки "Поиска решения" сохранены на листе: генерируем целые числа от 1 до 294 в количестве 34 штуки - те строки, которые будут выбрасываться устанавливаем максимизацию целевой функции устанавливаем генетический алгоритм
найденный результат не обязательно оптимальный, это может быть локальный оптимум Перебрать 294^35, а точнее 294!/260!/34! варианта различных наборов чисел не возможно за разумное времяMCH
В первом варианте невнимательно выбросил 35 пар, а надо было 34. Исправил и добавил в диаграмму второй ряд, который показывает, какие точки были выброшены и линии тренда. Также выложил несколько вариантов Поиск решения и столбец отношений Y/X, в котором максимальные и минимальные значения частично коррелируют с выброшенными парами.
В первом варианте невнимательно выбросил 35 пар, а надо было 34. Исправил и добавил в диаграмму второй ряд, который показывает, какие точки были выброшены и линии тренда. Также выложил несколько вариантов Поиск решения и столбец отношений Y/X, в котором максимальные и минимальные значения частично коррелируют с выброшенными парами.Светлый