Метод линейного программирования

Построение линейных разделяющих функций с применением методов линейного программирования

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

Определим распознаваемый объект как точку в m-мерном евклидовом пространстве признаков. Для множества объектов (j = 1,2, …) положение соответствующих точек задается вектором Pj = (p1j,p2j,…,pmj), являющимся матрицей-столбцом. Предполагается, что для обучающей последовательности известна принадлежность объектов к одному из классов w1 (jw1) или w2 (j ∈ w2).

Отнесение объекта Pj к одному из классов осуществляется в соответствии с правилом

\left\{\begin{array}{ll}{\Lambda^{\mathrm{T}} \mathbf{P}_{j} \geqslant \theta,} & {j \in \omega_{1}} \\ {\Lambda^{\mathrm{T}} \mathbf{P}_{j}<\theta,} & {j \in \omega_{2}}\end{array}\right.

(1.30) ,

где θ > 0, а вектор Λ = (λ1, λ2,…,λm) представлен в виде матрицы-строки.

Как видно из (1.30), по знаку линейной функции

ΛTPj – θ = λ1p1j + λ2p2j  + … + λmpmj – θ

можно судить о принадлежности объекта к одному из классов.

Геометрически это означает построение разделяющей гиперплоскости ΛTPj – θ = 0. Задачу нахождения элементов вектора Λ, удовлетворяющего системе линейных неравенств (1.30), можно решить с использованием методов ЛП.

Для этого рассмотрим задачу нахождения двух параллельных гиперплоскостей \begin{aligned} \boldsymbol{\Lambda}^{\mathrm{T}} \mathbf{P} = \vec{\lambda}+\theta \end{aligned}  и \begin{aligned} \mathbf{\Lambda}^{\mathrm{T}} \mathbf{P} =-\underline{\lambda}+\theta \end{aligned} , для которых выполняются следующие условия:

\begin{aligned} \boldsymbol{\Lambda}^{\mathrm{T}} \mathbf{P}_{j} & \geqslant \vec{\lambda}+\theta, \quad j \in \omega_{1} \end{aligned} (1.31)

\begin{aligned} \mathbf{\Lambda}^{\mathrm{T}} \mathbf{P}_{j} \leqslant-\underline{\lambda}+\theta, & j \in \omega_{2} \end{aligned} (1.32)

\begin{aligned} \frac{\vec{\lambda}+\underline{\lambda}}{|\boldsymbol{\Lambda}|} \rightarrow \max \end{aligned} (1.33)

Таким образом, ставится задача максимизации расстояния между полупространствами (1.31) и (1.32), содержащими все точки из множеств w1 и w2 соответственно. Если окажется, что искомый максимум (1.33) отрицательный, то очевидно, что множества w1 и w2 неразделимы.

Пример нахождения по критерию (1.33) вектора Λ и параллельных гиперплоскостей Н1 и Н2, задающих области решений в одной из задач распознавания двух классов электрокардиосигналов (w1 и w2), приведен на рис. 1.

Результат построения сети для двух сравниваемых цепочек
Рис. 1. Результат построения сети для двух сравниваемых цепочек T1 и T2

Здесь два класса сигналов заданы в пространстве спектральных признаков p1 и p2. Расстояние между центрами классов обозначено Δ. Результирующее решающее правило (1.30), которое используется в линейном классификаторе, задается гиперплоскостью H.

Если ввести условие нормировки:

|\Lambda|=\sqrt{\lambda_{1}^{2}+\lambda_{2}^{2}+\ldots+\lambda_{m}^{2}}=1

задачу (1.31 )-(1.33) можно записать как нахождение

\max \theta ({\vec{\lambda^{\prime}}+\underline{\lambda'}}) , (1.34)

при условиях

\begin{aligned} \boldsymbol{\Lambda}^{\mathrm{'T}} \mathbf{P}_{j} & \geqslant \vec{\lambda}+1, \quad j \in \omega_{1} \end{aligned}

\begin{aligned} \mathbf{\Lambda}^{\mathrm{'T}} \mathbf{P}_{j} \leqslant-\underline{\lambda}+\theta, & j \in \omega_{2} \end{aligned}

где

\Lambda^{\prime}=\frac{1}{\theta}\Lambda , \quad\vec{\lambda}^{\prime}=\frac{1}{\theta}\vec{\lambda} , \quad\underline{\lambda}^{\prime}=\frac{1}{\theta}\underline{\lambda}      (1.35)

\left|\Lambda^{\prime}\right|=\sqrt{\left(\lambda_{1}^{\prime}\right)^{2}+\left(\lambda_{2}^{\prime}\right)^{2}+\ldots+\left(\lambda_{m}^{\prime}\right)^{2}}=\frac{1}{\theta}       (1.36)

Очевидно, что вместо (1.34) (1.36) можно решать задачу ЛП

\max ({\vec{\lambda^{\prime}}+\underline{\lambda'}})                (1.37)

при тех же условиях

\begin{aligned} \boldsymbol{\Lambda}^{\mathrm{'T}} \mathbf{P}_{j} & \geqslant \vec{\lambda}+1, \quad j \in \omega_{1} \end{aligned}

\begin{aligned} \mathbf{\Lambda}^{\mathrm{'T}} \mathbf{P}_{j} \leqslant-\underline{\lambda}+\theta, & j \in \omega_{2} \end{aligned}

и определить величину θ из (1.36), а искомые коэффициенты — из (1.35). Задачу (1.37) удобно решать, переходя к двойственной задаче линейного программирования2. Для этого рассмотрим следующую общую задачу ЛП. записав ее в виде

max(c1x1 + c2x2 + … + cnxn);

\left\{\begin{array}{l}{a_{11} x_{1}+a_{12} x_{2}+\ldots+a_{1 n} x_{n} \leqslant b_{1}} \\ {a_{21} x_{1}+a_{22} x_{2}+\ldots+a_{2 n} x_{n} \leqslant b_{2}} \\ {\ldots \ldots \ldots \ldots \ldots \ldots \ldots \ldots \ldots \ldots} \\ {a_{m 1} x_{1}+a_{m 2} x_{2}+\ldots+a_{m n} x_{n} \leqslant b_{m}}\end{array}\right.  (1.38)

или в матричной записи:

шах (с, х); Ах ≤ b,

где целевая функция представлена в виде скалярного произведения (с, х) двух векторов х = (x1, x2,….,xn), с = (с1, с2…..сn), а вектор ограничений — в виде матрицы-столбца b = (b1,b2…..bm). Здесь, как и в (1.37), на координаты вектора х не накладывается никаких дополнительных условий.

Двойственной к (1.38) будет задача ЛП от m переменных y1, y2, … ,ym вида

min(b1y1 + b2y2 + … + bmym));

\left\{\begin{array}{l}{a_{11} y_{1}+a_{12} y_{2}+\ldots+a_{m 1}y_{m} = c_{1}} \\ {a_{21} y_{1}+a_{22} y_{2}+\ldots+a_{m 2} y_{m} = c_{2}} \\ {\ldots \ldots \ldots \ldots \ldots \ldots \ldots \ldots \ldots \ldots} \\ {a_{1 n} y_{1}+a_{2 n} y_{2}+\ldots+a_{m n} y_{m} = c_{n}}\end{array}\right. (1.39)

где y_{i} \geqslant 0(i=\overline{1, m}), или в матричной записи:

min(b, у);

АTу = с; у ≥0, где Y = (y1, y2, …,ym).

Как видно в (1.39), переменных столько же, сколько строк в матрице А задачи (1.38). Матрица ограничений в (1.39) транспонированная матрица А. Вектором правой части ограничений в (1.39) служит вектор коэффициентов максимизируемой линейной функции (1.38), при этом знаки неравенств меняются на равенство. Коэффициенты целевой функции в (1.39) задаются вектором правой части ограничений задачи (1.38). При этом символ max меняется на min. На переменные y  i=\overline{1, m} накладывается условие неотрицательности.

В соответствии со второй теоремой двойственности оптимальный план X* = (x1*,x2*, … ,xn*) прямой задачи (1.38) однозначно связан с решением двойственной задачи (1.39) у* = (y1*, y2*, …,ym*) 3. Существующую зависимость можно представить следующим образом: если yi* > 0, то

ai1x1* + ai2x2* + • • • + ainxn* = b            (1.40)

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

Таким образом, если в прямой задаче (1.38) число ограничений m значительно превосходит число переменных n, целесообразно вначале решить двойственную задачу (1.39), а затем перейти к составлению системы уравнений и ее решению относительно неизвестных X* = (x1*,x2*, … ,xn*).

Итак, сформулированную выше задачу отыскания разделяющей гиперплоскости (1.37) можно решить на основе двойственной задачи. Условия ограничения в (1.37) можно привести к виду

-(λ’1p1j +λ’2p2j     + … + λ’mpmj) + \vec{\lambda}^{'} ≤ -1,   jw1           (1.41)

λ’1p1j +λ’2p2j     + … + λ’mpmj + \underline{\lambda}^{'} ≤ 1,   jw2          (1.42)

Здесь неизвестными являются параметры λ’1,λ’2,….λ’m,\vec{\lambda}^{'}, \underline{\lambda}^{'}, оптимальные значения которых входят в уравнения двух параллельных гиперплоскостей. Число ограничений определено количеством объектов, образующих классы w1 и w2. Оно же задает и число неизвестных xj, jw1, jw2 в двойственной задаче.

Следуя правилам построения сопряженных задач (1.38) и (1.39), ее можно представить следующим образом. Найти

\min ( -\sum_{j \in \omega_{1}} x_{j} + \sum_{j \in \omega_{2}} x_{j})

при условиях, записанных в виде системы уравнений-ограничений

\sum_{j \in \omega_{1}}-p_{1 j} x_{j}+\sum_{j \in \omega_{2}}} p_{1 j} x_{j}=0
\sum_{j \in \omega_{1}}-p_{2 j} x_{j}+\sum_{j \in \omega_{2}} p_{2 j} x_{j}=0
\ldots \ldots \ldots \ldots \ldots \ldots \ldots
\sum_{j \in \omega_{1}}-p_{m j} x_{j}+\sum_{j \in \omega_{2}} p_{m j} x_{j}=0
\sum_{j \in \omega_{1}} x_{j}=1
\sum_{j \in \omega_{2}} x_{j}=1

где xj ≥ 0.

В данной задаче имеется лишь m + 2 ограничения, что значительно упрощает ее решение. Обычно число объектов значительно превышает размерность пространства признаков, в котором строится разделяющая гиперплоскость. Если общее число объектов равно я, то число свободных переменных xj будет равно n – (m + 2). Выразив ?и базисных переменных через выбранные свободные переменные, можно перейти к стандартной форме представления системы уравнений-ограничений. Применение симплекс-метода, основанного на табличном алгоритме замены базисных переменных, позволит найти все множество оптимальных значений (xj, jw1, jw2), из которых лишь m + 2 переменных будут иметь ненулевые значения. Если найденный оптимальный план этой задачи представить в виде (x1*,x2*, … ,xm+2* …0,0), то лишь для первых m + 2 переменных будет составлена система уравнений-ограничений прямой задачи следующего вида:

-(λ’1p1j +λ’2p2j     + … + λ’mpmj) + \vec{\lambda}^{'} = -1,   jw1

λ’1p1j +λ’2p2j     + … + λ’mpmj + \underline{\lambda}^{'} = 1,   jw2

Как следует из (1.40). форму равенств приобретают только те неравенства из ограничений (1.41), (1.42), в которых индексы j определяются ненулевыми значениями (x1*,x2*, … ,xm+2*). Решение этой системы уравнений позволяет найти оптимальные значения переменных (λ’1,λ’2,….λ’m,\vec{\lambda}^{'}, \underline{\lambda}^{'})* и определить вид решающего правила (1.30).

Данный подход показывает возможности применения методов ЛП для построения разделяющих гиперплоскостей в различных задачах медицинской диагностики.

Footnotes

  1. Первозванский А. А. Распознавание абстрактных образов как задача линейного программирования // Изв. Академии наук СССР. Сер. «Техническая кибернетика». 1965. № 4. С. 41-44.
  2. Таха X. А. Введение в исследование операций. 6-е изд. / Пер. с англ. — М.: Вильямс, 2001. — 912 с.
  3. Таха X. А. Введение в исследование операций. 6-е изд. / Пер. с англ. — М.: Вильямс, 2001. — 912 с.