Помогите решить оптимизационную задачу

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Ответить
dreamer538
Сообщения: 2
Зарегистрирован: 25 май 2008, 19:30

Помогите, пожалуйста решить задачу оптимизации:
Нужно оптимизировать распределенное файловое хранилище:

Исходные данные
n=количество хранилищ
m=количество файлов
массив L[ i ]=размер i-го файла
массив S[ i ]=размер i-го хранилища
массив I[ i ]=интенсивность доступа к i-му файлу
массив распределения X[j,i] - булевый массив присутствия файла i в хранилище о

Условия:
сумма в каждой строке Х=1 (файл находится одновременно только в 1 хранилище)
общий размер файлов в хранилище не превышает размер хранилища

Задача: Оптимизировать нагрузку на все хранилища.
Т.Е. чтобы среднее отклонение ряда
Е(j=1..m) X[i,j]*I[ j ]*S[ j ] , i=1..n было минимальным
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

А зачем тогда двухмерный массив Х, если на каждую строку всего одна единица? Не проще ли тогда integerный одномерный массив? Но это так, замечание.
Вообще по задаче: какие из параметров мы можем изменять, а какие жестко заданы?
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
dreamer538
Сообщения: 2
Зарегистрирован: 25 май 2008, 19:30

Хыиуду писал(а):А зачем тогда двухмерный массив Х, если на каждую строку всего одна единица? Не проще ли тогда integerный одномерный массив? Но это так, замечание.
Вообще по задаче: какие из параметров мы можем изменять, а какие жестко заданы?


Двумерный массив, чтобы можно было простым перебором и перемноживанием посчитать общее кол-во переданной информации на хранилище. может, как-то проще можно... Просто с ЛП очень отдаленно знаком.

Менять можем только размещение файлов. т.е. массив Х. Остальное жестко задано.
Еще непонятно как разброс ряда можно использовать в качестве целевой функции. ИМХО, это не линейная функция :(
Ответить