Математическое программирование - определение. Что такое Математическое программирование
Diclib.com
Словарь ChatGPT
Введите слово или словосочетание на любом языке 👆
Язык:

Перевод и анализ слов искусственным интеллектом ChatGPT

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

  • как употребляется слово
  • частота употребления
  • используется оно чаще в устной или письменной речи
  • варианты перевода слова
  • примеры употребления (несколько фраз с переводом)
  • этимология

Что (кто) такое Математическое программирование - определение

ВЫБОР НАИЛУЧШЕГО РЕШЕНИЯ; ЗАДАЧА НАХОЖДЕНИЯ ЭКСТРЕМУМА ЦЕЛЕВОЙ ФУНКЦИИ В НЕКОТОРОЙ ОБЛАСТИ КОНЕЧНОМЕРНОГО ВЕКТОРА
Математическое программирование; Теория оптимизации; Программирование математическое; Задача оптимизации; Методы оптимизации; Задача условной оптимизации; Задача безусловной оптимизации; Математическая оптимизация
  • максимум]] от (''x, y, z'') = (0, 0, 4) обозначен синей точкой
  • Функции оптимизации]]. Симплексные вершины упорядочиваются по их значению, при этом 1 имеет наименьшее (лучшее) значение.
Найдено результатов: 182
МАТЕМАТИЧЕСКОЕ ПРОГРАММИРОВАНИЕ         
раздел математики, посвященный теории и методам решения задач о нахождении экстремумов функций на множествах, определяемых некоторыми ограничениями (равенствами или неравенствами). Если изучаемая функция линейна (1-й степени) и задана на множестве, заданном линейными равенствами и неравенствами, то соответствующий раздел математического программирования называется линейным программированием. Математическое программирование называется также оптимальным программированием. Следует отличать от программирования на ЭВМ.
Математическое программирование         

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

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

Наименование "М. п." связано с тем, что целью решения задач является выбор программы действий.

Математическая формулировка задачи М. п.: минимизировать скалярную функцию φ(x) векторного аргумента х на множестве

X = {x: gi(x) ≥ 0, hi(x) = 0, I = 1, 2, ..., k},

где gi(x) и hi(x) - также скалярные функции; функцию φ(x) называют целевой функцией, или функцией цели, множество X - допустимым множеством, решение х* задачи М. п. - оптимальной точкой (вектором).

В М. п. принято выделять следующие разделы. Линейное программирование: целевая функция φ(x) и ограничения gi(x) и hi (х) линейны; выпуклое программирование: целевая функция и допустимое множество выпуклы; квадратичное программирование: целевая функция квадратична и выпукла, допустимое множество определяется линейными равенствами и неравенствами; дискретное программирование: решение ищется лишь в дискретных, например целочисленных, точках множества X; стохастическое программирование: в отличие от детерминированных задач, здесь входная информация носит элементы неопределённости; например, в стохастических задачах о минимизации линейной функции

при линейных ограничениях

, i = 1, 2, ..., m,

либо все величины cj, aij, bi, либо часть из них случайны.

Задачи перечисленных разделов обладают общим свойством: всякая точка локального минимума является оптимальной точкой. Несколько в стороне находятся так называемые многоэкстремальные задачи - задачи, для которых указанное свойство не выполняется.

В основе теории выпуклого программирования и, в частности, линейного и квадратичного, лежит теорема Куна - Таккера о необходимых и достаточных условиях существования оптимальной точки x*: для того чтобы точка х* была оптимальной, то есть

,

X = {x: gi(x) ≥ 0, i = 1, 2, ..., k},

необходимо и достаточно, чтобы существовала такая точка у* = (у*1, у*2, ..., у*k), чтобы пара точек х*, у* образовывала седло функции Лагранжа

Последнее означает, что

L(x*, y) ≤ L(x*, y*) ≤ L(x, у*)

для любых х и всех у ≥ 0. Если ограничения gi(x) нелинейны, то теорема справедлива при некоторых дополнительных предположениях о допустимом множестве.

Если функции φ(x) и gi(x) дифференцируемы, то следующие соотношения определяют седловую точку

, j = 1, 2, ..., n;

; ; i = 1, 2, ..., k;

, yi . 0, i = 1, 2, ..., k.

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

На основе теоремы Куна - Таккера разработаны различные итерационные методы минимизации, сводящиеся к поиску седловой точки функции Лагранжа.

