Кантарович

Автор работы: Пользователь скрыл имя, 07 Апреля 2010 в 20:31, Не определен

Описание работы

Леонид Витальевич Канторович родился в Санкт-Петербурге в семье врача 19 января 1912 г. Он был, что называется, «вундеркиндом». Еще школьником он получал, как особо одаренный ребенок, специальную стипендию, а в четырнадцать лет поступил в университет. Ленинградский университет в ту пору оставался столичным (Академия наук еще не переехала в Москву), а уровень преподавания — очень высоким. Обучение было «штучным», например, Н. M. Гюнтер читал курс лекций всего для двух слушателей — Канторовича и Соболева. Студентов было немного, всего по несколько человек на курсе. Но среди тех немногих, кто учился там в те же годы, что и Леонид Витальевич, можно назвать будущих академиков С. Л. Соболева и С. А. Христиановича, члена-корреспондента Д. К. Фаддеева, профессора И. П. Натансона, иностранного члена итальянской и немецкой академий профессора С. Г. Михлина.

Файлы: 1 файл

Леонид Витальевич Канторович родился в Санкт.doc

— 475.50 Кб (Скачать файл)

Линейное  программирование — математическая дисциплина, посвящённая теории и методам решения экстремальных задач на множествах n-мерного векторного пространства, задаваемых системами линейных уравнений и неравенств.

Линейное  программирование является частным случаем выпуклого программирования, которое в свою очередь является частным случаем математического программирования. Одновременно оно — основа нескольких методов решения задач целочисленного и нелинейного программирования. Одним из обобщений линейного программирования является дробно-линейное программирование.

Многие  свойства задач линейного программирования можно интерпретировать также как свойства многогранников и таким образом геометрически формулировать и доказывать их.

Термин  «программирование» нужно понимать в смысле «планирования». Он был предложен в середине 1940-х годов Джорджем Данцигом, одним из основателей линейного программирования, ещё до того, как компьютеры были использованы для решения линейных задач оптимизации.

Математическая формулировка задачи линейного программирования

Нужно определить максимум линейной целевой  функции (линейной формы)

при условиях

при .

Иногда  на xi также накладывается некоторый набор ограничений в виде равенств, но от них можно избавиться, последовательно выражая одну переменную через другие и подставляя её во всех остальных равенствах и неравенствах (а также в функции f).

Такую задачу называют «основной» или «стандартной»  в линейном программировании.

Примеры задач линейного программирования

Максимальное паросочетание

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

Введём  переменные xij, которые соответствуют паре из i-того юноши и j-той девушки и удовлетворяют ограничениям:

с целевой  функцией . Можно показать, что среди оптимальных решений этой задачи найдётся целочисленное. Переменные, равные 1, будут соответствовать парам, которые следует поженить.

Максимальный поток

Пусть имеется граф (с ориентированными рёбрами), в котором для каждого  ребра указана его пропускная способность. И заданы две вершины: сток и исток. Нужно указать для  каждого ребра, сколько через  него будет протекать жидкости (не больше его пропускной способности) так, чтобы максимизировать суммарный поток из истока в сток (жидкость не может появляться или исчезать во всех вершинах, кроме стока и истока).

Возьмём в качестве переменных x— количество жидкости, протекающих через i-тое ребро. Тогда

,

где c— пропускная способность i-того ребра. Эти неравенства надо дополнить равенством количества втекающей и вытекающей жидкости для каждой вершины, кроме стока и истока. В качестве функции f естественно взять разность между количеством вытекающей и втекающей жидкости в истоке.

Обобщение предыдущей задачи — максимальный поток минимальной стоимости. В этой задаче даны стоимости для каждого ребра и нужно среди максимальных потоков выбрать поток с минимальной стоимостью. Эта задача сводится к двум задачам линейного программирования: сначала нужно решить задачу о максимальном потоке, а потом добавить к этой задаче ограничение , где — величина максимального потока, и решить задачу с новой функцией f(x) — стоимостью потока.

Эти задачи могут быть решены быстрее, чем общими алгоритмами решения задач линейного программирования, за счёт особой структуры уравнений и неравенств.

Транспортная задача

Имеется некий однородный груз, который нужно  перевести с n складов на m заводов. Для каждого склада i известно, сколько в нём находится груза ai, а для каждого завода известна его потребность bj в грузе. Стоимость перевозки пропорциональна расстоянию от склада до завода (все расстояния cij от i-го склада до j-го завода известны). Требуется составить наиболее дешёвый план перевозки.

Решающими переменными в данном случае являются xij — количества груза, перевезённого из i-го склада на j-й завод. Они удовлетворяют ограничениям:

Целевая функция имеет вид: , которую надо минимизировать.

Игра с нулевой суммой

Есть  матрица A размера . Первый игрок выбирает число от 1 до n, второй — от 1 до m. Затем они сверяют числа и первый игрок получает aij очков, а второй ( − aij) очков (— число, выбранное первым игроком, — вторым). Нужно найти оптимальную стратегию первого игрока.

Пусть в оптимальной стратегии число  i нужно выбирать с вероятностью pi. Тогда оптимальная стратегия является решением следующей задачи линейного программирования:

,

,

( ),

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

Алгоритмы решения общей задачи линейного программирования

Наиболее  известным и широко применяемым  на практике для решения общей  задачи линейного программирования (ЛП) является симплекс-метод. Несмотря на то, что симплекс-метод является достаточно эффективным алгоритмом, показавшим хорошие результаты при решении прикладных задач ЛП, он является алгоритмом с экспоненциальной сложностью. Причина этого состоит в комбинаторном характере симплекс-метода, последовательно перебирающего вершины многогранника допустимых решений при поиске оптимального решения.

Первый  полиномиальный алгоритм, метод эллипсоидов, был предложен в 1979 г. советским математиком Л. Хачияном, разрешив таким образом проблему, долгое время остававшуюся нерешённой. Метод эллипсоидов имеет совершенно другую, некомбинаторную, природу, нежели симплекс-метод. Однако в вычислительном плане этот метод оказался неперспективным. Тем не менее сам факт полиномиальной сложности задач привёл к созданию целого класса эффективных алгоритмов ЛП — методов внутренней точки, первым из которых был алгоритм Н. Кармаркара, предложенный в 1984 г. Алгоритмы этого типа используют непрерывную трактовку задачи ЛП, когда вместо перебора вершин многогранника решений задачи ЛП осуществляется поиск вдоль траекторий в пространстве переменных задачи, не проходящих через вершины многогранника. Метод внутренних точек, который, в отличие от симплекс-метода, обходит точки из внутренней части области допустимых значений, использует методы логарифмических барьерных функций нелинейного программирования, разработанные в 60-х гг. Фиако (Fiacco) и МакКормиком (McCormick).

История

В 1939 году Леонид Витальевич Канторович опубликовал работу «Математические методы организации и планирования производства», в которой сформулировал новый класс экстремальных задач с ограничениями и разработал эффективный метод их решения, таким образом были заложены основы линейного программирования.

Джордж Данциг разработал симплекс-метод и считается «отцом линейного программирования» на западе.

Информация о работе Кантарович