.
.
Портал искусственного интеллекта
.
.
.
.
.
.
 
Карта сайта Портал искусственного интеллекта  -  Каталог статей  -  Генетические алгоритмы  -  Методы кодирования хромосом: двоичное, логарифмическое, код Грея  
 

Нашли ошибку?

Нашли ошибку?

Нет ничего проще: выделите текст с ошибкой, нажмите CTRL+ENTER и мы уже знаем о ней!

Партнерство

Хотите стать партнером?

Присылайте свои предложения и мы обязательно рассмотрим их

Написать нам

Есть интересная информация?

Пишите нам и мы разместим ее на страницах портала искусственного интеллекта

Методы кодирования хромосом: двоичное, логарифмическое, код Грея

Двоичное кодирование является, наверное, самым популярным способом кодирования чисел. Так, в классической реализации генетического алгоритма применяется именно этот метод. Напомним, что двоичное кодирование основано на известном способе записи десятичных чисел в двоичной системе, где каждый бит двоичного кода соответствует очередной степени цифры 2. Например, двоичная последовательность 10011 представляет собой код числа 19:
1*2^4~+~0*2^3~+~0*2^2~+~1*2^1~+~1*2^0~=~19
В генетических алгоритмах можно, например, использовать код Грея, который характеризуется тем, что двоичные последовательности, соответствующие двум последовательным целым числам, отличаются только одним битом. Такой способ кодирования хромосом может оказаться оправданным при использовании операции мутации.
Некоторые значения кода Грея приведены в этой таблице:
Десятичное
число
Двоичное
кодирование
Код Грея
000000000
100010001
200100011
300110010
401000110
501010111
601100101
701110100
810001100
910011101
1010101111
1110111110
1211001010
1311011011
1411101001
1511111000
Логарифмическое кодирование – применяется в генетических алгоритмах для уменьшения длины хромосом. Оно используется, главным образом, в задачах многомерной оптимизации с большими пространствами поиска решений.
При логарифмическом кодировании первый бит alpha кодовой последовательности – это бит знака показательной санкции, второй бит beta – бит знака степени этой функции, а остальные биты BIN представляют значение самой степени:
delim{[}{alpha beta~~BIN}{]}~=~{{(-1)}^beta}*~{e}^{{{(-1)}^alpha}BIN_10}
где BIN_10 означает десятичное значение числа, закодированного в виде двоичной последовательности BIN. Приведем следующий пример. Дана закодированная последовательность, 10110. Согласно, приведенной формуле это последовательность расшифровывается следующим образом:
X~=~{{(-1)}^0}*~{e}^{{{(-1)}^1}delim{[}{110}{]}_10}~=~0.002478752
Следующий пример. Дана закодированная последовательность, 01010. Тогда:
X~=~{{(-1)}^1}*~{e}^{{{(-1)}^0}delim{[}{010}{]}_10}~=~-7.389056099
Заметим, что таким образом с помощью пяти битов можно закодировать числа из интервала delim{[}{-e^7,e^7}{]}. Это значительно больший интервал, чем delim{[}{0,31}{]} для двоичного кодирования.
Новости
Участие в проекте по разработке гуманоидного робота NAO
 
.
Статистика посещений
.
. . .
.