В М. п. одно из главных мест принадлежит вычислительным методам решения экстремальных задач. Широким классом таких методов являются методы проектирования. Идея этих методов состоит в следующем. В точке xkX выбирается направление спуска sk, то есть одно из направлений, по которому функция φ(x) убывает, и вычисляется xk+1 = p(xk + αksk), где p(xk + αksk) означает проекцию точки xk + αksk на множество X:

,

число αk > 0 выбирается при этом так, чтобы φ(xk +1) < φ(xk). Существуют различные варианты методов проектирования. Наиболее распространённым из них является метод проекции градиента, когда sk = -grad φ(xk). В М. п. доказано, что при определённых условиях на целевую функцию и допустимое множество, последовательность {хk}, построенная методом проекции градиента, такова, что стремится к нулю со скоростью геометрической прогрессии.

Характерной особенностью вычислительной стороны методов решений задач М. п. является то, что применение этих методов неразрывно связано с использованием электронных вычислительных машин, в первую очередь потому, что задачи М. п., связанные с ситуациями управления реальными системами, являются задачами большого объёма, недоступными для ручного счёта.

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

М. п. как наука сформировалось в 50-70-х годах 20 века. Это обусловлено главным образом развитием электронных вычислительных машин, а следовательно, с возможностью проводить математическую обработку больших потоков информации, и на этой основе решать задачи управления и планирования, где применение математических методов связано в первую очередь с построением математических моделей и соответствующих им экстремальных задач, в том числе задач М. п.

Лит.: Зуховицкий С. И., Авдеева Л. И., Линейное и выпуклое программирование, 2 изд., М., 1967; Хедли Дж., Нелинейное и динамическое программирование, перевод с английского, М., 1967.

В. Г. Карманов.

Программирование математическое         

математическая дисциплина, посвящённая решению экстремальных задач определённого типа. См. Математическое программирование.

Программирование         
  • суммирующей машины]] [[IBM 402]]
  • фолдинг]]
СОЗДАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ КОМПЬЮТЕРА
Компьютерное программирование

процесс составления упорядоченной последовательности действий (программы (См. Программа)) для ЭВМ; научная дисциплина, изучающая программы для ЭВМ и способы их составления, проверки и улучшения.

Каждая ЭВМ является автоматом, состоящим из памяти, образуемой внешним и оперативным запоминающими устройствами, устройства управления (УУ) и арифметические устройства (АУ), в котором могут выполняться некоторые действия или операции. Память имеет вид занумерованной последовательности ячеек, в каждой из которых хранится порция двоичной информации в виде серии нулей и единиц. Автоматическая работа ЭВМ, управляемая программой, состоит из последовательности тактов. На каждом такте УУ выбирает из предписанной ему ячейки памяти порцию информации. Эта порция трактуется как команда, т. е. предписание АУ выполнить некоторую операцию. Обычно в ЭВМ выполнение операции состоит в том, чтобы из определённых ячеек памяти взять хранящуюся там информацию, передать её в АУ для выполнения над ней нужного действия, результат которого отправить в указанную ячейку памяти, и сообщить УУ номер ячейки следующей команды. Отдельные действия, совершаемые ЭВМ, весьма просты - это арифметические и логические операции, операции сравнения, переписывания порции информации и т.п. Т. о., составить программу для ЭВМ - это значит представить способ решения задачи в виде такой совокупности машинных команд (программы), чтобы они, будучи размещенными в памяти, поочерёдно выполняясь и вызывая одна другую, реализовали нужные вычисления.

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

Дополнительной особенностью П. является его трудность: размеры многих реальных программ исчисляются тысячами команд, а количество выполняемых ими действий - десятками миллионов. Такие объёмы в сочетании с элементарным характером машинных команд делают П. одновременно и очень сложным, и очень монотонным процессом.

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

Языки программирования (См. Язык программирования) как способ точного формулирования задачи на разных этапах подготовки её к решению на ЭВМ сыграли фундаментальную роль в развитии П. В частности, они позволяют трактовать П. как процесс перевода задания для ЭВМ, выраженного в некотором языке, на другой язык - "язык машины". Если найти и описать точные правила такого перевода, то эти правила, в свою очередь, можно запрограммировать на ЭВМ. Полученные программы, автоматизирующие процесс П., называют трансляторами.

Процесс П. обычно состоит из следующих этапов:

Содержание каждого этапа П. можно пояснить на примере решения квадратного уравнения.

