Моделирование, тестирование и диагностика цифровых устройств

Оценка эффективности генетических алгоритмов поиска масок

Разбить на страницы
Показывать лекцию целиком

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

Вначале приведем утверждение об оценке вычислительной сложности описанных в предыдущей лекции ПГА.

Введем следующие обозначения. Пусть $$K$$ - число этапов эволюции, реализуемых ГА, $$M$$ - число особей в популяции, $$W$$ - объем памяти (в битах) для хранения одной особи.

Теорема. Пусть для ЦУ с множеством неисправностей $$F$$ получен СПР. Тогда оценка алгоритмической сложности одного запуска генетического алгоритма со структурой хромосомы (29.1) или (29.6) и с использованием любой из фитнес-функций (29.3)-(29.5), (29.7)-(29.10) равна $$O(KM\cdot(W\cdot(|F|+1)+\log{M}))$$, а объем памяти, необходимой для работы генетического алгоритма, равен $$O(2MW)$$.

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

Исходя из вида формул (29.3)-(29.5), (29.7)-(29.10), оценка вычислительной сложности для функций приспособленности сводится к оценке вычислительной сложности величин $$\rho_2$$ и $$\rho_6$$. Согласно [1] вычислительная сложность величины оценивается величиной

$$O(W\cdot(|F|+1)) $$

Для вычисления значения $$\rho_6$$ необходимо также произвести

$$O(W\cdot(|F|+1))$$

сравнений. Сортировка элементов популяции производится за время

$$O(M \log{M})$$

Принимая во внимание тот факт, что в процессе эволюции должно быть найдено поколений, а также с учетом (30.1) -(30.3) , получим оценку вычислительной сложности, приведенную в формулировке теоремы.

На каждом этапе эволюции требуется хранение двух поколений: родительской популяции и популяции дочерних особей. Отсюда емкостная сложность генетического алгоритма для задач минимизации и оптимизации диагностической информации оценивается величиной $$O(2MW)$$.

Заметим, что один из возможных способов ускорения времени работы ПГА состоит в их распараллеливании.

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

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

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

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

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

Результаты экспериментов, демонстрируемые ниже в табл. 30.1-30.7, получены на PC Pentium III, 1024 MHz, 256 MB RAM и частично отражены в [5].

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

$$ |S|$$ $$m|\tau|$$ Объем ДИ, бит Объем маски, бит Время работы ПГА Доля сокращенной информации по отношению к полной
127 40 5 080 9 48 сек 22.5%
511 256 130 816 12 6 мин 4.68%
1023 512 523 776 18 12 мин 3.51%
2047 1024 2 096 128 19 2 час 7 мин 1.85%
4095 1024 4 192 256 24 15 час 2.34%

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

В процессе проведения расчетов было эмпирически установлено, что численность популяции достаточно ограничить 50 особями, а длину жизненного цикла - 50 поколениями.

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

$$ |S|$$ $$m|\tau|$$ Объем ДИ, бит Объем маски, бит Время поиска маски Доля сокращенной информации по отношению к полной
70 20 1 400 9 15 мин 45%
127 21 2 667 10 46 мин 47%
127 22 2 794 10 1 час 32 мин 45%
127 23 2 921 10 4 час 25 мин 43%
127 30 3 810 10 более суток 33%

Как видно из этой таблицы, даже для довольно скромных размеров исходной информации (общий объем не превышал 3810 бит) поиск решения требует очень больших временных затрат. Отсюда можно сделать вывод, что для реальных задач классификации объектов с большим числом признаков (более 100) применения перебора неприемлемо.

Перейдем теперь к оценке эффективности применения разработанного простого ГА для оптимизации информации при поиске маски на случайных данных. Соответствующие результаты приведены в табл. 30.3.

$$ |S|$$ $$m|\tau|$$ Объем ДИ, бит Заданный объем маски, бит Время работы ПГА Доля сокращенной информации по отношению к полной
127 40 5 080 7 1.01 7 сек 17.5%
511 256 130 816 9 1.07 42 сек 3.51%
1023 512 523 776 10 1.12 1 мин 1.95%
2047 1024 2 096 128 11 1.21 35 мин 1.07%
4095 1024 4 192 256 12 1.27 1 час 22 мин 1.17%

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

