Помогите, пожалуйста решить задачу оптимизации:
Нужно оптимизировать распределенное файловое хранилище:
Исходные данные
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 было минимальным
Помогите решить оптимизационную задачу
Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill
А зачем тогда двухмерный массив Х, если на каждую строку всего одна единица? Не проще ли тогда integerный одномерный массив? Но это так, замечание.
Вообще по задаче: какие из параметров мы можем изменять, а какие жестко заданы?
Вообще по задаче: какие из параметров мы можем изменять, а какие жестко заданы?
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
-
- Сообщения: 2
- Зарегистрирован: 25 май 2008, 19:30
Хыиуду писал(а):А зачем тогда двухмерный массив Х, если на каждую строку всего одна единица? Не проще ли тогда integerный одномерный массив? Но это так, замечание.
Вообще по задаче: какие из параметров мы можем изменять, а какие жестко заданы?
Двумерный массив, чтобы можно было простым перебором и перемноживанием посчитать общее кол-во переданной информации на хранилище. может, как-то проще можно... Просто с ЛП очень отдаленно знаком.
Менять можем только размещение файлов. т.е. массив Х. Остальное жестко задано.
Еще непонятно как разброс ряда можно использовать в качестве целевой функции. ИМХО, это не линейная функция
