Опубликован: 17.02.2011 | Доступ: свободный | Студентов: 367 / 35 | Оценка: 5.00 / 5.00 | Длительность: 25:24:00
ISBN: 978-5-9963-0268-0
Специальности: Математик
Лекция 20:

Диагностическая задача в интервальной постановке

< Лекция 19 || Лекция 20: 123 || Лекция 21 >

Пусть p = 37 и необходимо найти все решения системы

\begin {cases}
3x_1+5x_2=[30,36],\\
5x_1+2x_2=[20,30]
\end {cases}

Вначале рассмотрим систему вида (20.4):

\begin {cases}
3x_1+5x_2=30,\\
5x_1+2x_2=20
\end {cases}

Решение этой системы есть пара (\xi_1, \xi_2)=(6,32).

Теперь рассмотрим две системы вида (20.5):

\begin {cases}
3 \delta_1^{(1)}+5 \delta_1^{(2)}=1,\\
5\delta_1^{(1)}+2\delta_2^{(1)}=0,
\end {cases}
\begin {cases}
3\delta_1^{(2)}+5\delta_2^{(2)}=0,\\
5\delta_1^{(2)}+2\delta_2^{(2)}=1
\end {cases}

Их решениями являются \delta ^{(1)}=(\delta_1^{(1)}, \delta_2^{(1)})=(33, 10), \delta^{(2)}=(\delta_1^{(2)}, \delta_2^{(2)})=(10,31).

Тогда все множество решений системы таково:

x_1=\xi_1+i\delta_1^{(1)}+j\delta_1^{(2)}, x_2=\xi_2+i\delta_2^{(1)}+j\delta_2^{(2)},

где

Таким образом, получаем:

x_1=6+33i+10j, где 0 \le i \le 6, 0 \le j \le 10

Все эти решения представлены в следующей таблице:

