Формального определения критерия универсальности в структурах данных не существует. Однако основываясь на существующих практиках и теориях, можно вывести такой критерий. Основными принципами управления данными являются возможность хранения единичных и массовых данных, а также возможность хранения связанных данных. Производными требованиями к структурам данных является контроль целостности над связанными данными (контроль на разрыв связей и на согласованность данных), а также возможность поддержки сложных и упакованных (в некоторые структуры) данных.
Крайним примером статичности информации является выбитая в камне надпись. Физическая сущность носителя таких данных гарантирует его долговечность и неизменность. Максимальную гибкость в структуре данных мы стремимся получить через лёгкость изменения данных и через простоту в определении структур данных. Для надписей структурой является естественный язык, в информационных системах структура данных определяется платформой – языком программирования (типы данных), аппаратной структурой (например, размер машинного слова), реализацией языка программирования (различные виды языка Basic определяют различный размер для типа int), СУБД и пр.
Поскольку мы делаем упор на данные, мы должны обратить внимание на три важные составляющие, связанные с ними – хранение, извлечение и запись, обработка и обмен (коммуникация). Для передачи данных с их предварительной упаковкой используется языка разметки XML и JSON, который дает возможность «завернуть» всё, что угодно. Для хранения большого объема данных со сложной структурой обычно используется СУБД (системах управления базами данных) на основе реляционной модели данных либо, что реже, базы данных, основывающиеся на иных моделях данных. Для обработки данных используется несчетное множество программных технологий – языков, платформ, framework’ов, библиотек и т. п.
Предопределенная (априорная) информация агента
Любая программа предполагает определенный сценарий или несколько сценариев выполнения операций и действий. Например, в программах управления персоналом одним из сценариев является ввод данных о сотруднике, ввод данных о позициях штатного расписания, прием сотрудника на работу.
Если мы рассматриваем агент как некоторый универсум, как решение, которое может работать с различными структурами данных и реализовывать различные алгоритмы, то одним из важных вопросов является «с чего начать?».
Часто дети говорят «я умею всё». Под этим они подразумевают, что потенциально они могут научиться любому умению, впитать любое знание. Однако практически у них нет никаких жизненных навыков. Они действительно могут научиться, но еще пока ничему не научились. У них есть потенциал, но пока нет знаний.
С другой стороны, существует понятие априорных данных, когда система заведомо обладает определенным набором данных, а не только структурами данных. У людей обычно такие предопределенные знания называются генетической памятью.
Таким образом, интеллектуальная система также должна иметь некоторые предопределенные алгоритмы и данные. Прежде всего, такие предопределенные алгоритмы касаются обмена информацией с другими агентами. Кроме того, это встроенный интерфейс для получения данных, для вывода данных и для инициации выполнения заданий.
Парадокс Рассела для операций, автогенерация кода
Обсуждение автогенерации кода начнем с описания парадокса Рассела, хорошо известного в теории множеств: пусть К – множество всех множеств, которые не содержат себя в качестве своего элемента. Содержит ли К само себя в качестве элемента? Обычно этот парадокс иллюстрируется несколькими, насколько занимательными, настолько и абсурдными задачами:
Парадокс брадобрея: деревенскому брадобрею приказали брить всякого, кто не бреется сам и не брить того, кто бреется сам. Может ли брадобрей брить самого себя?
Парадокс мэра: в стране вышел указ о том, что мэры городов должны жить не в своем городе, а в специальном городе мэров. Может ли мэр города мэров жить в городе мэров?
Парадокс Рассела сам по себе неразрешим из-за самой постановки задачи, поскольку он ссылается на множество всех не включающих себя множеств, то есть в задачах противоречие задаётся аксиоматически, в самом определении. Чтобы свести математический взгляд на вещи к естественному, и если хотите, к бытовому понимаю, сравним этот парадокс с парадоксом всемогущества: попросите всемогущего сделать камень, который он не сможет поднять. Если получится, значит его всемогущество утратило силу, а если нет – то он и не был всемогущ.
Читать дальше