Попытки находить решение 2-ой задачи методом полного перебора показали, что здесь ситуация полностью аналогична той, что имела место для 1-ой задачи. Для реальных задач поиска маски при длине полной реакции ДУ более 100 бит метод простого перебора практически не применим.

Приведем данные для сокращения ДИ конкретных реальных устройств. В следующей серии экспериментов была использована ДИ, полученная для ЦУ из каталога ISCAS'89 [2] при моделировании одиночных неисправностей с помощью вероятностных последовательностей в качестве диагностического теста. Каждый вероятностный тест был составлен из 100 входных наборов. В множество технических состояний для ДУ было включено исправное состояние, а также по одному представителю от каждого множества неотличимых друг от друга с помощью этого теста неисправностей.

Табл. 30.4 представляет динамику нахождения решения задачи минимизации ДИ для ЦУ из набора схем каталога ISCAS'89.

Данные, приведенные в этой таблице, так же как и в табл. 30.1, получены с применением выбора линейным ранжированием, оператора однородного кроссовера и фитнес-функции (4.1).

Табл. 30.5 показывает динамику нахождения решения задачи 2 для некоторых схем из набора ISCAS'89.

Схема $$ |S|$$ $$m|\tau|$$ Объем полной ДИ Результат после 40 поколений Результат после 60 поколений Результат после 80 поколений Доля сокращенной информации по отношению к полной
Объем маски $$\rho_2(h)$$ Объем маски $$\rho_2(h)$$ Объем маски $$\rho_2(h)$$
S298 600 92 55 200 100 1.022 86 1.000 72 1.000 12.00%
S349 1100 184 202 400 183 1.033 175 1.000 156 1.000 14.18%
S382 600 32 19 200 39 1.062 37 1.062 38 1.000 6.33%
S386 700 137 95 200 145 1.015 132 1.000 117 1.000 16.71%
S400 600 33 19 800 44 1.000 41 1.000 37 1.000 6.17%
S510 700 447 312 900 320 1.000 255 1.000 206 1.000 29.43%
S526 600 23 13 800 31 1.000 30 1.000 29 1.000 4.83%
S8381 100 86 8 600 23 1.000 18 1.000 18 1.000 18.00%
S1494 1900 322 611 800 345 1.118 370 1.031 373 1.000 19.63%
S4201 100 61 6 100 20 1.000 19 1.000 19 1.000 19.00%
Схема $$ |S|$$ $$m|\tau|$$ Объем полной ДИ Результат после 40 поколений Результат после 60 поколений Результат после 80 поколений Доля сокращенной информации по отношению к полной
Объем маски $$\rho_2(h)$$ Объем маски $$\rho_2(h)$$ Объем маски $$\rho_2(h)$$
S382 600 32 19 200 20 1.063 20 1.000 20 1.000 3.33%
S386 700 136 95 200 55 1.059 55 1.044 55 1.000 7.86%
S400 600 33 19 800 20 1.121 20 1.060 20 1.000 3.33%
S510 700 447 312 900 70 1.027 70 1.000 70 1.000 10.00%

Так же как и в табл. 30.3 эти данные получены с применением специальных операторов кроссовера и мутации и фитнес-функции (29.4).

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

Эксперименты по нахождению индивидуальных масок проводились для ДИ полученной для ДУ из каталога ISCAS'89 при моделировании одиночных неисправностей с помощью тестовых последовательностей HITEC[3]. Так же как и в предыдущем случае в множество технических состояний было включено по одному представителю от каждого класса эквивалентности на множестве всевозможных технических состояний.

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

Схема $$m|\tau|$$ $$|S|$$ Объем полной ДИ Результат после 40 поколений Результат после 60 поколений Результат после 80 поколений
Объем маски $$\rho(H)$$ Объем маски $$\rho(H)$$ Объем маски $$\rho(H)$$
S400 195 13284 2590380 586 1,492 693 1,226 950 1,000
S820 713 21185 15104905 4055 1,547 5788 1,250 7152 1,000
S832 720 21603 15554160 4483 1,547 5787 1,267 7535 1,000
S1488 1360 22230 30232800 7497 1,618 9062 1,309 11539 1,000
S1494 1361 23655 32194455 8520 1,641 9965 1,309 12491 1,000

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

