Страница 1 из 1

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

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

Исходные данные
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 было минимальным

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

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

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

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


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

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