ИМС (исчерпывающее множество событий), приведённое для описания исключающего ИЛИ, когда из множества вариантов надо выбрать единственный (или никакого), отлично согласуется с практикой введения перечислимых типов в языках типа С++. С теорией конечных автоматов, насколько я помню, тоже.
Причём насколько я понимаю, получается не вектор, а точки на прямой. Допустим, у нас есть нейрон, и у этого нейрона есть функция активации. Она может быть, допустим, простым пороговым элементом или сигмоидой. Или никакой не быть, если нейрон мёртвенький. Но она не может быть одновременно и простым порогом, и сигмоидой.
Тогда я могу сказать, что у меня есть два разряда (две булевых переменных) и один перечислимый тип, допустим, так:
enum TransferFuction {
TF_Unknown = 0,
TF_Threshold = 1,
TF_Sigmoid = 2,
}
Тогда корректное распознавание описания передаточной функции, пришедшего нам откуда-то, будет как раз и описываться функцией исключающее ИЛИ: адекватные значения - это только 01 и 10, всё остальное - то ли нейрона нет, то ли сбой в линии связи. Если мы введём ещё TF_Error, то мы можем различать гарантированно ошибку (11) и отсутствие информации (00). Такое различение имеет смысл, когда система имеет всё-таки чуть больше состояний, чем два смысловых (ещё два, неактивное и неисправное, лучше полагать, что есть у любой системы).
UPD: а если ещё подумать, то кроме рассмотренных, можно ввести ещё и «прочие». Но тогда эта штука становится вообще универсальной. И перечислимый тип выглядит как-то так:
enum TransferFuction {
TF_Inactive = 0,
TF_Threshold = 1,
TF_Sigmoid = 2,
TF_Unknown = 10,
TF_Error = -1,
}
Возможно, если к этому прицепить какое-нибудь вероятностное распределение, будет ещё интереснее, но я это буду делать уже ближе к Хайкину (как вообще автор умудрился в библиографии его не упомянуть?)