Вторая серия экспериментов ставилась для задачи минимизации объема совокупности индивидуальных масок генетическим алгоритмом с фитнес-функцией (29.8). Так же как и в предыдущей серии экспериментов, наилучшие результаты были получены при отборе линейным ранжированием и использовании однородного кроссовера. Результаты этой серии экспериментов представлены в табл. 30.7.

Схема $$m|\tau|$$ $$|S|$$ Объем полной ДИ Результат после 40 поколений Результат после 60 поколений Результат после 80 поколений
Объем маски $$\rho(H)$$ Объем маски $$\rho(H)$$ Объем маски $$\rho(H)$$
S400 195 13284 2590380 795 1,667 917 1,308 1149 1,000
S820 713 21185 15104905 7673 1,976 11069 1,443 12915 1,000
S832 720 21603 15554160 7061 2,008 11031 1,447 13817 1,000
S1488 1360 22230 30232800 13587 1,956 17396 1,479 21074 1,000
S1494 1361 23655 32194455 13507 1,989 18419 1,481 22520 1,000

Эксперименты с ДИ для реальных устройств показали, что оптимальная численность популяции для предложенных ПГА - 100 особей, а для получения приемлемого решения достаточно 70 поколений.

На следующем этапе были проведены исследования для оценки ускорения ГА при использовании многопроцессорных ЭВМ. Наиболее трудоемким этапом в ПГА для поиска маски является получение значения фитнес-функции для каждой хромосомы. В следующих экспериментах была сделана попытка достичь простого ускорения этого этапа, производя вычисления фитнес-функции одновременно для нескольких хромосом. Результаты, приведенные в табл. 30.9, были получены на ЭВМ с ЦП Intel Core2Duo 2,33ГГц, 2 Гб ОЗУ. Эксперименты проводились для ДИ полученной для ДУ из каталога ISCAS'85 [4] и ISCAS'89 [2] при моделировании одиночных неисправностей с помощью тестовых последовательностей HITEC [3]. Характеристики диагностической информации для этих ДУ приведены в табл. 30.8. Была взята численность популяции - 900 особей, а процесс эволюции прерывался при достижении 300 поколений.

Схема $$n$$ $$m$$ $$|S|$$ $$|\tau|$$ $$m|\tau|$$ Объем ДИ, бит
С499 41 32 985 184 5888 5799680
С1355 41 32 2027 198 6336 12843072
С2670 233 140 4111 102 14280 58705080
S298 3 6 178 322 1932 343896
S344 9 11 241 127 1397 336677
S526 3 6 139 2258 13548 1883172
S1488 8 19 1360 1170 22230 30232800
S2081 10 1 56 100 100 5600
Схема Время работы алгоритма с использованием одного процессора Время работы алгоритма с использованием двух процессоров
S2081 14 с 9 с
S298 7 мин 16 с 4 мин 03 с
S344 17 мин 11 с 9 мин 44 с
S526 23 мин 30 с 14 мин 03 с

Из приведенных в этой таблице данных следует, что при распараллеливании ГА в системе, имеющей два процессора, время работы алгоритма сокращается практически вдвое.

Также были поставлены эксперименты по поиску масок с помощью ГА на многомашинных системах. В экспериментах использовались 4 базовых ЭВМ со следующими характеристиками: ЦП Intel Pentium D 2.8 ГГц (2 ядра), 1 ГБ ОЗУ, которые были объединены в локальную вычислительную сеть с пропускной способностью 100 Мбит/сек. Результаты этих экспериментов приведены в табл. 30.10.

Схема Время работы алгоритма с использованием одной двухпроцессорной машины Время работы алгоритма с на четырех двухпроцессорных машинах Ускорение
S1488 4 час 10 мин 1 час 14 мин 57 с 3,33
С499 53 мин 17 с 17 мин 41 с 3,01
С1355 5 час 15 мин 50 с 1 час 21 мин 42 с 3,86
С2670 13 час 57 мин 3 час 43 мин 15 с 3,74