Исходная формулировка. Надо найти корни 50 квадратных уравнений вида ax2 + bx + c = 0, коэффициенты которых заданы в виде трёх таблиц Ai, Bi и Ci (i = 1,..., 50).

Алгоритмическое описание задачи получается в результате полного математического исследования её постановки, выбора стандартных или поиска новых алгоритмов выполнения всех нужных вычислений, а также уточнения, какие исходные данные надо ввести в ЭВМ и какие результаты надо получить. В данном случае алгоритмическое описание может иметь такой вид: ввести в ЭВМ таблицы коэффициентов Ai, Bi и Ci, решить каждое уравнение по общей формуле

с исследованием дискриминанта b2 - 4ac для определения случая комплексных корней; для единообразия каждый корень уравнения выдавать как комплексное число x = u + iv, полагая в случае вещественных корней мнимую часть равной нулю.

Язык П. высокого уровня - главное средство составления программ для ЭВМ. Общая особенность этих языков - их независимость от системы команд конкретных ЭВМ и фразовая структура, что в сочетании с использованием т. н. служебных слов приближает их к естественным языкам. Фразы разделяются обычно точкой с запятой; соподчинённость фраз указывается с помощью "операторных скобок" начало и конец; фразы делятся на два типа - операторы и описания. Оператор является единицей действия в языке. Различают следующие их типы: операторы присваивания, производящие подсчёт по указанной формуле и присваивающие вычисленное значение заданной переменной величине; условные операторы, которые в зависимости от результата проверки заданного условия производят выбор одной или другой ветви вычислений; операторы цикла, обеспечивающие повторное выполнение группы операторов. В описаниях указываются свойства переменных величин и других обозначений, используемых в программе. Важным свойством является "процедурный" характер языка: для любой уже составленной программы, решающей некоторую частную задачу, можно ввести символическое функциональное обозначение. Текст этой программы вместе с её обозначением называется описанием процедуры или подпрограммой. Тогда при составлении новой программы всюду, где может потребоваться использование этой описанной процедуры, достаточно упомянуть её функциональное обозначение в виде оператора процедуры вместо переписывания полного текста подпрограммы.

В 70-х гг. 20 в. существует целое семейство таких языков П.: алгол-60, фортран для решения инженерных и научных задач, кобол для экономических расчётов, симула для П. математических моделей, более мощные языки алгол-68 и ПЛ/1, охватывающие все виды применений ЭВМ. Для всех из них существуют трансляторы, обеспечивающие автоматическое построение машинных программ для задач, выраженных в этих языках.

Программа решения квадратного уравнения, записанная на языке алгол-60 (адаптированном):

начало вещественные массивы А, В, С [1: 50];

вещественные а, b, с, u1, υ1, u2, υ2;

целое i, ввод (A, В, С);

для i: = шаг 1 до 50 цикл

начало а: = A [i]; b: = B [i]; c = C [i];

если , то

начало υ1: = υ2: = 0; u1:= -b + корень ;

u 2:= - b - корень ;

конец иначе

начало υ1: = корень ;

υ2: = - υ1; u1:= u2:

конец; вывод (u1, υ1, u2, υ2)

конец

конец

Машинно-ориентированный язык представляет программы в терминах команд ЭВМ, но выраженных в более удобной для употребления символике, нежели прямое двоичное представление. Он используется на промежуточном этапе процесса автоматической трансляции с языка более высокого уровня или же как язык П., когда программа по существу сразу должна быть сконструирована в терминах машинных команд. В последнем случае роль языка высокого уровня часто играет язык блок-схем, когда структура программы, т. е. последовательность выполнения её "блоков", наличие разветвления и повторяющихся участков показываются в графической форме, а функции каждого блока записываются в произвольной текстовой форме. Ниже следует пример блок-схемы решения квадратного уравнения:

После составления программы неотъемлемым этапом П. является "отладка" программы, т. е. обнаружение и исправление ошибок, допускаемых при П. Основное средство отладки - т. н. отладочные запуски, когда в программу добавляются дополнительные "измерительные" действия, позволяющие по ходу выполнения программы на ЭВМ выдавать "протокол" её работы (порядок выполнения команд, значения промежуточных результатов и т.п.). Исследование протокола позволяет судить о том, в какой степени программа соответствует замыслу программиста.

