Допустим, нас спросили, работает ли некий человек в определенной компании.
Чтобы узнать ответ, мы обращаемся к списку сотрудников, и если нужного человека в списке нет, то говорим, что он не работает в компании.
Допущение замкнутости мира в свое время существенно упростило работу с базами знаний. Однако читатель наверняка догадался, что это допущение имеет важные ограничения: если в реальной жизни нам неизвестен какой-либо факт, это не означает, что он автоматически будет ложным. Вернемся к примеру со списком сотрудников компании. Возможно, человек, работающий в организации, не указан в списке по ошибке или потому, что список устарел? Еще один недостаток допущения замкнутости мира заключается в том, что при работе с ним необходимо использовать чисто синтетические рассуждения.
Представьте, что у нас есть следующих список одиноких людей и людей, состоящих в браке:
Холост (-а) Хуан
Холост (-а) Мария
В браке Давид
Если кто-то спросит систему, холост ли Хорхе, система ответит отрицательно, так как Хорхе нет в списке холостяков. Составим новый список вида:
Не в браке Хуан
Не в браке Мария
В браке Давид
Вновь спросим систему, женат ли Хорхе, и вновь получим отрицательный ответ.
Система не содержит информации о семейном положении Хорхе, поэтому она позволяет сделать противоречивый вывод: Хорхе не одинок и вместе с тем не состоит в браке. Очевидно, что допущение замкнутости мира некорректно применять при неопределенности знаний или в случае их неполноты, поэтому сегодня это допущение используется только в частных случаях.
Наконец, мы не можем закончить разговор о работе с базами знаний, не упомянув о системах поддержки истинности (TMS, от англ. Truth Maintenance Systems).
Эти системы обеспечивают непротиворечивость баз знаний. Они особенно полезны при использовании немонотонных рассуждений, то есть методов, при которых база знаний постепенно увеличивается или уменьшается по ходу рассуждений. Системы поддержки истинности делятся на две группы: системы вертикального поиска и системы горизонтального поиска. Системы первой группы обходят базу знаний в поисках противоречий от общего к частному. При обнаружении противоречия они проходят ранее пройденный путь в обратном направлении. Системы горизонтального поиска, напротив, формулируют различные параллельные сценарии или гипотезы так, что из полученного множества контекстов по мере обнаружения противоречий последовательно исключаются отдельные варианты. Иными словами, для данного возможного контекста (представьте себе определенную позицию в шахматной партии) системы горизонтального поиска определяют сценарии, к которым можно прийти из текущей ситуации (в примере с шахматами этими сценариями будут возможные ходы), и исключают те, что оказываются противоречивыми. В шахматной партии противоречивым сценарием будет ход, при котором компьютер окажется в очень невыгодной позиции, поскольку цель компьютера — одержать победу, а неудачный ход противоречит этой цели.
Глава 2. Поиск
Как создаются новые лекарства? Еще совсем недавно фармацевты готовили медикаменты вручную, а их единственными помощниками были бумага и карандаш.
Они создавали и оптимизировали химическую структуру лекарства и в специальных лабораториях синтезировали и испытывали все новые и новые их версии, чтобы подтвердить, действительно ли возросла эффективность таблеток. Этот метод проб и ошибок отчасти объясняет, почему стоимость разработки нового лекарства в среднем составляет 1 млрд долларов.
При создании нового средства, как правило, синтезируется новая молекула, взаимодействующая с неким белком и в конечном итоге нейтрализующая его действие.
В живых организмах белки участвуют в метаболическом каскаде — последовательности реакций. Следовательно, если молекула нейтрализует действие одного из белков, участвующих в интересующей нас последовательности реакций, каскад будет нарушен, а молекула станет хорошим лекарством.
В этом упрощенном сценарии лекарство препятствует взаимодействию белка-мишени с белком с и нарушает метаболический каскад.
Чтобы нейтрализовать один из этих белков, необходимо, чтобы молекулы лекарства соединялись с ним определенным образом. Следовательно, большая часть усилий при создании нового медикамента направлена на то, чтобы новая молекула присоединялась к активному центру нужного белка — мишени.
Чтобы определить, действительно ли молекула лекарства соединяется с молекулой белка, необходимо измерить энергию их взаимодействия. Энергия взаимодействия между молекулой-кандидатом и белком-мишенью — это энергия, которую необходимо приложить для сохранения связи в системе. К примеру, если мы хотим, чтобы магнит держался на двери холодильника, нам не нужно постоянно прикладывать какую-то силу. Достаточно мощный магнит, только поднеси его к дверце, сам по себе притянется к ней с определенной силой. В этом случае говорят: для того чтобы магнит оставался прикрепленным к дверце холодильника, требуется приложить отрицательную энергию.
Разумеется, молекула лекарства, которая не образует связи с молекулой белка-мишени, не окажет лечебного воздействия: такая молекула будет свободно перемещаться по кровеносной системе или тканям, никак не решая задачу нейтрализации белка. А хорошим лекарством будет соединение, для которого энергия взаимодействия будет отрицательной и минимально возможной, — это говорит нам о том, насколько сильно притягиваются молекулы лекарства и белка. Следовательно, основной параметр, значение которого следует оптимизировать при разработке нового лекарства, это энергия взаимодействия.
Подобные задачи, решение которых заключается в определении ряда оптимальных параметров (например, какой шахматной фигурой нужно сделать ход, чтобы выиграть партию, или какими должны быть положение и размеры балок моста, чтобы снизить стоимость строительства и повысить прочность конструкции), объединяются в категорию задач поиска. При этом часто требуется найти параметры, обеспечивающие максимальное значение некой математической функции. В этом случае поиск называется оптимизацией.
Об этом говорил еще Дарвин
Чаще других для решения задач поиска применяется метод эволюционных вычислений. При этом происходит оптимизация значений функций различной сложности, подобно тому как живые организмы эволюционируют, чтобы повысить выживаемость в окружающей среде.
Идею эволюционных вычислений предложил исследователь Джон Холланд в 1975 году в своей книге «Адаптация в естественных и искусственных системах» (Adaptation in Natural and Artificial Systems). Позднее западные ученые обнаружили, что немецкие инженеры уже использовали подобные стратегии для оптимизации формы сопл первых реактивных двигателей самолетов во время Второй мировой войны. Эволюционные вычисления охватывают широкий спектр методов и алгоритмов, целиком основанных на законах естественной эволюции, предложенных Дарвином. Согласно его законам, лучше всего к жизни в определенной среде подготовлены особи, которые демонстрируют более высокую выживаемость и, как следствие, оставляют больше потомства.
В этой аналогии с законами естественной эволюции особям соответствуют возможные решения задачи. Эволюционные алгоритмы сначала оценивают пригодность каждой «особи», а затем определяют, каким будет их «потомство» — второе поколение решений. В ходе итеративного процесса особи из последующих поколений оцениваются, отбираются и скрещиваются между собой, формируя новые поколения особей. Этот процесс заканчивается после выполнения установленных для задачи критериев останова. Таким образом, любой эволюционный алгоритм состоит из пяти основных этапов: инициализации, оценки, отбора, размножения и замещения, как показано на следующей схеме.