Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Задача на оптимизацию / 1 сообщений из 1, страница 1 из 1
21.01.2010, 22:07:34
    #36423951
Obsess
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на оптимизацию
Пусть в 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 групп. (Как это примерно релизовать?)
После этого пользователь указывает нужное разбиение и идёт решение задачи, например, симплекс-методом.
Подскажите с алгоритмом разбиения на множества.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Задача на оптимизацию / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]