Данные из этих таблиц были получены при количестве этапов эволюции - 300 поколений и численности популяции: для схемы С2670 - 100 особей, для всех остальных ДУ - 500 особей.

Эксперименты показали, что практический смысл использования многомашинных систем имеют только вычисления со значительным объемом ДИ. В этом случае временные затраты на передачу данных по сети и синхронизацию становятся незначительными по сравнению с затратами на сами вычисления. В ходе экспериментов было установлено, что запуск на многомашинных системах ГА для поиска маски ДИ объема, не превышающего 10 мегабит, не дает преимущества во времени работы алгоритма по сравнению с запусками на одномашинной системе.

Ключевые термины:

Оценка эффективности ГА - получение совокупности показателей, характеризующих качественно и/или количественно требуемый объем памяти и быстродействие генетического алгоритма.

Вычислительная сложность поиска маски- емкостные и временные оценки ГА в терминах размерности популяций, обрабатываемых ГА, и количества битов, необходимых для хранения информации об одной особи популяции.

Экспериментальные данные - совокупность результатов численных экспериментов с различными цифровыми схемами, связанных с применением ГА для поиска масок с целью сокращения объема полной ДИ упомянутых схем.

Краткие итоги:

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

Вопросы и упражнения

  • Приведите теоретические оценки временной и емкостной алгоритмической сложности одного запуска ГА.
  • Проанализируйте результаты ГА для минимизации ДИ на случайных данных (табл. 30.1). Зависит ли доля сокращаемой ДИ от ее объема?
  • Выполните задание, аналогичное сформулированному в упражнении 2, для задачи оптимизации ДИ.
  • Проанализируйте динамику нахождения решения задачи минимизации ДИ для набора схем из каталога ISCAS-89. Какие выводы можно сделать о числе поколений в процессе эволюции начальной популяции для достижения решения высокого качества?
  • Задание, аналогичное предыдущему, выполните для задачи оптимизации ДИ, результаты решения которой представлены в табл. 30.5.
  • Страницы:

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

    Вначале приведем утверждение об оценке вычислительной сложности описанных в предыдущей лекции ПГА.

    Введем следующие обозначения. Пусть $$K$$ - число этапов эволюции, реализуемых ГА, $$M$$ - число особей в популяции, $$W$$ - объем памяти (в битах) для хранения одной особи.

    Теорема. Пусть для ЦУ с множеством неисправностей $$F$$ получен СПР. Тогда оценка алгоритмической сложности одного запуска генетического алгоритма со структурой хромосомы (29.1) или (29.6) и с использованием любой из фитнес-функций (29.3)-(29.5), (29.7)-(29.10) равна $$O(KM\cdot(W\cdot(|F|+1)+\log{M}))$$, а объем памяти, необходимой для работы генетического алгоритма, равен $$O(2MW)$$.

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

    Исходя из вида формул (29.3)-(29.5), (29.7)-(29.10), оценка вычислительной сложности для функций приспособленности сводится к оценке вычислительной сложности величин $$\rho_2$$ и $$\rho_6$$. Согласно [1] вычислительная сложность величины оценивается величиной

    $$O(W\cdot(|F|+1)) $$

    Для вычисления значения $$\rho_6$$ необходимо также произвести

    $$O(W\cdot(|F|+1))$$

    сравнений. Сортировка элементов популяции производится за время

    $$O(M \log{M})$$

    Принимая во внимание тот факт, что в процессе эволюции должно быть найдено поколений, а также с учетом (30.1) -(30.3) , получим оценку вычислительной сложности, приведенную в формулировке теоремы.

    На каждом этапе эволюции требуется хранение двух поколений: родительской популяции и популяции дочерних особей. Отсюда емкостная сложность генетического алгоритма для задач минимизации и оптимизации диагностической информации оценивается величиной $$O(2MW)$$.

    Заметим, что один из возможных способов ускорения времени работы ПГА состоит в их распараллеливании.

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

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

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

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

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

    Результаты экспериментов, демонстрируемые ниже в табл. 30.1-30.7, получены на PC Pentium III, 1024 MHz, 256 MB RAM и частично отражены в [5].

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

    $$ |S|$$ $$m|\tau|$$ Объем ДИ, бит Объем маски, бит Время работы ПГА Доля сокращенной информации по отношению к полной
    127 40 5 080 9 48 сек 22.5%
    511 256 130 816 12 6 мин 4.68%
    1023 512 523 776 18 12 мин 3.51%
    2047 1024 2 096 128 19 2 час 7 мин 1.85%
    4095 1024 4 192 256 24 15 час 2.34%

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

    В процессе проведения расчетов было эмпирически установлено, что численность популяции достаточно ограничить 50 особями, а длину жизненного цикла - 50 поколениями.

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

    $$ |S|$$ $$m|\tau|$$ Объем ДИ, бит Объем маски, бит Время поиска маски Доля сокращенной информации по отношению к полной
    70 20 1 400 9 15 мин 45%
    127 21 2 667 10 46 мин 47%
    127 22 2 794 10 1 час 32 мин 45%
    127 23 2 921 10 4 час 25 мин 43%
    127 30 3 810 10 более суток 33%

    Как видно из этой таблицы, даже для довольно скромных размеров исходной информации (общий объем не превышал 3810 бит) поиск решения требует очень больших временных затрат. Отсюда можно сделать вывод, что для реальных задач классификации объектов с большим числом признаков (более 100) применения перебора неприемлемо.

    Перейдем теперь к оценке эффективности применения разработанного простого ГА для оптимизации информации при поиске маски на случайных данных. Соответствующие результаты приведены в табл. 30.3.

    $$ |S|$$ $$m|\tau|$$ Объем ДИ, бит Заданный объем маски, бит Время работы ПГА Доля сокращенной информации по отношению к полной
    127 40 5 080 7 1.01 7 сек 17.5%
    511 256 130 816 9 1.07 42 сек 3.51%
    1023 512 523 776 10 1.12 1 мин 1.95%
    2047 1024 2 096 128 11 1.21 35 мин 1.07%
    4095 1024 4 192 256 12 1.27 1 час 22 мин 1.17%

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

    Попытки находить решение 2-ой задачи методом полного перебора показали, что здесь ситуация полностью аналогична той, что имела место для 1-ой задачи. Для реальных задач поиска маски при длине полной реакции ДУ более 100 бит метод простого перебора практически не применим.

    Приведем данные для сокращения ДИ конкретных реальных устройств. В следующей серии экспериментов была использована ДИ, полученная для ЦУ из каталога ISCAS'89 [2] при моделировании одиночных неисправностей с помощью вероятностных последовательностей в качестве диагностического теста. Каждый вероятностный тест был составлен из 100 входных наборов. В множество технических состояний для ДУ было включено исправное состояние, а также по одному представителю от каждого множества неотличимых друг от друга с помощью этого теста неисправностей.

    Табл. 30.4 представляет динамику нахождения решения задачи минимизации ДИ для ЦУ из набора схем каталога ISCAS'89.

    Данные, приведенные в этой таблице, так же как и в табл. 30.1, получены с применением выбора линейным ранжированием, оператора однородного кроссовера и фитнес-функции (4.1).

    Табл. 30.5 показывает динамику нахождения решения задачи 2 для некоторых схем из набора ISCAS'89.

    Схема $$ |S|$$ $$m|\tau|$$ Объем полной ДИ Результат после 40 поколений Результат после 60 поколений Результат после 80 поколений Доля сокращенной информации по отношению к полной
    Объем маски $$\rho_2(h)$$ Объем маски $$\rho_2(h)$$ Объем маски $$\rho_2(h)$$
    S298 600 92 55 200 100 1.022 86 1.000 72 1.000 12.00%
    S349 1100 184 202 400 183 1.033 175 1.000 156 1.000 14.18%
    S382 600 32 19 200 39 1.062 37 1.062 38 1.000 6.33%
    S386 700 137 95 200 145 1.015 132 1.000 117 1.000 16.71%
    S400 600 33 19 800 44 1.000 41 1.000 37 1.000 6.17%
    S510 700 447 312 900 320 1.000 255 1.000 206 1.000 29.43%
    S526 600 23 13 800 31 1.000 30 1.000 29 1.000 4.83%
    S8381 100 86 8 600 23 1.000 18 1.000 18 1.000 18.00%
    S1494 1900 322 611 800 345 1.118 370 1.031 373 1.000 19.63%
    S4201 100 61 6 100 20 1.000 19 1.000 19 1.000 19.00%
    Схема $$ |S|$$ $$m|\tau|$$ Объем полной ДИ Результат после 40 поколений Результат после 60 поколений Результат после 80 поколений Доля сокращенной информации по отношению к полной
    Объем маски $$\rho_2(h)$$ Объем маски $$\rho_2(h)$$ Объем маски $$\rho_2(h)$$
    S382 600 32 19 200 20 1.063 20 1.000 20 1.000 3.33%
    S386 700 136 95 200 55 1.059 55 1.044 55 1.000 7.86%
    S400 600 33 19 800 20 1.121 20 1.060 20 1.000 3.33%
    S510 700 447 312 900 70 1.027 70 1.000 70 1.000 10.00%

    Так же как и в табл. 30.3 эти данные получены с применением специальных операторов кроссовера и мутации и фитнес-функции (29.4).

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

    Эксперименты по нахождению индивидуальных масок проводились для ДИ полученной для ДУ из каталога ISCAS'89 при моделировании одиночных неисправностей с помощью тестовых последовательностей HITEC[3]. Так же как и в предыдущем случае в множество технических состояний было включено по одному представителю от каждого класса эквивалентности на множестве всевозможных технических состояний.

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

    Схема $$m|\tau|$$ $$|S|$$ Объем полной ДИ Результат после 40 поколений Результат после 60 поколений Результат после 80 поколений
    Объем маски $$\rho(H)$$ Объем маски $$\rho(H)$$ Объем маски $$\rho(H)$$
    S400 195 13284 2590380 586 1,492 693 1,226 950 1,000
    S820 713 21185 15104905 4055 1,547 5788 1,250 7152 1,000
    S832 720 21603 15554160 4483 1,547 5787 1,267 7535 1,000
    S1488 1360 22230 30232800 7497 1,618 9062 1,309 11539 1,000
    S1494 1361 23655 32194455 8520 1,641 9965 1,309 12491 1,000

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

    Вторая серия экспериментов ставилась для задачи минимизации объема совокупности индивидуальных масок генетическим алгоритмом с фитнес-функцией (29.8). Так же как и в предыдущей серии экспериментов, наилучшие результаты были получены при отборе линейным ранжированием и использовании однородного кроссовера. Результаты этой серии экспериментов представлены в табл. 30.7.

    Схема $$m|\tau|$$ $$|S|$$ Объем полной ДИ Результат после 40 поколений Результат после 60 поколений Результат после 80 поколений
    Объем маски $$\rho(H)$$ Объем маски $$\rho(H)$$ Объем маски $$\rho(H)$$
    S400 195 13284 2590380 795 1,667 917 1,308 1149 1,000
    S820 713 21185 15104905 7673 1,976 11069 1,443 12915 1,000
    S832 720 21603 15554160 7061 2,008 11031 1,447 13817 1,000
    S1488 1360 22230 30232800 13587 1,956 17396 1,479 21074 1,000
    S1494 1361 23655 32194455 13507 1,989 18419 1,481 22520 1,000

    Эксперименты с ДИ для реальных устройств показали, что оптимальная численность популяции для предложенных ПГА - 100 особей, а для получения приемлемого решения достаточно 70 поколений.

    На следующем этапе были проведены исследования для оценки ускорения ГА при использовании многопроцессорных ЭВМ. Наиболее трудоемким этапом в ПГА для поиска маски является получение значения фитнес-функции для каждой хромосомы. В следующих экспериментах была сделана попытка достичь простого ускорения этого этапа, производя вычисления фитнес-функции одновременно для нескольких хромосом. Результаты, приведенные в табл. 30.9, были получены на ЭВМ с ЦП Intel Core2Duo 2,33ГГц, 2 Гб ОЗУ. Эксперименты проводились для ДИ полученной для ДУ из каталога ISCAS'85 [4] и ISCAS'89 [2] при моделировании одиночных неисправностей с помощью тестовых последовательностей HITEC [3]. Характеристики диагностической информации для этих ДУ приведены в табл. 30.8. Была взята численность популяции - 900 особей, а процесс эволюции прерывался при достижении 300 поколений.

    Схема $$n$$ $$m$$ $$|S|$$ $$|\tau|$$ $$m|\tau|$$ Объем ДИ, бит
    С499 41 32 985 184 5888 5799680
    С1355 41 32 2027 198 6336 12843072
    С2670 233 140 4111 102 14280 58705080
    S298 3 6 178 322 1932 343896
    S344 9 11 241 127 1397 336677
    S526 3 6 139 2258 13548 1883172
    S1488 8 19 1360 1170 22230 30232800
    S2081 10 1 56 100 100 5600
    Схема Время работы алгоритма с использованием одного процессора Время работы алгоритма с использованием двух процессоров
    S2081 14 с 9 с
    S298 7 мин 16 с 4 мин 03 с
    S344 17 мин 11 с 9 мин 44 с
    S526 23 мин 30 с 14 мин 03 с

    Из приведенных в этой таблице данных следует, что при распараллеливании ГА в системе, имеющей два процессора, время работы алгоритма сокращается практически вдвое.

    Также были поставлены эксперименты по поиску масок с помощью ГА на многомашинных системах. В экспериментах использовались 4 базовых ЭВМ со следующими характеристиками: ЦП Intel Pentium D 2.8 ГГц (2 ядра), 1 ГБ ОЗУ, которые были объединены в локальную вычислительную сеть с пропускной способностью 100 Мбит/сек. Результаты этих экспериментов приведены в табл. 30.10.

    Схема Время работы алгоритма с использованием одной двухпроцессорной машины Время работы алгоритма с на четырех двухпроцессорных машинах Ускорение
    S1488 4 час 10 мин 1 час 14 мин 57 с 3,33
    С499 53 мин 17 с 17 мин 41 с 3,01
    С1355 5 час 15 мин 50 с 1 час 21 мин 42 с 3,86
    С2670 13 час 57 мин 3 час 43 мин 15 с 3,74

    Данные из этих таблиц были получены при количестве этапов эволюции - 300 поколений и численности популяции: для схемы С2670 - 100 особей, для всех остальных ДУ - 500 особей.

    Эксперименты показали, что практический смысл использования многомашинных систем имеют только вычисления со значительным объемом ДИ. В этом случае временные затраты на передачу данных по сети и синхронизацию становятся незначительными по сравнению с затратами на сами вычисления. В ходе экспериментов было установлено, что запуск на многомашинных системах ГА для поиска маски ДИ объема, не превышающего 10 мегабит, не дает преимущества во времени работы алгоритма по сравнению с запусками на одномашинной системе.

    Ключевые термины:

    Оценка эффективности ГА - получение совокупности показателей, характеризующих качественно и/или количественно требуемый объем памяти и быстродействие генетического алгоритма.

    Вычислительная сложность поиска маски- емкостные и временные оценки ГА в терминах размерности популяций, обрабатываемых ГА, и количества битов, необходимых для хранения информации об одной особи популяции.

    Экспериментальные данные - совокупность результатов численных экспериментов с различными цифровыми схемами, связанных с применением ГА для поиска масок с целью сокращения объема полной ДИ упомянутых схем.

    Краткие итоги:

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

    Вопросы и упражнения

  • Приведите теоретические оценки временной и емкостной алгоритмической сложности одного запуска ГА.
  • Проанализируйте результаты ГА для минимизации ДИ на случайных данных (табл. 30.1). Зависит ли доля сокращаемой ДИ от ее объема?
  • Выполните задание, аналогичное сформулированному в упражнении 2, для задачи оптимизации ДИ.
  • Проанализируйте динамику нахождения решения задачи минимизации ДИ для набора схем из каталога ISCAS-89. Какие выводы можно сделать о числе поколений в процессе эволюции начальной популяции для достижения решения высокого качества?
  • Задание, аналогичное предыдущему, выполните для задачи оптимизации ДИ, результаты решения которой представлены в табл. 30.5.
  • Вернуться к учебному плану