- •РАБОЧАЯ ПРОГРАММА
- •СОДЕРЖАНИЕ
- •Тема 1. ОБЩИЕ СВЕДЕНИЯ О МЕТОДАХ ОПТИМИЗАЦИИ
- •1.1. Основные понятия и определения. Постановка задачи
- •Тема 2. МАТЕМАТИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
- •2.2. Определение выпуклости функций
- •2.3. Типы задач математического программирования
- •2.4. Связь между задачей математического программирования
- •Тема 3. ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ
- •3.3. Симплекс-метод решения задач ЛП
- •3.4. Симплекс-таблицы
- •3.5. Метод искусственного базиса
- •3.6. Информационные технологии линейного программирования
- •3.7. Двойственная задача линейного программирования
- •3.8. Двойственный симплекс-метод
- •3.9. Целочисленное линейное программирование
- •3.9.1. Алгоритм Гомори для полностью целочисленной задачи ЛП.
- •3.9.2. Алгоритм Гомори для частично целочисленной задачи.
- •3.9.3. Метод ветвей и границ решения целочисленных задач ЛП.
- •Тема 4. ЭКСТРЕМАЛЬНЫЕ ЗАДАЧИ БЕЗ ОГРАНИЧЕНИЙ
- •4.1. Одномерная минимизация унимодальных функций
- •4.1.1. Метод Фибоначчи.
- •4.1.2 Метод золотого сечения.
- •4.1.3. Методы с использованием производных.
- •4.1.4. Методы полиномиальной аппроксимации.
- •4.2.2. Градиентные методы. Метод наискорейшего спуска.
- •4.2.4. Метод Дэвидона-Флетчера-Пауэла (ДФП) (метод переменной мет-
- •4.2.6. Обобщенный градиентный алгоритм.
- •4.2.7. Метод Ньютона.
- •4.2.9. Установка метода оптимизации в пакете MATLAB.
- •Тема 5. ЭКСТРЕМАЛЬНЫЕ НЕЛИНЕЙНЫЕ ЗАДАЧИ
- •5.1. Метод неопределенных множителей Лагранжа
- •5.2. Теорема Куна-Таккера
- •5.3. Квадратичное программирование
- •5.4. Метод допустимых направлений Зойтендейка
- •6.1. Метод линейных комбинаций
- •6.2. Метод отсекающих плоскостей Кэлли
- •6.3. Сепарабельное программирование
- •ТЕМА 7. МЕТОДЫ ОПТИМИЗАЦИИ УПРАВЛЕНИЯ
- •7.1. Дискретное динамическое программирование
- •7.3. Принцип максимума Понтрягина
- •7.3.1. Постановка задачи. Формулировка принципа максимума.
- •7.3.3. Принцип максимума в задачах о максимальном быстродействии.
- •7.4.1. Определение моментов переключения.
- •ЛИТЕРАТУРА
- •Содержание
- •Лабораторная работа № 1
- •Лабораторная работа № 2
- •Лабораторная работа № 3
- •Лабораторная работа № 4
- •ЗАДАНИЯ ПО КУРСОВОЙ РАБОТЕ
- •Задание 1. Линейное программирование
- •Задание 2. Нелинейное программирование
- •Задание 3. Математическое описание линейных систем
|
|
|
|
∂L |
|
|
|
|
|
|
|
|
|
∂L |
|
|
|
|
|
|
≤ 0 |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
≥ 0 |
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
x*,λ* |
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
* |
* |
|
|
|
∂λ j |
|
|
|
|
|||||||||
|
|
|
|
∂xi |
x |
|
|
|
|
||||||||||||||||||
|
|
|
|
|
,λ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
* ∂L |
|
|
|
|
|
(5.6) |
|
|
|
∂L |
|
|
|
|
|
. |
(5.7) |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
, |
* |
|
|
|
|
|
|
|||||||||||
|
|
|
|
x |
|
|
|
|
|
|
|
|
= |
0 |
|
λ j |
|
|
|
|
x*,λ* |
= 0 |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
i ∂xi |
x* |
,λ* |
|
∂λ j |
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xi* ≥ 0,i =1,n |
|
|
λ*j ≥ 0, j =1,m |
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Для точек, |
|
где |
xi > 0 , |
в точке минимума должно выполняться |
условие |
|||||||||||||||||||
|
∂L |
|
|
|
= 0, а на границе области, где xi = 0 , отклонения от оптимальной точки |
||||||||||||||||||||||
|
|
|
|
||||||||||||||||||||||||
|
∂xi |
x*,λ* |
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
возможны только в сторону увеличения x |
, при этом |
|
|
∂L |
|
|
|
|
> 0. |
|
|||||||||||||||||
|
|
∂x |
x*,λ* |
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
||
|
|
|
Аналогично по переменной λ для внутренних точек (λ > 0) выполняется ра- |
венство нулю производной, а для граничных точек (λ = 0) первая производная для
случая максимума должна быть неположительной, т.е. |
∂L |
|
< 0 . |
|
∂λ j |
x*,λ* |
|||
|
|
Условия (5.6) и (5.7) эквивалентны (5.5), т.е. являются необходимыми и достаточными для оптимальности x* в случае выпуклости F(x) и всех ограничений
задачи. Если имеется в виду седловая точка с максимумом по x и минимумом по λ, то знаки неравенств в первых строчках систем (5.6) и (5.7) изменяются на противоположные.
5.3. Квадратичное программирование
Задача МП, в которой функция цели квадратична, а все ограничения линей-
ны, носит название задачи квадратичного программирования.
В общем случае функция цели задачи квадратичного программирования (КП) может быть представлена следующим образом:
|
|
|
|
|
n |
n |
|
|
|
|
|
|
|
|
|
F(x) = CТx + xТDx = ∑ci xi + |
∑xi dik xk , |
(5.8) |
|||||
|
|
|
|
|
i =1 |
i,k =1 |
|
|
|
||
где xТ =[x , x |
2 |
,..., x |
n |
] – вектор переменных; |
CТ =[c , c |
2 |
,..., c |
n |
] – постоянный век- |
||
1 |
|
|
|
1 |
|
|
|
тор; D =[dik ] – постоянная симметричная матрица размерности n×n.
84
Симметричность этой матрицы необходима для квадратичности функции цели, чтобы члены xl dlm xm и xmdml xl равнялись друг другу и объединялись в один
2xl dlm xm . Линейные ограничения задачи КП имеют такой же вид, как и в задаче ЛП Ax ≤ B, x ≥ 0, где А – постоянная матрица размерности m×n, B – m-мерный
постоянный вектор.
Задача КП, записанная в сжатой форме, имеет следующий вид
min{F(x) = CТx + xТDx | Ax ≤ B, x ≥ 0}. |
(5.9) |
Одним из условий применения теоремы Куна-Таккера является требование к выпуклости функции F(x) и всех ограничений. Ограничения задачи КП линейны и, следовательно, выпуклы. Для того, чтобы функция (5.8) была выпуклой, необ-
ходимо, чтобы матрица D была положительно полуопределенной, т.е. |
xТDx ≥ 0, |
|||||||||
для всех x. |
|
|
|
|
|
|
|
|
|
|
Функция Лагранжа для задачи (5.9) имеет вид: |
|
|
||||||||
L(x,λ) = CT x + xT Dx + λT g(x) =CT x + xT Dx + λT (Ax − B). |
|
|
||||||||
Применим условия теоремы Куна-Таккера к рассматриваемой задаче. Найдем |
||||||||||
частные производные |
|
|
|
|
|
|
|
|
|
|
|
|
∂L |
= C + 2Dx + ATλ ≥ 0, |
∂L |
= Ax − B ≤ 0. |
|
|
|||
|
|
|
|
|
|
|
||||
|
|
∂x |
|
|
∂λ |
|
|
|||
Введем дополнительные неотрицательные переменные, чтобы привести не- |
||||||||||
равенства к виду равенств: C + 2Dx + ATλ −V = 0 , Ax − B +W = 0. |
|
|
||||||||
Очевидно, что |
∂L |
=V , |
∂L |
= −W , следовательно, выражения X |
∂L = 0 |
и |
||||
|
|
|||||||||
|
∂x |
∂λ |
∂x |
|
λ∂∂Lλ = 0 из (5.6) и (5.7) можно представить как xTV = 0 и λTW = 0.
Таким образом, решение задачи КП сводится к решению следующей системы уравнений:
Ax +W = B, |
|
|
|
|
|
2Dx + ATλ −V = −C, |
(5.10) |
|
T |
T |
|
x V = 0, λ W = 0, |
|
|
|
λ ≥ 0, v ≥ 0, w |
≥ 0. |
x ≥ 0, |
Вектор x*, удовлетворяющий системе уравнений (5.10), является оптимальным решением задачи КП. Существуют различные специальные методы опреде-
ления x* . Рассмотрим один из них, позволяющий свести решение задачи КП к за-
85
даче ЛП.
Необходимые и достаточные условия (5.10) для решения задачи (5.9) можно
трактовать следующим образом: найти значения |
x*, удовлетворяющие системе |
||
линейных уравнений |
|
|
|
Ax +W = B, |
|
(5.11) |
|
|
|
|
|
2Dx + ATλ −V = −C |
|
||
при наличии нелинейных ограничений |
|
|
|
xTV = 0 и |
λTW = 0, |
(5.12) |
|
а также ограничений на знак переменных |
|
|
|
x ≥ 0, v ≥ 0, |
λ ≥ 0, |
w ≥ 0 . |
(5.13) |
Решение системы (5.11) при ограничениях (5.13) может быть найдено при помощи симплекс-метода. Задача, следовательно, состоит в том, чтобы среди допустимых базисных решений этой системы найти такое, которое удовлетворяет условию (5.12).
Сохранение условия (5.12) на протяжении всего процесса вычислений обеспечивается выполнением следующего дополнительного правила:
−при переходе к очередному базисному решению переменная wj не должна включаться в базис, если там уже присутствует λ j ; переменная λ j не должна включаться в базис, если там уже присутствует wj ;
−при переходе к очередному базисному решению переменная vi не должна включаться в базис, если там уже присутствует xi ; переменная xi не должна включаться в базис, если там уже присутствует vi .
Таким образом, дополнительное правило запрещает одновременное присутствие переменных xi и vi с одинаковым индексом i и переменных λ j и w j с оди-
наковым индексом j в числе переменных отличных от нуля.
Допустимое базисное решение, удовлетворяющее нелинейным ограничениям
(5.12), будет являться оптимальным решением задачи (5.10). |
|
|
|
|
|
|
||||||||
Пример |
5.1. |
|
Найти |
|
максимальное |
значение |
|
функции |
||||||
F (x) = −2x2 |
+18x |
− 2x x |
2 |
− x2 |
+12x |
2 |
при ограничениях |
2x + x |
2 |
≥ 2; |
x |
+ x |
2 |
≤ 4; |
1 |
1 |
1 |
2 |
|
|
1 |
|
1 |
|
|
x1,2 ≥ 0, используя условия теоремы Куна-Таккера. 1-й шаг. Составляется функция Лагранжа:
86
L(x,λ) = F(x) + λT g(x) = F(x) + ∑λ j g j (x) .
j
Здесь g j (x) – левые части ограничений, приведенных к нулевой правой части; λ j – неопределенные множители Лагранжа:
g1(x) = −2 + 2x1 + x2 ≥ 0 ; g2 (x) = 4 − x1 − x2 ≥ 0 .
Точка экстремума является седловой точкой с максимумом по x и миниму-
мом по λ, т.е. |
∂L |
≥ 0, |
( j = |
|
) . А так как |
|
∂L |
= q j (x) , то ограничения приводят- |
||||||||||||
1,m |
||||||||||||||||||||
|
∂λ j |
|
|
|
|
|
|
|
|
∂λ j |
|
|
|
|
|
|
|
|
||
ся к виду g j (x) ≥ 0 и записывается функция L(x,λ) |
|
|
|
|
|
|
|
|||||||||||||
L(x,λ) = −2x2 +18x − 2x x |
2 |
− x2 |
+12x |
2 |
+ λ |
1 |
(−2 + 2x + x |
2 |
) + λ |
2 |
(4 |
− x − x |
2 |
) . |
||||||
1 |
|
1 |
1 |
2 |
|
|
|
1 |
|
|
1 |
|
2-й шаг. Условия теоремы Куна-Таккера записываются следующим образом:
|
∂L |
|
|
x*,λ* ≤ 0, |
||||
|
||||||||
|
|
|
|
|
||||
∂x |
|
|
|
|||||
|
|
|
|
|||||
|
i |
|
|
|||||
|
|
∂L |
|
|
||||
|
|
|
||||||
xi* |
|
|
x*,λ* = 0, |
|||||
∂x |
||||||||
|
|
|
||||||
|
|
i |
|
|
||||
|
x* ≥ |
0,i =1,n. |
||||||
|
i |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
∂L |
|
x* ,λ* ≥ 0, |
||||||
|
|
|||||||||
|
|
|
|
|
|
|
||||
|
∂λ |
j |
||||||||
|
|
|
||||||||
|
* ∂L |
|
|
|||||||
|
||||||||||
λ j |
|
|
|
|
|
x* ,λ* = 0, |
||||
∂λ |
|
|
||||||||
|
|
|
|
|
|
|
j |
|||
|
|
x* |
≥ 0, j =1, n. |
|||||||
|
|
|
j |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Частные производные функции Лагранжа определяют ограничения задачи в соответствии с выражениями:
∂L |
= −4x +18 −2x |
2 |
+ 2λ |
1 |
−λ |
2 |
≤ 0; |
||||||||||||
|
|
||||||||||||||||||
1 |
|
|
|
|
|
|
|
|
|
|
|||||||||
∂x1 |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
∂L |
= −2x −2x |
2 |
+12 +λ |
1 |
−λ |
2 |
≤ 0 ; |
|||||||||||
|
|
||||||||||||||||||
1 |
|
|
|
|
|
|
|
|
|||||||||||
|
∂x2 |
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
∂L |
= −2 + 2x + x |
2 |
|
≥ 0 ; |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
∂λ1 |
|
1 |
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
∂L |
= 4 − x − x |
2 |
≥ 0 . |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
∂λ2 |
|
1 |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3-й шаг. Ограничения приводятся к виду равенств введением дополнитель-
87
ных неотрицательных переменных v1, v2 и w1, w2 . Одновременно свободные члены переносятся в правую часть, тогда:
− 4x1 +18 − 2x2 + 2λ1 − λ2 + v1 = −18 , − 2x1 − 2x2 +12 + λ1 − λ2 + v2 = −12 , 2x1 + x2 − w1 = 2 , − x1 − x2 − w2 = −4 .
Получена система из четырех линейных алгебраических уравнений, содержащая 8 неизвестных.
4-й шаг. Находится решение системы с помощью симплекс-процедуры. На первом шаге в базис включаются все введенные дополнительные переменные, тогда первая симплекс-таблица соответствует табл. 5.1. Строка для функции цели отсутствует. Процедура решения иллюстрируется симплекс-таблицами 5.1 – 5.4.
Т а б л и ц а 5.1
|
Сво- |
|
|
|
|
|
Небазисные |
|
|
|
|
|
|
||||||||||||
БП |
бодные |
|
|
|
|
|
переменные |
|
|
|
|
|
|
||||||||||||
|
члены |
x1 |
|
x2 |
|
|
|
λ1 |
λ2 |
|
|||||||||||||||
v1 |
-18 |
-4 |
|
|
-2 |
|
|
2 |
|
|
-1 |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
v2 |
-12 |
-2 |
|
|
-2 |
|
|
1 |
|
|
-1 |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
w1 |
-2 |
-2 |
|
|
-1 |
|
|
0 |
|
|
0 |
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
w2 |
4 |
1 |
|
|
1 |
|
|
|
0 |
|
|
0 |
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Т а б л и ц а 5.3 |
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Сво- |
|
|
|
|
|
Небазисные |
|
|
|
|
|
|
||||||||||||
БП |
бодные |
|
|
|
|
|
переменные |
|
|
|
|
|
|
||||||||||||
|
члены |
v1 |
v2 |
|
|
λ1 |
|
λ2 |
|
||||||||||||||||
x1 |
3 |
− |
1 |
|
|
|
1 |
|
|
|
|
− |
1 |
|
|
0 |
|
|
|||||||
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
2 |
|
|
|
|
|
2 |
|
|
|
|
|||||||||||||
x2 |
3 |
− |
1 |
|
|
− |
1 |
|
|
0 |
|
|
|
1 |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|||||||||||||
|
|
2 |
|
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
w1 |
7 |
− |
1 |
|
0 |
|
|
-1 |
|
|
|
1 |
|
|
|
||||||||||
|
|
|
|
|
|
2 |
|
|
|
||||||||||||||||
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
w2 |
-2 |
0 |
|
|
|
1 |
|
|
|
|
1 |
|
|
|
− |
1 |
|
|
|||||||
|
|
2 |
|
|
|
2 |
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Т а б л и ц а 5.2 |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
Небазисные |
|
|
|
|
|
|||||||||||||
|
|
Сво- |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
БП |
бодные |
|
|
|
|
|
|
|
переменные |
|
|
|
|
|
|||||||||||||
|
|
члены |
x1 |
v2 |
|
λ1 |
λ2 |
|||||||||||||||||||||
|
v1 |
-6 |
-2 |
|
|
-1 |
|
1 |
|
|
|
0 |
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x2 |
6 |
1 |
|
|
− |
1 |
|
− |
1 |
|
|
|
|
1 |
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
2 |
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
2 |
|
2 |
|
|
|
|
|
|||||||||||
|
w1 |
4 |
-1 |
|
|
− |
1 |
|
− |
1 |
|
|
|
1 |
|
|
||||||||||||
|
|
|
|
2 |
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
2 |
|
2 |
|
|
|
|
|
|||||||||||
|
w2 |
-2 |
0 |
|
|
|
1 |
|
|
|
1 |
|
|
|
|
|
− |
1 |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
2 |
|
|
2 |
|
|
|
|
|
2 |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Т а б л и ц а 5.4 |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
Небазисные |
|
|
|
|
|
|||||||||||||
|
|
Сво- |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
БП |
бодные |
|
|
|
|
|
|
|
переменные |
|
|
|
|
|
|||||||||||||
|
|
члены |
v1 |
v2 |
|
λ1 |
w2 |
|||||||||||||||||||||
|
x1 |
3 |
− |
1 |
|
|
|
1 |
|
|
− |
1 |
|
|
0 |
|
||||||||||||
|
|
|
|
|
|
2 |
|
|
|
|
|
|
||||||||||||||||
|
|
|
2 |
|
|
|
|
2 |
|
|
|
|
|
|
|
|
||||||||||||
|
x2 |
1 |
1 |
|
|
|
1 |
|
|
1 |
|
|
|
|
|
1 |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
2 |
|
|
|
4 |
|
|
2 |
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
w1 |
5 |
− |
1 |
|
|
1 |
|
|
− |
1 |
|
1 |
|
||||||||||||||
|
|
|
2 |
|
|
|
|
|||||||||||||||||||||
|
|
|
2 |
|
|
|
|
2 |
|
|
|
|
|
|
|
|
||||||||||||
|
λ2 |
4 |
0 |
|
|
-1 |
|
-1 |
|
|
|
-2 |
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88