Открыть сервис

Обычные формы

Обычные формы — в математике и информатике способ представления математических выражений, логических формул, графов или других структур данных, при котором они приводятся к единому стандартному виду. Обычные формы используются для упрощения анализа, сравнения, минимизации и оптимизации объектов, а также для обеспечения однозначности их записи. В зависимости от области применения различают обычные формы для логических выражений (дизъюнктивные и конъюнктивные), для графов (канонические формы), для чисел (стандартная форма записи) и для баз данных (нормальные формы).

История

Понятие обычной формы восходит к работам по математической логике XIX века. Джордж Буль в своих трудах «Математический анализ логики» (1847) и «Исследование законов мышления» (1854) заложил основы булевой алгебры, в которой впервые были формализованы дизъюнктивные и конъюнктивные нормальные формы. В 1920-х годах Эмиль Пост и другие логики развили теорию нормальных форм для исчисления высказываний.

В середине XX века, с развитием компьютерных наук, обычные формы стали применяться в теории автоматов, компиляторах и базах данных. Эдгар Кодд в 1970 году предложил реляционную модель данных и ввёл понятие нормальных форм (первая, вторая, третья и т. д.) для устранения избыточности и аномалий при операциях с данными. В теории графов канонические формы стали использоваться для проверки изоморфизма графов и их классификации.

Классификация обычных форм

Обычные формы классифицируются по области применения и типу объектов, которые они нормализуют.

Логические обычные формы

В булевой алгебре и цифровой логике выделяют две основные обычные формы:

  • Дизъюнктивная нормальная форма (ДНФ) — логическое выражение, представленное в виде дизъюнкции (логического «ИЛИ») одного или нескольких конъюнктов (логических «И»). Каждый конъюнкт содержит литералы (переменные или их отрицания). Пример: \((x \land y) \lor (\lnot x \land z)\).
  • Конъюнктивная нормальная форма (КНФ) — логическое выражение, представленное в виде конъюнкции (логического «И») одного или нескольких дизъюнктов (логических «ИЛИ»). Пример: \((x \lor y) \land (\lnot x \lor z)\).

Эти формы используются в алгоритмах минимизации логических схем, в задачах выполнимости (SAT) и в автоматическом доказательстве теорем. Существуют также совершенные формы (СДНФ и СКНФ), в которых каждая элементарная конъюнкция или дизъюнкция включает все переменные выражения.

Нормальные формы в базах данных

В реляционных базах данных нормальные формы (НФ) определяют требования к структуре таблиц для минимизации избыточности и аномалий обновления. Основные нормальные формы:

  • Первая нормальная форма (1НФ) — каждая ячейка таблицы содержит только атомарное (неделимое) значение, а все записи в столбце имеют одинаковый тип данных.
  • Вторая нормальная форма (2НФ) — таблица находится в 1НФ, и каждый неключевой атрибут функционально полно зависит от первичного ключа (отсутствие частичной зависимости).
  • Третья нормальная форма (3НФ) — таблица находится в 2НФ, и каждый неключевой атрибут нетранзитивно зависит от первичного ключа (отсутствие транзитивной зависимости).
  • Нормальная форма Бойса — Кодда (НФБК) — усиленная версия 3НФ, в которой каждая детерминанта является потенциальным ключом.
  • Четвёртая нормальная форма (4НФ) — таблица находится в НФБК и не содержит многозначных зависимостей, не являющихся функциональными.
  • Пятая нормальная форма (5НФ) — таблица находится в 4НФ и не содержит зависимостей соединения, не являющихся ключевыми.

Нормальные формы применяются при проектировании баз данных для обеспечения целостности и эффективности запросов.

Канонические формы в теории графов

В теории графов обычные формы (канонические) используются для однозначного представления графов с точностью до изоморфизма. Примеры:

  • Каноническая форма графа — уникальная нумерация вершин, при которой матрица смежности или список рёбер принимает стандартный вид. Алгоритмы вычисления канонической формы (например, алгоритм Маккея) применяются для проверки изоморфизма графов.
  • Нормальная форма дерева — для корневых деревьев существует каноническая форма, основанная на лексикографическом порядке поддеревьев. Используется в комбинаторике и биоинформатике для классификации филогенетических деревьев.

Стандартная форма записи чисел

В математике и физике обычная форма (стандартная, или научная) используется для записи очень больших или очень малых чисел. Число представляется в виде \(a \times 10^n\), где \(1 \leq |a| < 10\) и \(n\) — целое число. Например, \(3,14 \times 10^5\) (стандартная форма числа 314000). Эта форма упрощает сравнение и арифметические операции с числами разного порядка.

Применение обычных форм

Обычные формы находят применение в различных областях науки и техники.

В цифровой электронике

В проектировании цифровых схем ДНФ и КНФ используются для синтеза комбинационных логических схем. Алгоритмы минимизации (например, карты Карно или метод Куайна — Мак-Класки) позволяют уменьшить количество логических элементов, что снижает стоимость и энергопотребление устройств.

В компиляторах и верификации

В компиляторах обычные формы применяются для оптимизации кода. Например, приведение выражений к нормальной форме позволяет обнаруживать общие подвыражения и устранять избыточные вычисления. В верификации программ и аппаратуры КНФ используется для кодирования задач выполнимости (SAT), которые решаются SAT-солверами для проверки корректности схем.

В базах данных

Нормальные формы являются основой реляционного проектирования. Приведение таблиц к 3НФ или НФБК позволяет избежать аномалий вставки, обновления и удаления данных, а также уменьшить объём хранимой информации за счёт устранения дублирования.

В теории алгоритмов и графов

Канонические формы графов используются в задачах распознавания изоморфизма, в химической информатике для представления молекулярных структур (например, SMILES — каноническая форма записи молекул), а также в анализе социальных сетей.

Критика и ограничения

Несмотря на широкое применение, обычные формы имеют ограничения. В логике приведение выражений к ДНФ или КНФ может привести к экспоненциальному росту размера формулы (проблема взрыва). В базах данных строгая нормализация может увеличить количество таблиц и усложнить запросы, что иногда снижает производительность. В теории графов вычисление канонической формы для больших графов может быть вычислительно сложным (NP-трудным в общем случае). Поэтому на практике часто используют приближённые или эвристические методы.

Интересные факты

  • В 1970-х годах для решения задачи выполнимости в КНФ был разработан алгоритм DPLL (Дэвис — Патнем — Ловленд — Логеман), ставший основой современных SAT-солверов.
  • В реляционных базах данных существует более десяти нормальных форм, включая доменно-ключевую нормальную форму (ДКНФ) и шестую нормальную форму (6НФ), используемую в темпоральных базах данных.
  • Каноническая форма графа применяется в программе nauty (nauty and Traces), которая используется для генерации и классификации графов в математических исследованиях.

Источники

  • Буль, Дж. «Математический анализ логики» (1847).
  • Кодд, Э. Ф. «A Relational Model of Data for Large Shared Data Banks» (1970).
  • Маккей, Б. Д. «Practical Graph Isomorphism» (1981).
  • Хопкрофт, Дж., Мотвани, Р., Ульман, Дж. «Введение в теорию автоматов, языков и вычислений» (2001).
  • Кнут, Д. Э. «Искусство программирования», том 4А (2011).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →