
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
22.06.2010, 16:12
|
|||
|---|---|---|---|
Изменение шага итерации для решателя. |
|||
|
#18+
Использую надстройку Solver для поиска минимума целевой функции. Проблема в том, что у меня переменные величины x 1 , x 2 ,..., x n должны принимать целочисленные значения (либо 0, либо 1). А Solver дклает итерации с шагом в 0.0000001 и выдает дробное решение. Если ставлю ограничение на целочисленность ответа, не получаю вообще никакого решения. Можно ли как-то увеличить шаг итерации до 1? ------------- Festina lente ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.06.2010, 23:55
|
|||
|---|---|---|---|
Изменение шага итерации для решателя. |
|||
|
#18+
ну, а исходный код поменять нек пробовали? там должно быть всё не сложно.. только пароль aopr-ом снимите.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.06.2010, 00:00
|
|||
|---|---|---|---|
Изменение шага итерации для решателя. |
|||
|
#18+
Исходный код к Solver.dll ? :-) Поиск решения позволяет в ограничениях указывать двоич. только при этом ожидается тупой перебор бинарных вариантов, т.е. решения можно и не дождаться – зависит от числа n и Вашего возраста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.06.2010, 10:33
|
|||
|---|---|---|---|
Изменение шага итерации для решателя. |
|||
|
#18+
Mozok, А какая у Вас задача, может Вам солвер и не нужен... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.06.2010, 10:37
|
|||
|---|---|---|---|
Изменение шага итерации для решателя. |
|||
|
#18+
Mozok, А если в ы поставите, что xi >=0;<=1; int. Поидее все Ваши параметры выполнятся независимо от шага.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.06.2010, 12:57
|
|||
|---|---|---|---|
Изменение шага итерации для решателя. |
|||
|
#18+
ZVI Поиск решения позволяет в ограничениях указывать двоич. только при этом ожидается тупой перебор бинарных вариантов, т.е. решения можно и не дождаться – зависит от числа n и Вашего возраста. Пробовал я это ограничение, Solver все равно делает дробные шаги и не находит решения. bbx1389А какая у Вас задача, может Вам солвер и не нужен... Книга с задачей во вложении. Целевая ячейка - В47, нужно найти её минимум. Изменяемые ячейки - D2:D42 (общее число вариантов - 2 41 ). Дополнительное условие - А76 = В76. bbx1389А если в ы поставите, что xi >=0;<=1; int. Поидее все Ваши параметры выполнятся независимо от шага.... См. первый пост. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.06.2010, 14:01
|
|||
|---|---|---|---|
Изменение шага итерации для решателя. |
|||
|
#18+
Mozok, А у Вас 2003 excel нет? А Вы на все переменные поставли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.06.2010, 14:46
|
|||
|---|---|---|---|
Изменение шага итерации для решателя. |
|||
|
#18+
bbx1389 А у Вас 2003 excel нет? Нет, но, если надо, могу пересохранить в формате xls. bbx1389 А Вы на все переменные поставли? Ставил сразу на диапазон D2:D42 = integer. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.06.2010, 15:07
|
|||
|---|---|---|---|
Изменение шага итерации для решателя. |
|||
|
#18+
Использование формул ЕСЛИ() означает разрывы первой производной целевой функции. При этом, если не использовать специальные программы/алгоритмы, то остается тупой перебор бинарных вариантов. Оценим максимальное время перебора вариантов. Переменных бинарных ячеек 41 шт. Количество вариантов: 2^41 = 2 199 023 255 552 На моем компе пересчет листа Publications.xlsx выполняется не за 0.2 миллисекунды. Для измерения времени пересчета использовалась надстройка RangeCalc . Тогда время перебора всех вариантов составит: 439 804 651 секунд = 122 168 часов = 5 090 суток = 14 лет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.06.2010, 15:10
|
|||
|---|---|---|---|
Изменение шага итерации для решателя. |
|||
|
#18+
ZVI не за 0.2 миллисекунды Читать: не менее, чем за 0.2 миллисекунды ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.06.2010, 09:08
|
|||
|---|---|---|---|
Изменение шага итерации для решателя. |
|||
|
#18+
К сожалению не знаю какая у вас целевая функция, но предлагаю Вам решить её "руками". Составляете функцию Лагранжа, приравниваете частные производные к 0 и решаете систему уравнений(что обычно давольно просто хоть прямыми хоть итерационными методамми) Или можете попробывать методы координатного или градиентного спуска.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.06.2010, 10:26
|
|||
|---|---|---|---|
Изменение шага итерации для решателя. |
|||
|
#18+
bbx1389, понимаете, это не так уж просто, учитывая, что целевая функция представляет собой набор ступенек (разрывы первого рода), а первая производная - набор бесконечностей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.06.2010, 10:46
|
|||
|---|---|---|---|
Изменение шага итерации для решателя. |
|||
|
#18+
Mozokbbx1389, понимаете, это не так уж просто, учитывая, что целевая функция представляет собой набор ступенек (разрывы первого рода), а первая производная - набор бесконечностей. Я целевую функцию из-за формата файла не могу посмотреть, поэтому предлагаю "на ощупь".... Может попробовать не в excel это проделать, в матлабе каком-нибудь.... Хотя мне всёравно кажется, что задачу можно свести к более решабельному варианту... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=61&tablet=1&tid=2177937]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
175ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 442ms |

| 0 / 0 |