b_1\b_2 20 21 22 23 24 25 26 27 28 29 30
30 (6, 32 (16, 26) (26, 20) (36, 14) (9, 8) (19, 2) (29, 33) (2, 27) (12, 21) (22, 15) (32, 9)
31 (2, 5) (12, 36) (22, 30) (32, 24) (5, 18) (15, 12) (25, 6) (35, 0) (8, 31) (18, 25) (28, 19)
32 (35, 15) (8, 9) (18, 3) (28, 34) (1, 28) (11, 22) (21, 16) (31, 10) (4, 4) (14, 35) (24, 29)
33 (31, 25) (4, 19) (14, 13) (24, 7) (34, 1) (7, 32) (17, 26) (27, 20) (0, 14) (10, 8) (20, 2)
34 (27, 35) (0, 29) (10, 23) (20, 17) (30, 11) (3, 5) (13, 36) (23, 30) (33, 24) (6, 18) (16, 12)
35 (23, 8) (33, 2) (6, 33) (16, 27) (26, 21) (36, 15) (9, 9) (19, 3) (29, 34) (2, 28) (12, 22)
36 (19, 18) (29, 12) (2, 6) (12, 0) (22, 31) (32, 25) (5, 19) (15, 13) (25, 7) (35, 1) (8, 32)

Таким образом, в рассмотренном примере предлагаемый метод отыскания всех решений СЛАУ потребовал решения 3 систем линейных уравнений вместо 77 при использовании тривиального метода.

Теперь проиллюстрируем применение метода решения СЛАУ на конкретной диагностической задаче.

Рассмотрим ЛА над полем GF(7), заданный с помощью характеристических матриц, которые приведены выше в этом разделе. Пусть множество допустимых начальных состояний содержит 4 состояния:

\{[203]', [001]', [456]', [105]'\}

Диагностическая последовательность для заданного множества допустимых начальных состояний, построенная с использованием описанного выше диагностического дерева, такова: u(0)=[0], u(1)=[0], u(2)=[0]. Предположим, что измерения выходной реакции ЛА на эту диагностическую последовательность дали следующие результаты:

y(0)=
\left [
\begin {matrix}
[5,6]\\
[2,4]
\end {matrix}
\right ],
y(1)=
\left [
\begin {matrix}
[0,2]\\
[0,1]
\end {matrix}
\right ],
y(2)=
\left [
\begin {matrix}
[0,1]\\
[3,5]
\end {matrix}
\right ]

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

Для решения интервальной диагностической задачи необходимо найти все решения системы уравнений вида (20.2).

\left [
\begin {matrix}
5&0&3\\
1&4&6\\
5&5&2\\
5&2&6\\
6&1&3\\
3&2&3
\end {matrix}
\right ]
\left [
\begin {matrix}
s_1(0)\\
s_2(0)\\
s_3(0)
\end {matrix}
\right ]=
\left [
\begin {matrix}
[5,6]\\
[2,4]\\
[0,2]\\
[0,1]\\
[0,1]\\
[3,5]
\end {matrix}
\right ] ( 20.7)

Заметим, что для нахождения решения этой интервальной системы уравнений тривиальным способом необходимо решить 216 систем.

Для приведенной системы количество неизвестных равно 3, а число уравнений равно 6. Приводя матрицу к квадратной, получаем следующую систему:

\left [
\begin {matrix}
5&0&3\\
1&4&6\\
5&5&2
\end {matrix}
\right ]
\left [
\begin {matrix}
s_1(0)\\
s_2(0)\\
s_3(0)
\end {matrix}
\right ]=
\left [
\begin {matrix}
[5,6]\\
[2,4]\\
[0,2]
\end {matrix}
\right ] ( 20.8)

Обозначим матрицу полученной системы (20.8) через F. В соответствии с описанным выше методом необходимо решить следующие 4 системы линейных уравнений:

F[\xi_1 \xi_2 \xi_3]'=[0 0 0]',\\
f[\delta_1^{(1)} \delta_2^{(1)} \delta_3^{(1)}]'=[100]',\\
F[\delta_1^{(2)} \delta_2^{(2)} \delta_3^{(2)}]'=[010]',\\
F[\delta_1^{(3)} \delta_2^{(3)} \delta_3^{(3)}]'=[001]'

Решая их, получаем следующие результаты:

(\xi_1, \xi_2, \xi_3)=(0,0,0)\\
(\delta_1^{(1)}, \delta_2^{(1)}, \delta_3^{(1)})=(1,0,1)\\
(\delta_1^{(2)}, \delta_2^{(2)}, \delta_3^{(3)})=(6,5,4),\\
(\delta_1{(3)}, \delta_2^{(3)}, \delta_3^{(3)})=(6,5,1)

Теперь в соответствии с формулой (20.6) выпишем решение системы (20.7) в параметрическом виде:

s_1(0)=\xi_1+i_1 \delta_1^{(1)}+i_2 \delta_1^{(2)}+i_3\delta_1^{(3)},\\
s_2(0)=\xi_2+i_1\delta_2^{(1)}+i_2\delta_2^{(2)}+i_3\delta_2^{(3)},\\
s_3(0)=\xi_3+i_1\delta_3^{(1)}+i_2\delta_3^{(2)}+i_3\delta_3^{(3)}

где 5 \le i_1 \le 6, 2 \le i_2 \le 4, 0 \le i_3 \le 2

Таким образом, получаем 18 решений системы уравнений (20.8), представленных в формате s(0)=[s_1(0), s_2(0), s_3(0)]':

[336]', [120]', [611]', [213]', [004]', [565]', [160]', [651]', [442]',[430]', [221]', [012]', [314]', [105]', [666]', [261]', [052]', [543].

Полученные решения интервальной системы уравнений (20.8) являются "кандидатами" в решение интервальной системы уравнений (20.7). Подставляя их в систему (20.7), можно убедиться, что только одно из этих 18 решений, s(0)=[105]', удовлетворяет всем уравнениям (20.7). Поскольку это решение принадлежит множеству допустимых начальных состояний рассматриваемого ЛА, то оно и есть искомое решение интервальной диагностической задачи.

Генетический алгоритм для решения интервальной диагностической задачи

В предыдущем разделе было указано, что мощность множества всех решений интервальной системы уравнений с квадратной матрицей равна величине z=\Pi_{i=1}^{n}w(B_i). Из формулы видно, что эта мощность быстро растет с ростом ширины интервалов в правой части системы (20.3). Даже при сравнительно небольших значениях упомянутых параметров величина z может быть столь велика, что множество всех решений системы становится практически необозримым. В [24] отмечается, что это свойство является атрибутом труднорешаемой задачи, причем не менее важным, чем экспоненциальное время ее решения. По этой причине, если мощность множества всех "кандидатов" в решение системы очень велика, возникает проблема нахождения среди них единственного решения интервальной диагностической задачи. В данном разделе рассматривается еще один подход к решению поставленной интервальной диагностической задачи, который можно рассматривать как "быстрый" метод ее решения.

Простейшим способом поиска какого-либо решения рассматриваемой задачи является перебор всех возможных допустимых начальных состояний ЛА и проверка того, удовлетворяют ли эти состояния системе линейных уравнений (20.3). Поскольку для ЛА, заданного над полем GF(p) , число таких всевозможных начальных состояний p^n, где n - размерность ЛА, то уже при n = 30 и p=2 число состояний, подлежащих проверке, превышает 10^9. Учитывая, что проверка допустимости состояния ЛА является нетривиальной (вычисление матричных произведений), можно констатировать, что проверка всех возможных состояний неосуществима за приемлемое время.

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

Заметим, что используемые далее, но не определенные здесь понятия, связанные с генетическими алгоритмами, заимствованы из [5], [32].

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

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

В данной работе используется простой генетический алгоритм (ПГА), который был впервые описан Гольдбергом на основе работ Холланда. Изложение сути этого алгоритма приведено в [32]. ПГА использует операторы отбора (селекции), скрещивания (кроссинговера) и мутации. Механизм ПГА несложен, и ниже кратко описаны его этапы.

  1. Генерация случайной популяции, состоящей из N хромосом, длина каждой из которых равна l (каждая хромосома - кандидат на роль решения задачи). Эта начальная популяция образует поколение с номером 0.
  2. Вычисление функции приспособленности для каждой хромосомы в популяции.
  3. Выполнение следующих шагов, пока не будет получено N потомков:
    • Выбор пары родительских хромосом из текущей популяции, при этом вероятность выбора больше у тех хромосом, чья приспособленность выше. Выбор делается с возвращением, т. е. одна и та же хромосома может быть выбрана в качестве родителя более одного раза.
    • С вероятностью p_c (вероятность кроссинговера) производится кроссинговер пары в произвольно выбранной точке (одноточечный кроссинговер), которая выбирается с равномерно распределенной вероятностью, и формируются два потомка. Если кроссинговер не производится, то формируются два потомка, которые являются точными копиями родителей.
    • Производится мутация двух потомков в каждом гене с вероятностью p_m (вероятность мутации), и получившиеся хромосомы помещаются в новую популяцию.
    • Если N нечетное и количество потомков равно N+1, то один произвольно выбранный потомок удаляется из новой популяции.
  4. Текущая популяция замещается новой популяцией с увеличением номера поколения.
  5. Если номер текущего поколения меньше заданного максимального числа поколений, то переход к шагу 2, иначе окончание алгоритма.

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

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

Каждому допустимому решению s сопоставим битовую строку, представляющую собой хромосому. Сопоставление осуществим следующим образом: вектору s=[s_1, s_2, \dots, s_n]' ' поставим в соответствие число в двоичной системе, которое равно числу s_1, s_2, \dots, s_n в системе счисления с основанием p. Такая схема сопоставления является взаимно-однозначной, что позволяет проводить как кодирование, так и декодирование хромосомы.

Заметим, что при p=2 используются системы счисления по основанию 2 и перевод производить не требуется. Если p>2, то число бит, необходимых для представления решения, отличается от n в сторону увеличения.

При таком способе кодирования длина хромосомы l определяется следующим образом:

l=
\begin {cases}
n*k, если\ p=2^k,\\
[\log_2 p^n}+1], если\ p \ne 2^k
\end {cases}

