- •Работает
- •1.1. История создания эвм.
- •1.3. Размещение данных и программ в памяти пэвм.
- •1.4.Файловая система хранения информации
- •1.5.Операционная система.
- •Лекция 2. Как составляются и выполняются программы в системе delphi
- •2.1. Понятие алгоритма и способы его записи
- •2.2. Общая характеристика языка Паскаль
- •2.3. Как составляется программа в системе Delphi
- •2.4. Наша первая программа реализует линейный алгоритм
- •3.1. Данные и их типы.
- •3.2. Операции над переменными основных скалярных типов
- •Алгоритмов
- •4.1. Понятие разветвляющегося алгоритма
- •4.2. Оператор условия if
- •4.3. Оператор выбора Case
- •4.4. Некоторые возможности, предоставляемые Delphi для организации разветвлений
- •Лекция 5. Составление и програмирование циклических алгоритмов
- •5.1. Понятие цикла
- •5.2. Оператор Repeat...Until
- •5.3. Оператор While...Do
- •5.4. Оператор For...Do
- •5.5. Вложенные циклы
- •5.6. Примеры некоторых часто встречающихся циклических алгоритмов Вычисление заданного члена рекуррентной последовательности
- •Вычисления сумм с использованием рекуррентной последовательности
- •6.1. Ошибки на этапе компиляции
- •6.4. Защищенные блоки
- •6.5. Некоторые стандартные типы исключительных ситуаций
- •6.6. Инициирование собственных исключительных ситуаций
- •6.7. Примеры фрагментов программ
- •Лекция 7. Составление программ с использованием массивов
- •7.1. Понятие массива
- •7.2. Некоторые возможности ввода-вывода в Delphi
- •7.3. Примеры часто встречающихся алгоритмов работы с массивами Сумма n элементов одномерного массива:
- •Произведение диагональных элементов квадратной матрицы:
- •Нахождение максимального элемента одномерного массива:
- •8.1. Статическое и динамическое распределение оперативной памяти
- •8.2. Понятие указателя
- •8.3. Наложение переменных
- •8.4. Динамическое распределение памяти
- •8.5. Организация динамических массивов
- •9.1. Понятие подпрограммы
- •9.2. Описание подпрограмм
- •9.3. Передача данных между подпрограммой и вызывающей ее программой
- •9.4. Оформление подпрограмм в библиотечный модуль
- •9.5. Примеры подпрограмм, оформленных в отдельные библиотечные модули
- •Пример программы, использующей модуль RabMas:
- •Множества
- •10.1. Понятие множества
- •10.2. Операции над множествами
- •10.3. Примеры работы с множествами
- •Interface
- •11.1. Зачем нужны строки
- •11.2. Описание переменных строкового типа «Короткие строки»
- •11.3. Основные операции над переменными строкового типа
- •11.4. Некоторые процедуры и функции обработки строк
- •11.5. Примеры алгоритмов обработки строк
- •Лекция 12. Программирование с использованием записей
- •12.1. Понятие записи
- •12.2. Операции над записями
- •12.3. Использование записей для работы с комплексными числами
- •13.1. Понятие файла
- •13.2. Операции над файлами
- •13.2.1. Типизированные файлы
- •13.2.2. Текстовые файлы
- •13.3. Подпрограммы работы с файлами
- •13.4. Компоненты tOpenDialog и tSaveDialog
- •Лекция 14. Программирование с отображением графической информации
- •14.1. Как рисуются изображения
- •14.2. Построение графиков с помощью компонента tChart
- •Лекция 15. Программирование с использованием рекурсии
- •15.1. Понятие рекурсии
- •15.2. Примеры рекурсивных вычислений
- •16.1. Организация работы с базами данных
- •16.2. Поиск в массиве записей
- •16.3. Сортировка массивов
- •16.3.1. Метод пузырька
- •16.3.2. Метод прямого выбора
- •16.3.3. Метод Шелла
- •16.3.4. Метод Хоара (Hoare)
- •17.1. Работа со списками
- •17.2. Добавление нового элемента в список на заданную позицию
- •17.3. Удаления элемента с заданным номером
- •17.4. Пример программы
- •Лекция 18. Связанные списки на основе рекурсивных данных
- •18.1. Что такое стек и очередь
- •18.2. Понятие рекурсивных данных и однонаправленные списки
- •18.3. Процедуры для работы со стеками
- •18.4. Процедуры для работы с односвязными очередями
- •18.5. Работа с двухсвязными очередями
- •18.6. Процедуры для работы с двусвязными очередями
- •19.1. Основные понятия и определения
- •19.2. Прямые методы решения слау
- •19.3. Итерационные методы решения слау
- •20.1. Зачем нужна аппроксимация функций?
- •20.3. Какие бывают многочлены и способы интерполяции?
- •20.4. Что такое среднеквадратичная аппроксимация?
- •20.5. Метод наименьших квадратов (мнк)
- •21.1. Формулы численного дифференцирования
- •21.2. Формулы численного интегрирования
- •22.1. Как решаются нелинейные уравнения
- •22.2. Итерационные методы уточнения корней
- •22.2.2. Метод Ньютона
- •23.1. Постановка задач оптимизации, их классификация
- •23.2. Методы нахождения минимума функции одной переменной
- •24.1. Задачи для обыкновенных дифференциальных уравнений
- •24.2. Основные положения метода сеток для решения задачи Коши
- •24.3. Многошаговые схемы Адамса
- •Литература
23.1. Постановка задач оптимизации, их классификация
Трудно назвать область деятельности, где не возникали бы задачи оптимизационного характера. Это, например, задачи определения наиболее эффективного режима работы различных систем, задачи организации производства, дающего наибольшую возможную прибыль при заданных ограниченных ресурсах или ограничении на количество товара, которое может поглотить рынок и т.д.
Постановка каждой задачи оптимизации включает в себя моделирование рассматриваемой ситуации с целью получения математической функции, которую необходимо минимизировать, а также определения ограничений, если таковые существуют и выбора подходящей процедуры для осуществления минимизации функции.
Задача оптимизации заключается в выборе среди элементов множества Х (множества допустимых решений) такого решения, которое было бы с определенной точки зрения наиболее предпочтительным. В дальнейшем понятие решения отождествляется с вектором (точкой) n-мерного евклидова пространства Rn. В соответствии с этим допустимое множество Х представляет собой некоторое подмножество пространства Rn, т. е. X a Rn, а целевая функция (а также критерий качества или критерий оптимальности) f(x) -это функция n переменных x1,x2,...,xn. Сравнение решений по предпочтительности осуществляется с помощью целевой функции f(x), которую формулируют таким образом, чтобы наиболее предпочтительному решению x(0) соответствовал минимум целевой функции.
f (x(0)) = min f (x) x e X
При этом решение x(0) называют оптимальным (точнее говоря, минимальным) , а значение f (x(0)) - оптимумом ( минимумом). Существует два вида минимумов : локальный и глобальный. Говорят, что точка x(0) e X доставляет функции f(x) на множестве Х локальный минимум, если существует
такая окрестность Ue( x(0)) (s> 0) точки x(0), что неравенство f (x(0)) < f (x) справедливо для всех x e X (Г U£ (x(0)). Глобальный минимум функции f(x) доставляет точка x(0) e X, для которой записанное выше неравенство выполняется при всех x e X. Если множество допустимых значений X = Rn, то говорят о задаче минимизации без ограничений. В этом случае нужно найти такую точку x(0) , чтобы неравенство f(x(0))< f(x) выполнялось для всех точек пространства Rn без ограничения. Задачу минимизации без ограничений называют также задачей безусловной минимизации. При этом для характеристики точки минимума и самого минимума добавляют прилагательное «безусловный». Если X ф Rn, то имеет место задача минимизации с ограничениями. В этом случае также говорят о задаче условной минимизации, о точках условного минимума и об условном минимуме. Если допустимое множество Х задано в виде
X = {x е Rn | gj (x) < °, j = 1,2,...,k; g}(x) = °, j = k +1,...,m} (23.2)
где все функции gj(x) определены на Rn , то говорят о задаче
математического программирования. Среди задач этого класса различают задачи с ограничениями типа неравенств - когда множество Х имеет вид (23.2) и m = k; задачи с ограничениями типа равенств - когда в (23.2) неравенства отсутствуют (k = 0), и задачи со смешанными ограничениями -когда в задании множества Х встречаются как равенства, так и неравенства.
Следует отметить, что ограничение типа равенства g ( x ) = ° всегда можно заменить двумя ограничениями типа неравенства g(x) = 0 g(x) < 0, g(x) > 0. С другой стороны, ограничение-неравенство всегда можно заменить эквивалентным ему ограничением-равенством, введя дополнительную переменную
Xn+1 g(X) < 0 "> g(X) + x2+1 = 0.