|
|
|
Задача на оптимизацию
|
|||
|---|---|---|---|
|
#18+
Пусть в N-мерном пространстве задан вектор расстояний R={r1,…,rN} и вектор Q={q1,…,qN}, qk-целое, qk>=0, к=1,…,N. Переменные разбиты на М (M <= N) непересекающихся групп по Lj переменной в каждой, j=1,…M. Cумма sum(qk), входящих в каждую группу, равна Tj. Требуется найти вектор W={w1,…,wN}, минимизирующий сумму J = sum(ck*yk) (суммирование по k=1,…,N), и удовлетворяющий условиям: yk >=0, yk может принимать значения: qk, qk+1, qk-1, sum(yk) = Tj, где суммирование ведется по переменным, входящим в j-ую группу (j=1<…,M). Нужно решить задачу, применяя любой метод, оптимизирующий решение задачи. Насколько я понял, это задача линейного программирования и программа, реализующая задачу будет выглядеть так: Вводится вектор расстояний R и вектор Q и количество непересекающихся групп M. Узнаю число разбиений множества Q из n элементов на m групп, пользуясь числами Стирлинга. Далее вывожу все возможные разбиения множества Q на n групп. (Как это примерно релизовать?) После этого пользователь указывает нужное разбиение и идёт решение задачи, например, симплекс-методом. Подскажите с алгоритмом разбиения на множества. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2010, 22:07:34 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=36423951&tid=1343932]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
199ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 523ms |

| 0 / 0 |
