1) системы, которые смоделированы на биологических принципах. Они успешно использовались для задач типа функциональной оптимизации и могут легко быть описаны на небиологическом языке,
2) системы, которые являются биологически более реалистичными, но которые не оказались особенно полезными в прикладном смысле. Они больше похожи на биологические системы и менее направлены (или не направлены вовсе). Они обладают сложным и интересным поведением, и, видимо, вскоре получат практическое применение.
Конечно, на практике мы не можем разделять эти вещи так строго. Эти категории - просто два полюса, между которыми лежат различные вычислительные системы. Ближе к первому полюсу - эволюционные алгоритмы, такие как Эволюционное Программирование (Evolutionary Programming), Генетические Алгоритмы (Genetic Algorithms) и Эволюционные Стратегии (Evolution Strategies). Ближе ко второму полюсу - системы, которые могут быть классифицированы как Искусственная Жизнь (Artificial Life).
Конечно, эволюция биологических систем не единственный "источник вдохновения" создателей новых методов, моделирующих природные процессы. Нейронные сети (neural networks), например, основаны на моделировании поведения нейронов в мозге. Они могут использоваться для ряда задач классификации, например, задачи распознавания образов, машинного обучения, обработки изображений и др. Область их приложения частично перекрывается со сферой применения генетических алгоритмов.
Нейрокомпьютинг, как новое направление науки, ведет свою историю с середины 40-х, когда Маккаллок и Питтс опубликовали свою работу "Логическое исчисление идей, относящихся к нервной активности", в которой изложили принципы функционирования искусственного нейрона. Дальнейшие исследования в 50-х - 60-х годах в мире и в нашей стране подогрели интерес к этой новой области науки. Выход в свет фундаментальных работ Минского, в которых он теоретически доказал, что отдельные нейронные парадигмы не способны решать некоторые задачи, в частности, с помощью однослойного персептрона нельзя решить задачу "исключающего или", фактически затормозил развитие нейрокомпьютинга, практический интерес к нейронным сетям быстро угас и переместился в теоретическую плоскость.
Такое положение сохранялось почти три десятка лет, до середины 80-х. Конец 80-х - начало 90-х характеризуются сначала робким, а потом бурным возрождением интереса к нейронным сетям во всем мире. В России его массовый всплеск проявится позднее - лет через пять, в середине 90-х. А в мире события развиваются достаточно бурно. Резко увеличивается число конференций по нейронной тематике, регулярно проводятся конференции IEEE, посвященные исключительно нейронным сетям, секции по нейронной тематике начинают появляться в различных симпозиумах, посвященных обработке сигналов, робототехнике, авионике и т.д. Лавинообразно нарастает объем литературы, выпускаются сначала десятки, а потом сотни книг по нейронным сетям. А в России - тишина, лишь отдельные коллективы либо продолжают заниматься исследованиями в области нейрокомпьютинга, как делали это уже много лет, либо, отследив всплеск интереса, начинают заниматься этой тематикой. Но уже к 1992 году таких коллективов было не так уж и мало.
Разумеется, перечислить всех, кто в то время занимался нейрокомпьютингом невозможно, поскольку, помимо представленных известных имен, существовало множество небольших научных коллективов и групп, работающих в этой области. Дело в том, что нейрокомпьютерные исследования в России проводились разрозненно, отдельные коллективы не знали про разработки коллег из других городов, что, несомненно, шло во вред развитию нейрокомпьютинга в России. Скажем, профессор Горбань из Красноярска был в свое время весьма удивлен тем, что в Москве серьезно занимаются нейрокомпьютерными исследованиями. Ответное удивление последовало и со стороны столичных разработчиков. И такие случаи не были редкостью.
К 1992 году было создано Российское общество по нейронным сетям (RNNS) - по аналогии со Всемирным обществом по нейронным сетям (WNNS). Под его эгидой в октябре 1992 года в Ростове-на-Дону прошла первая Международная конференция по нейроинформатике и нейрокомпьютингу. Участниками той конференции стали такие гранды нейрокомпьютинга, как Роберт Хехт-Нильсен, глава компании HNC, занимающейся выпуском нейрокомпьютеров, Роберт Маркс, координатор IEEE по нейронным сетям, Дональд Вюнш, представлявший корпорацию Boeing и др. Общение с ними оказалось весьма полезным для российских участников конференции.
Годом раньше на базе Омского Государственного Университета была проведена Всероссийская студенческая олимпиада по нейрокомпьютингу. К сожалению, первая олимпиада оказалась и последней. А жаль, ведь сейчас во многих отечественных вузах читаются курсы по нейрокомпьютингу, причем преподавание ведется разными научными школами, и было бы весьма интересно провести очередную всероссийскую олимпиаду, которая была бы полезна всем. К сожалению, пока это остается мечтой. Начиная с 1993 года, в Красноярске ежегодно проводится конференция по нейрокомпьютингу, доклады на которую присылаются со всей страны. Она фактически стала первой регулярной российской конференцией по нейронным сетям. В МИФИ стали ежегодно проводить школу-семинар "Нейроинформатика", переросшую впоследствии во всероссийскую конференцию. Прошли также несколько специализированных семинаров по нейронной тематике (как, например, совместный российско-британский семинар "Нейроинформатика-90"). Нельзя сказать, что в России совсем уж не уделяли внимания нейронным сетям, но исследований проводилось мало.
С задержкой почти на пять лет нейрокомпьютерный бум докатился, наконец, и до России. Начал издаваться достаточно большой объем литературы по нейрокомпьютингу, в том числе и переводной, выпускаются периодические журналы, проводятся конференции. В стране назрел "нейрокомпьютерный взрыв".
Нейронные сети были созданы в результате наблюдения за естественными процессами, происходящими в нервной системе живых существ, и попыток воспроизведения этих процессов. Термин нейрон, обозначающий основной исполнительный элемент искусственных нейронных сетей, был непосредственно заимствован из теории природных нервных систем.
Аналогично, генетические алгоритмы возникли в результате наблюдения и попыток копирования естественных процессов, происходящих в мире живых организмов, в частности, эволюции и связанной с ней селекции (естественного отбора) популяций живых существ. Конечно, при подобном сопоставлении нейронных сетей и генетических алгоритмов следует обращать внимание на принципиально различную длительность протекания упоминаемых естественных процессов, т.е. на чрезвычайно быструю обработку информации в нервной системе и очень медленный процесс естественной эволюции. Однако при компьютерном моделировании эти различия оказываются несущественными.
Идею генетических алгоритмов высказал Дж. Холланд в конце шестидесятых - начале семидесятых годов XX века. Он заинтересовался свойствами процессов естественной эволюции (в том числе фактом, что эволюционируют хромосомы, а не сами живые существа). Холланд был уверен в возможности составить и реализовать в виде компьютерной программы алгоритм, который будет решать сложные задачи так, как это делает природа - путем эволюции. Поэтому он начал трудиться над алгоритмами, оперировавшими последовательностями двоичных цифр (единиц и нулей), получившими название хромосом. Эти алгоритмы имитировали эволюционные процессы в поколениях таких хромосом. В них были реализованы механизмы селекции и репродукции, аналогичные применяемым при естественной эволюции. Так же, как и в природе, генетические алгоритмы осуществляли поиск "хороших" хромосом без использования какой-либо информации о характере решаемой задачи. Требовалась только некая оценка каждой хромосомы, отражающая ее приспособленность. Механизм селекции заключается в выборе хромосом с наивысшей оценкой (т.е. наиболее приспособленных), которые репродуцируют чаще, чем особи с более низкой оценкой (хуже приспособленные). Репродукция означает создание новых хромосом в результате рекомбинации генов родительских хромосом. Рекомбинация - это процесс, в результате которого возникают новые комбинации генов. Для этого используются две операции: скрещивание, позволяющее создать две совершенно новые хромосомы потомков путем комбинирования генетического материала пары родителей, а также мутация, которая может вызывать изменения в отдельных хромосомах.
В генетических алгоритмах применяется ряд терминов, заимствованных из генетики, прежде всего гены и хромосомы, а также популяция, особь, аллель, генотип, фенотип.
Генетические алгоритмы применяются при разработке программного обеспечения, в системах искусственного интеллекта, оптимизации, искусственных нейронных сетях и в других отраслях знаний. Следует отметить, что с их помощью решаются задачи, для которых ранее использовались только нейронные сети. В этом случае генетические алгоритмы выступают просто в роли независимого от нейронных сетей альтернативного метода, предназначенного для решения той же самой задачи. Генетические алгоритмы часто используются совместно с нейронными сетями. Они могут поддерживать нейронные сети или наоборот, либо оба метода взаимодействуют в рамках гибридной системы, предназначенной для решения конкретной задачи. Генетические алгоритмы также применяются совместно с нечеткими системами.
Генетические Алгоритмы - адаптивные методы поиска, которые в последнее время часто используются для решения задач функциональной оптимизации. Они основаны на генетических процессах биологических организмов: биологические популяции развиваются в течении нескольких поколений, подчиняясь законам естественного отбора и по принципу "выживает наиболее приспособленный" открытому Чарльзом Дарвином. Подражая этому процессу генетические алгоритмы способны "развивать" решения реальных задач, если те соответствующим образом закодированы. Например, генетические алгоритмы могут использоваться, чтобы проектировать структуры моста, для поиска максимального отношения прочности/веса, или определять наименее расточительное размещение для нарезки форм из ткани. Они могут также использоваться для интерактивного управления процессом, например на химическом заводе, или балансировании загрузки на многопроцессорном компьютере. Вполне реальный пример: израильская компания Schema разработала программный продукт Channeling для оптимизации работы сотовой связи путем выбора оптимальной частоты, на которой будет вестись разговор. В основе этого программного продукта и используются генетические алгоритмы.