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

start [/forum/topic.php?fid=61&fpage=157&tid=2177937]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 223ms |
| total: | 381ms |

| 0 / 0 |