Развитие П. как науки началось с 1947 в работах американских математиков Дж. Неймана, А. Беркса и Г. Голдстайна, которые описали принципы ЭВМ, управляемой программой, хранящейся в памяти. Они же ввели в употребление блок-схемы программы. Понятие подпрограммы и методики её использования было введено в 1951 английскими учёными М. Уилксом, Дж. Уилером и С. Гиллом. Советский математик А. А. Ляпунов, первым в СССР прочитавший в МГУ в 1952 курс П., определил П. как многоэтапный процесс и ввёл в П. аппарат символических обозначений, явившийся предвестником языков П. высокого уровня. Идея автоматизации программирования (См. Автоматизация программирования) путём трансляции программы, записанной на языке П., была реализована в США Дж. У. Бейкусом (язык фортран) и Г. Хоппер и в СССР С. С. Камыниным, Э. З. Любимским, М. Р. Шура-Бурой и А. П. Ершовым (1954-56). К 1960 в США был разработан язык кобол и международный язык П. алгол-60 (группой учёных из 6 стран). В 60-е гг. развитие П. шло по пути совершенствования и универсализации языков П., нашедших своё воплощение в языках алгол-68, ПЛ/1 и симула, разработки методов формального и строгого описания языков П., развития теории и техники построения трансляторов, создания библиотек стандартных подпрограмм. Особое развитие получили машинно-ориентированные языки П. в направлении объединения ряда черт языков высокого уровня (процедурность, фразовая структура) с адаптируемостью к особенностям конкретной ЭВМ. Для некоторых классов задач предприняты успешные попытки расширить область применения автоматизации П. путём формализации способов алгоритмического описания задачи или даже её исходной формулировки. Это привело к понятиям проблемно-ориентированных языков П., неалгоритмических языков П. и т.п.

Лит.: Лавров С. С., Введение в программирование, М., 1973: его же, Универсальный язык программирования. (АЛГОЛ 60), 3 изд., М., 1972; Жоголев Е. А., Трифонов Н. П., Курс программирования, 3 изд., М., 1971; Джермейн К. Б., Программирование на 1ВМ/360, пер. с англ., 2 изд., М., 1973; Стэбли Д., Логическое программирование в системе 360, пер. с англ., М., 1974.

А. П. Ершов.

Рис. к ст. Программирование.

ПРОГРАММИРОВАНИЕ         
  • суммирующей машины]] [[IBM 402]]
  • фолдинг]]
СОЗДАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ КОМПЬЮТЕРА
Компьютерное программирование
2. часть прикладной математики и вычислительной техники, разрабатывающая методы составления программ (в 6 знач.).
ПРОГРАММИРОВАНИЕ         
  • суммирующей машины]] [[IBM 402]]
  • фолдинг]]
СОЗДАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ КОМПЬЮТЕРА
Компьютерное программирование
процесс подготовки задач для решения их на ЭВМ, состоящий из следующих этапов: составление "плана решения" задачи в виде набора операций (алгоритмическое описание задачи); описание "плана решения" на языке программирования (составление программы); трансляция программы с языка программирования на машинный язык (в виде последовательности команд, реализация которых техническими средствами ЭВМ и есть процесс решения задачи). Программированием называют также раздел прикладной математики, изучающий и разрабатывающий методы и средства составления, проверки и улучшения программ для ЭВМ.
Оптимизация (математика)         
Оптимизация (в математике, информатике и исследовании операций) — это задача нахождения экстремума (минимума или максимума) целевой функции в некоторой области конечномерного векторного пространства, ограниченной набором линейных и/или нелинейных равенств и/или неравенств.
программирование         
  • суммирующей машины]] [[IBM 402]]
  • фолдинг]]
СОЗДАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ КОМПЬЮТЕРА
Компьютерное программирование
ср.
Раздел прикладной математики и вычислительной техники, разрабатывающий методы составления программ (7).
Мультипарадигменное программирование         
Мультипарадигмальное программирование
Мультипарадигменное программирование — программирование с одновременным использованием множества парадигм.
Офшорное программирование         
Оффшорное программирование
Офшорное программирование — разработка программного обеспечения для иностранных заказчиков, одна из форм офшорного аутсорсинга.

Википедия

Оптимизация (математика)

Оптимизация (в математике, информатике и исследовании операций) — это задача нахождения экстремума (минимума или максимума) целевой функции в некоторой области конечномерного векторного пространства, ограниченной набором линейных и/или нелинейных равенств и/или неравенств.

Теорию и методы решения задачи оптимизации изучает математическое программирование.

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

Что такое МАТЕМАТИЧЕСКОЕ ПРОГРАММИРОВАНИЕ - определение