Для кодирования таких признаков можно использовать самый простой вариант – битовое значение этого признака. Тогда нам будет весьма просто использовать ген определенной длины, достаточной для представления всех возможных значений такого признака. Но, к сожалению, такое кодирование не лишено недостатков. Основной недостаток заключается в том, что соседние числа отличаются в значениях нескольких битов, так например числа 7 и 8 в битовом представлении различаются в 4-х позициях, что затрудняет функционирование генетического алгоритма и увеличивает время, необходимое для его сходимости. Для того, чтобы избежать эту проблему лучше использовать кодирование, при котором соседние числа отличаются меньшим количеством позиций, в идеале значением одного бита. Таким кодом является код Грея, который целесообразно использовать в реализации генетического алгоритма. Значения кодов Грея рассмотрены в таблице ниже:
| Двоичное кодирование | Кодирование по коду Грея | ||||
| Десятичный код | Двоичное значение | Шестнадцатеричное значение | Десятичный код | Двоичное значение | Шестнадцатеричное значение |
| 0h | 0h | ||||
| 1h | 1h | ||||
| 2h | 3h | ||||
| 3h | 2h | ||||
| 4h | 6h | ||||
| 5h | 7h | ||||
| 6h | 5h | ||||
| 7h | 4h | ||||
| 8h | Ch | ||||
| 9h | Dh | ||||
| Ah | Fh | ||||
| Bh | Eh | ||||
| Ch | Ah | ||||
| Dh | Bh | ||||
| Eh | 9h | ||||
| Fh | 8h |
Таблица 1. Соответствие десятичных кодов и кодов Грея.
Таким образом, при кодировании целочисленного признака мы разбиваем его на тетрады и каждую тетраду преобразуем по коду Грея.
В практических реализациях генетических алгоритмов обычно не возникает необходимости преобразовывать значения признака в значение гена. На практике имеет место обратная задача, когда по значению гена необходимо определить значение соответствующего ему признака.
Таким образом, задача декодирования значения генов, которым соответствуют целочисленные признаки, тривиальна.