Пример 1.

Пусть p=2, n=4, тогда l = 4. Решению s=[1, 0, 1, 1]' соответствует хромосома 1011.

Пусть p=3, n=4, тогда l = 7. Решению s=[1, 0, 2, 1]' соответствует хромосома 0100010.

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

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

Пусть s=[s_1, s_2, \dots, s_N]' - решение, которое необходимо оценить. Так как это решение представляет собой предполагаемое начальное состояние, то получаем s(0)=s. Осуществляя подстановку s(t) в систему уравнений (1.1)-(1.2) при t=\overline {0, t_{max}} где t_{max}+1 равно длине диагностической последовательности, получим набор из t_{max}+1 выходных векторов размерности m: y_c(0), y_c (1), \dots, y_c(t_{max}).

Целевую функцию определим следующим образом:

Q(s)=\sum_{t=0}^{t_{max}}Q_t(y_c(t)) ( 20.9)

где

Q_t(y_c(t))=
\begin {cases}
0, если\ y_c(t) \in y(t),\\
\sum_{t=1}^n min (|\bar y(t) - y_c(t)|, | \underline {y_i}(t)-y_c(t)|), если\  y_c (t) \notin y(t)
\end {cases} ( 20.10)
< Лекция 19 || Лекция 20: 123 || Лекция 21 >