Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
L-shaped метод на русском.doc
Скачиваний:
7
Добавлен:
20.04.2019
Размер:
393.73 Кб
Скачать

Пример использования алгоритма

Проиллюстрируем работу алгоритма L-Shaped метода на простом примере:

1

2

4

1/3

1/3

1/3

Поставленная в примере задача была искусственно развёрнута в предположении, что

,

.

Тем самым видно, что эта задача сводится к нахождению минимума функции одной переменной. Точное решение задачи можно получить, построив график этой функции.

Теперь становится ясным, что получаемые в ходе применения алгоритма ограничения на самом деле совпадают со звеньями ломанных, на пересечении которых лежит оптимальное решение.

Практическая ценность l-Shaped метода

Основными показателями работающей программы (алгоритма) являются:

  1. Скорость работы (вычисления) - v

  2. Затраты памяти - m

Как известно эти два показателя находятся в обратной зависимости (v~1/m). Из которого можно найти оптимальное для каждой задачи соотношение v к m. В некоторых типах задач вопрос об экономии памяти, при решении задачи напрямую, становится существенным, настолько, что мы не укладываемся по ресурсам «железа». Как раз в таких случаях приходится применять специальные методы и алгоритмы, которые в ущерб скорости помогут нам сэкономить на памяти. Как известно большие объемы памяти требуют задачи большой размерности. Матрица размерностью nxm, где элементы матрицы вещественные числа будет занимать в памяти машины n*m*sizeof(элемент матрицы), где sizeof(.) – число байт занимаемое элементом матрицы.

Например: В языке C# тип sizeof(double) равен 8 байтам, это означает, что матрица 1000х1000 будет занимать 8 мегабайт. А вот матрица 10000x10000 (800 Мб) уже может вызвать затруднение в выделении памяти на персональной машине.

Конечно, можно заметить, что эти матрицы будут содержать много нулей (разреженные матрицы) и применить методы хранения разреженных матриц, но этот метод не только сэкономит нам много памяти, но и резко снизит скорость выполнения операций над матрицами. Причина тому – экзотический доступ к элементам матрицы, что вызывает дополнительные вычислительные расходы. Даже прямой доступ к ячейке памяти по адресу довольно медленная операция (например, доступ к элементу массива array[i]). Можно дальше продолжить оптимизацию по скорости, а именно, специфическим образом выравнивать матрицу в памяти и обходить ее элементы так, чтобы эффективно задействовать конвейерную архитектуру процессора и шины, а так же кэш процессора. Это так называемая оптимизация под определенную платформу.

L-Shaped метод специально создан для таких целей. Он позволяет решать нам задачи высокой размерности, которые решением напрямую не решались, из-за ограничения по «железу». Вся суть этого метода состоит в том, что он решает огромное количество задач малой размерности. Если проанализировать работу L-shaped метода, то можно заметить, что на малой размерности и при увеличении размерности L-Shaped метод будет проигрывать прямому методу, но на большой размерности прямой метод не сможет продолжить исполнение, в то время как L-Shaped метод будет успешно справляться с задачей.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]