В математике лексикографический или лексикографический порядок (также известный как лексический порядок или порядок словаря ) представляет собой обобщение алфавитного порядка словарей до последовательностей упорядоченных символов или, в более общем смысле, элементов полностью упорядоченного множества .
Существует несколько вариантов и обобщений лексикографического упорядочения. Один вариант применяется к последовательностям разной длины путем сравнения длин последовательностей перед рассмотрением их элементов.
Другой вариант, широко используемый в комбинаторике , упорядочивает подмножества заданного конечного множества , присваивая конечному множеству общий порядок и преобразуя подмножества в возрастающие последовательности , к которым применяется лексикографический порядок.
Обобщение определяет порядок n -арного декартова произведения частично упорядоченных множеств ; этот порядок является полным порядком тогда и только тогда, когда все факторы декартова произведения полностью упорядочены.
Слова в лексиконе (наборе слов, используемых в каком-либо языке) имеют общепринятый порядок, используемый в словарях и энциклопедиях , который зависит от базового порядка алфавита символов, используемых для построения слов. Лексикографический порядок — это один из способов формализации порядка слов с учетом порядка базовых символов.
Формальное понятие начинается с конечного множества A , часто называемого алфавитом , которое полностью упорядочено . То есть для любых двух символов a и b в A , которые не являются одним и тем же символом, либо a < b, либо b < a .
Слова A — это конечные последовательности символов из A , включая слова длины 1, содержащие один символ, слова длины 2 с 2 символами и т. д., включая даже пустую последовательность без символов вообще. Лексикографический порядок на множестве всех этих конечных слов упорядочивает слова следующим образом:
Однако в комбинаторике часто используется другое соглашение для второго случая, согласно которому более короткая последовательность всегда меньше более длинной. Этот вариант лексикографического порядка иногда называют порядком shortlex .
В лексикографическом порядке слово «Томас» появляется перед «Томпсон», потому что они впервые различаются на пятой букве («а» и «р»), а буква «а» стоит перед буквой «р» в алфавите. Поскольку это первое различие, в этом случае пятая буква является «наиболее существенным различием» для алфавитного порядка.
Важным свойством лексикографического порядка является то, что для каждого n множество слов длины n вполне упорядочено лексикографическим порядком (при условии, что алфавит конечен); то есть каждая убывающая последовательность слов длины n конечна (или, что эквивалентно, каждое непустое подмножество имеет наименьший элемент). [1] [2] Неверно, что множество всех конечных слов вполне упорядочено; например, бесконечное множество слов {b, ab, aab, aaab, ... } не имеет лексикографически самого раннего элемента.
Лексикографический порядок используется не только в словарях, но и обычно для чисел и дат.
Одним из недостатков римской системы счисления является то, что не всегда сразу очевидно, какое из двух чисел меньше. С другой стороны, с позиционной записью индо -арабской системы счисления сравнивать числа легко, потому что естественный порядок натуральных чисел совпадает с вариантом shortlex лексикографического порядка. Фактически, с позиционной записью натуральное число представляется последовательностью числовых цифр , и натуральное число больше другого, если либо оно имеет больше цифр (игнорируя ведущие нули), либо количество цифр одинаковое, а первая (самая значимая) цифра, которая отличается, больше.
Для действительных чисел, записанных в десятичной системе счисления , используется немного другой вариант лексикографического порядка: части слева от десятичной точки сравниваются, как и прежде; если они равны, части справа от десятичной точки сравниваются с лексикографическим порядком. Заполнение 'blank' в этом контексте представляет собой конечную цифру "0".
Если также рассматриваются отрицательные числа, то для сравнения отрицательных чисел необходимо изменить порядок. Обычно это не проблема для людей, но может быть проблемой для компьютеров (проверка знака занимает некоторое время). Это одна из причин принятия представления в виде дополнения до двух для представления целых чисел со знаком в компьютерах.
Другой пример несловарного использования лексикографического упорядочения появляется в стандарте ISO 8601 для дат, который выражает дату как YYYY-MM-DD. Эта схема форматирования имеет преимущество в том, что лексикографический порядок последовательностей символов, представляющих даты, совпадает с хронологическим порядком : более ранняя дата CE меньше в лексикографическом порядке, чем более поздняя дата до 9999 года. Такое упорядочение дат упрощает компьютерную сортировку дат, избегая необходимости в отдельном алгоритме сортировки.
Моноид слов над алфавитом A — это свободный моноид над A . То есть, элементы моноида — это конечные последовательности (слова) элементов A (включая пустую последовательность длины 0), а операция (умножение) — это конкатенация слов . Слово u является префиксом (или «усечением») другого слова v , если существует слово w такое, что v = uw . Согласно этому определению, пустое слово ( ) является префиксом каждого слова, а каждое слово является префиксом самого себя (с w ); необходимо соблюдать осторожность, если эти случаи должны быть исключены.
С этой терминологией приведенное выше определение лексикографического порядка становится более кратким: если задано частично или полностью упорядоченное множество A и два слова a и b над A, такие, что b непусто, то a < b в лексикографическом порядке, если выполняется хотя бы одно из следующих условий:
Обратите внимание, что из-за префиксного условия в этом определении, где находится пустое слово.
Если является полным порядком на , то таким же является и лексикографический порядок на словах Однако, в общем случае это не вполне порядок , даже если алфавит вполне упорядочен. Например, если A = { a , b } , язык { a n b | n ≥ 0, b > ε } не имеет наименьшего элемента в лексикографическом порядке: ... < aab < ab < b .
Поскольку многие приложения требуют хорошо упорядоченных слов, часто используется вариант лексикографических порядков. Этот хорошо упорядоченный, иногда называемый shortlex или квазилексикографическим порядком , состоит в том, чтобы сначала рассмотреть длины слов (если length( a ) < length( b ) , то ), и, если длины равны, использовать лексикографический порядок. Если порядок на A является хорошо упорядоченным, то же самое верно и для shortlex порядка. [2] [3]
Лексикографический порядок определяет порядок на n -арном декартовом произведении упорядоченных множеств, который является полным порядком, когда все эти множества сами полностью упорядочены. Элемент декартова произведения — это последовательность, чей элемент принадлежит для каждого Поскольку при оценке лексикографического порядка последовательностей сравниваются только элементы, имеющие одинаковый ранг в последовательностях, лексикографический порядок распространяется на декартовы произведения упорядоченных множеств.
В частности, даны два частично упорядоченных множества илексикографический порядок декартова произведения определяется как
Результатом является частичный порядок. Если и полностью упорядочены , то результатом также является полный порядок. Таким образом, лексикографический порядок двух полностью упорядоченных множеств является линейным расширением их порядка произведения .
Аналогично можно определить лексикографический порядок на декартовом произведении бесконечного семейства упорядоченных множеств, если семейство индексировано натуральными числами , или, в более общем смысле, вполне упорядоченным множеством. Этот обобщенный лексикографический порядок является полным порядком, если каждое фактор-множество полностью упорядочено.
В отличие от конечного случая, бесконечное произведение вполне порядков не обязательно вполне упорядочено лексикографическим порядком. Например, множество счетно бесконечных двоичных последовательностей (по определению, множество функций от натуральных чисел до , также известное как пространство Кантора ) не является вполне упорядоченным; подмножество последовательностей, которые имеют ровно один (то есть, { 100000..., 010000..., 001000..., ... } ), не имеет наименьшего элемента в лексикографическом порядке, индуцированном , поскольку 100000... > 010000... > 001000... > ... является бесконечной нисходящей цепью . [1] Аналогично, бесконечное лексикографическое произведение также не является нётеровым , поскольку 011111... < 101111... < 110111 ... < ... является бесконечной восходящей цепью.
Функции от вполне упорядоченного множества до полностью упорядоченного множества можно идентифицировать с помощью последовательностей, индексированных по элементам из Таким образом, они могут быть упорядочены в лексикографическом порядке, а для двух таких функций и лексикографический порядок, таким образом, определяется их значениями для наименьшего из таких, что
Если также вполне упорядочен и конечен, то полученный порядок является вполне упорядоченным. Как показано выше, если бесконечно, то это не так.
В комбинаторике часто приходится перечислять, а значит, и упорядочивать конечные подмножества заданного множества Для этого обычно выбирают порядок на Тогда сортировка подмножества эквивалентна преобразованию его в возрастающую последовательность. Лексикографический порядок на полученных последовательностях индуцирует, таким образом, порядок на подмножествах, который также называется лексикографическим порядком .
В этом контексте обычно предпочитают сначала сортировать подмножества по кардинальности , например, в порядке shortlex . Поэтому в дальнейшем мы будем рассматривать только порядки подмножеств фиксированной кардинальности.
Например, используя естественный порядок целых чисел, лексикографическое упорядочение подмножеств из трех элементов имеет вид
Для упорядочения конечных подмножеств заданной мощности натуральных чисел часто удобнее использовать колексикографический порядок (см. ниже), поскольку все начальные сегменты конечны, и, таким образом, колексикографический порядок определяет изоморфизм порядка между натуральными числами и множеством множеств натуральных чисел. Это не относится к лексикографическому порядку, поскольку в случае лексикографического порядка мы имеем, например, для каждого
Пусть будет свободной абелевой группой ранга , элементы которой являются последовательностями целых чисел, а операция — сложением . Порядок группы на — это полный порядок , совместимый со сложением, то есть
Лексикографический порядок — это групповой порядок по
Лексикографический порядок может также использоваться для характеристики всех групповых порядков на [4] [5] Фактически, линейные формы с действительными коэффициентами определяют отображение из в которое является инъективным, если формы линейно независимы (оно может быть также инъективным, если формы зависимы, см. ниже). Лексикографический порядок на изображении этого отображения индуцирует групповой порядок на Теорема Роббиано заключается в том, что каждый групповой порядок может быть получен таким образом.
Точнее, для заданного порядка группы на существуют целочисленная и линейная формы с действительными коэффициентами, такие, что индуцированное отображение из в обладает следующими свойствами:
Колексикографический или колексный порядок — это вариант лексикографического порядка, который получается путем чтения конечных последовательностей справа налево вместо чтения их слева направо. Точнее, тогда как лексикографический порядок между двумя последовательностями определяется как
колексикографический порядок определяется
В целом, разница между колексикографическим и лексикографическим порядками не очень существенна. Однако при рассмотрении возрастающих последовательностей, как правило, для кодирования подмножеств, два порядка существенно различаются.
Например, для упорядочения возрастающих последовательностей (или наборов) двух натуральных чисел лексикографический порядок начинается с
и колексикографический порядок начинается с
Основное свойство колексикографического порядка для возрастающих последовательностей заданной длины заключается в том, что каждый начальный сегмент конечен. Другими словами, колексикографический порядок для возрастающих последовательностей заданной длины индуцирует изоморфизм порядка с натуральными числами и позволяет перечислять эти последовательности. Это часто используется в комбинаторике , например, в доказательстве теоремы Крускала–Катоны .
При рассмотрении многочленов порядок членов в общем случае не имеет значения, так как сложение коммутативно. Однако некоторые алгоритмы , такие как деление многочленов в столбик , требуют, чтобы члены были в определенном порядке. Многие из основных алгоритмов для многомерных многочленов связаны с базисами Грёбнера , концепцией, которая требует выбора порядка монома , то есть полного порядка , который совместим с моноидной структурой мономов . Здесь «совместимый» означает, что если операция моноида обозначена мультипликативно. Эта совместимость подразумевает, что произведение многочлена на моном не меняет порядок членов. Для базисов Грёбнера должно быть выполнено еще одно условие, а именно , что каждый непостоянный моном больше монома 1. Однако это условие не требуется для других связанных алгоритмов, таких как алгоритмы для вычисления касательного конуса .
Поскольку базисы Грёбнера определяются для полиномов с фиксированным числом переменных, обычно мономы (например , ) отождествляют с их векторами экспонент (здесь [1, 3, 0, 1, 2] ). Если n — число переменных, то каждый порядок монома является ограничением на порядка монома (см. выше § Порядки групп для классификации).
Одним из таких допустимых порядков является лексикографический порядок. Исторически он был первым, который использовался для определения базисов Грёбнера, и иногда его называют чистым лексикографическим порядком, чтобы отличать его от других порядков, которые также связаны с лексикографическим порядком.
Другой состоит в сравнении сначала общих степеней , а затем разрешении конфликтов с использованием лексикографического порядка. Этот порядок не так широко используется, так как и лексикографический порядок, и обратный лексикографический порядок степени имеют, как правило, лучшие свойства.
Обратный лексикографический порядок степени также состоит в сравнении сначала общих степеней, и, в случае равенства общих степеней, в использовании обратного колексикографического порядка. То есть, если даны два вектора экспонент, то имеем, если либо или
Для этого упорядочения одночлены первой степени имеют тот же порядок, что и соответствующие неопределенные члены (это было бы не так, если бы использовался обратный лексикографический порядок). Для сравнения одночленов от двух переменных той же общей степени этот порядок совпадает с лексикографическим порядком. Это не относится к большему количеству переменных. Например, для экспоненциальных векторов одночленов второй степени от трех переменных для степени имеем обратный лексикографический порядок:
Для лексикографического порядка те же векторы экспоненты упорядочиваются следующим образом:
Полезным свойством обратного лексикографического порядка степени является то, что однородный многочлен является кратным наименьшей неопределенности тогда и только тогда, когда его ведущий одночлен (его больший одночлен) является кратным этой наименьшей неопределенности.