Научная статья на тему 'О НЕСУЩЕСТВОВАНИИ ПРОСТОГО ВАРИАНТА ПОЛИНОМИАЛЬНОГО АЛГОРИТМА ИЗВЛЕЧЕНИЯ КОРНЯ ИЗ ЯЗЫКА'

О НЕСУЩЕСТВОВАНИИ ПРОСТОГО ВАРИАНТА ПОЛИНОМИАЛЬНОГО АЛГОРИТМА ИЗВЛЕЧЕНИЯ КОРНЯ ИЗ ЯЗЫКА Текст научной статьи по специальности «Математика»

CC BY
0
0
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
формальные языки / конкатенация языков / степень языка / корень из языка / полиномиальные алгоритмы / formal languages / concatenation of languages / degree of the language / root of the language / polynomial algorithms

Аннотация научной статьи по математике, автор научной работы — Мельников Борис Феликсович

Для стандартной операции конкатенации слов, рассматриваемой как умножение, естественным образом определяется конкатенация языков, а на основе последней операции – степень языка и, при наличии, корень заданной степени. При описании алгоритмов построения языка, являющегося корнем степени M из заданного языка, большое значение имеют так называемые потенциальные корни: это такие слова (не языки), рассматриваемая M-я степень которых входит в заданный язык. Несложно показать, что все потенциальные корни для заданного языка строятся с помощью полиномиального алгоритма. Эта задача, по-видимому, не упрощается при рассмотрении слов и языков над 1-буквенным алфавитом — что и делается в настоящей статье. Табуированная пара потенциальных корней — это такая пара, конкатенация слов которой в язык не входит. В предыдущих публикациях на тему описания алгоритмов извлечения корней из языка возникала гипотеза, что полиномиальный алгоритм извлечения корня из языка может быть описан на основе рассмотрения только множества табуированных пар — путем перебора специально описываемых подмножеств множества потенциальных корней. В настоящей статье показывается, что подобный алгоритм (называемый «простым») невозможен, т. е. если и существует полиномиальный алгоритм извлечения корня из языка, то он (алгоритм) должен использовать некоторую дополнительную информацию.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ON THE NON-EXISTENCE OF A SIMPLE VERSION OF THE POLYNOMIAL ALGORITHM FOR EXTRACTING THE ROOT FROM THE LANGUAGE

For the usual operation of concatenation of words considered as multiplication, the concatenation of languages is obviously determined, and on the basis of the last operation, the degree of the language and the root of a given degree (if available) is determined. When describing algorithms for constructing a language that is a root of degree M from a given language, so called potential roots are of great importance: these are the words (not the languages) whose considered M-th degree is included in a given language. It is easily to show that all potential roots for a given language are constructed using a polynomial algorithm. This task, apparently, is not simplified when considering words and languages over the 1-letter alphabet, which is done in this paper. So called taboo pair of potential roots is a pair whose word concatenation is not included in the language. In previous publications on the topic of describing algorithms for extracting roots from a language, the hypothesis arose that a polynomial algorithm for extracting a root from a language can be described on the basis of considering the set of taboo pairs only, by iterating over specially described subsets of the set of potential roots. This paper shows, that such an algorithm (called “simple”) is impossible, i.e., if there is a polynomial algorithm for extracting the root from the language, then this algorithm must use some additional information.

Текст научной работы на тему «О НЕСУЩЕСТВОВАНИИ ПРОСТОГО ВАРИАНТА ПОЛИНОМИАЛЬНОГО АЛГОРИТМА ИЗВЛЕЧЕНИЯ КОРНЯ ИЗ ЯЗЫКА»

УДК 519.766, 519.1, 519.713.1, 519.713.2 DOI: 10.14529/cmse240103

О НЕСУЩЕСТВОВАНИИ ПРОСТОГО ВАРИАНТА ПОЛИНОМИАЛЬНОГО АЛГОРИТМА ИЗВЛЕЧЕНИЯ КОРНЯ ИЗ ЯЗЫКА

© 2024 Б.Ф. Мельников

Совместный университет МГУ-ППИ в Шэнъчжэне (Китай, 518172, провинция Гуандун, Шэнъчжэнъ, район Лунган, Даюнъсиньчэн, ул. Гоцзидасюеюанъ, д. 1) E-mail: bormel@mail.ru Поступила в редакцию: 07.10.2023

Для стандартной операции конкатенации слов, рассматриваемой как умножение, естественным образом определяется конкатенация языков, а на основе последней операции - степень языка и, при наличии, корень заданной степени. При описании алгоритмов построения языка, являющегося корнем степени М из заданного языка, большое значение имеют так называемые потенциальные корни: это такие слова (не языки), рассматриваемая М-я степень которых входит в заданный язык. Несложно показать, что все потенциальные корни для заданного языка строятся с помощью полиномиального алгоритма. Эта задача, по-видимому, не упрощается при рассмотрении слов и языков над 1-буквенным алфавитом — что и делается в настоящей статье. Табуированная пара потенциальных корней — это такая пара, конкатенация слов которой в язык не входит. В предыдущих публикациях на тему описания алгоритмов извлечения корней из языка возникала гипотеза, что полиномиальный алгоритм извлечения корня из языка может быть описан на основе рассмотрения только множества табуированных пар — путем перебора специально описываемых подмножеств множества потенциальных корней. В настоящей статье показывается, что подобный алгоритм (называемый «простым») невозможен, т. е. если и существует полиномиальный алгоритм извлечения корня из языка, то он (алгоритм) должен использовать некоторую дополнительную информацию.

Ключевые слова: формальные языки, конкатенация языков, степень языка, корень из языка, полиномиальные алгоритмы.

ОБРАЗЕЦ ЦИТИРОВАНИЯ

Мельников Б.Ф. О несуществовании простого варианта полиномиального алгоритма извлечения корня из языка // Вестник ЮУрГУ. Серия: Вычислительная математика и информатика. 2024. Т. 13, № 1. С. 38-56. DOI: 10.14529/cmse240103.

Введение

Настоящую статью можно рассматривать как продолжение [1]. В ней (а также в более ранней статье [2]) рассматривалась задача извлечения корня из заданного языка.

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

В = {е, а, а2, а3, а4}

равен

_А = В2 = {£,а,а2,...,а7,а8},_

38 Вестник ЮУрГУ. Серия «Вычислительная математика и информатика»

и из языка А извлекается не только корень В, но и

В' = {е,а,а3,а4}.

Повторим информацию, уже приведенную в [1], более подробно. Несмотря на простоту формулировки задачи, автор не смог найти в литературе (а также в Интернете) какого-либо ее описания, в том числе даже ее постановки. Но, несмотря на это, возникает впечатление, что весь материал [1] и настоящей статьи является очень легким, и вызывает недоумение тот факт, что в известных автору монографиях нет хотя бы формулировок подобных задач.

Вообще, всюду в настоящей статье будет рассматриваться случай 1-буквенного алфавита и 2-й степени для корня; при этом на основе материала статьи [1] создается впечатление, что получаемые при таком упрощении результаты на более сложные ситуации обобщаются всегда; но, конечно, строго доказать сформулированное в этом абзаце предположение вряд ли возможно.

Задачу извлечения корня можно рассматривать в нескольких вариантах (см. подробности далее) — но в статье будет рассматриваться задача построения за полиномиальное время хотя бы одного подходящего корня. При этом, конечно, всюду в настоящей статье полиномиальность понимается относительно размера входных данных — что в нашей ситуации можно считать суммарной длиной слов заданного языка (в примере выше — А).

Для формулировки результатов очень важно понятие «потенциальный корень» — и, в отличие от корня (являющегося языком), последний объект является словом: потенциальные корни нужной степени для заданного языка А — это те слова, у которых такая степень принадлежит языку А. Множество потенциальных корней строится за полиномиальное время; отметим, что это не очень сложное утверждение — однако тривиальным его назвать нельзя: алгоритмы, решающие эту задачу «в лоб», полиномиальными не являются, а полинмиальность похожих алгоритмов была показана, например, в [3].

А экспоненциальные алгоритмы извлечения корня из языка описываются тривиальным образом: надо просто перебрать все подмножества множества потенциальных корней. К последнему стоит добавить, что при наличии проверяемого множества потенциальных корней — в литературе алгоритм его выбора часто называется оракулом, [4—8] и др. — саму проверку того, является ли рассматриваемое подмножество корнем нужной степени, можно выполнить за полиномиальное время. Отметим еще, что в отличие от предыдущей проверки, полиномиальность этой проверки очевидна. Однако при этом надо осознавать, что степень полинома не может не зависеть от требуемой в задаче степени для извлечения корня.

Потенциальные корни используются и в другом классе задач — по-видимому, более сложном, чем задачи извлечения корня из языка. Это — задачи, которые условно можно назвать «раскодированием», или «построением инверсного морфизма», см. [3] и ссылки из этой работы. При этом, несмотря на большую сложность задач «раскодирования», описать полиномиальный алгоритм построения инверсного морфизма — при некотором специально сделанном предположении теории формальных языков, — в отличие от рассматриваемой здесь задачи извлечения корня из языка, уже удалось.

Итак, полный перебор всех подмножеств множества потенциальных корней ("brute-force algorithm") считается невозможным. Но основным результатом статьи [1] была теорема о том, что если известен некоторый корень, то при выполнении специальных несложных условий к этому корню (как к подмножеству) можно добавить еще один потенциальный

корень (как элемент); заранее отметим, что далее в настоящей статье будет приведено более подробное доказательство этой теоремы. Поэтому может возникнуть предположение, что можно осуществить следующую схему алгоритма:

• некоторым образом описать все такие подмножества множества потенциальных корней, к которым заведомо нельзя добавить ни одного нового элемента (еще одного потенциального корня);

• проверить все такие подмножества: не является ли какое-либо из них корнем, —

и все это должно дать решение основной задачи (т.е. построение полиномиального алгоритма извлечения корня). Однако основной предмет настоящей статьи заключается в том, что

подобные простые действия не могут привести к желаемому описанию полиномиального алгоритма,

поскольку существуют примеры (и они ниже описаны), в которых число подмножеств, необходимых для подобной проверки, от размерности задачи зависит экспоненциально. Но важно отметить, что при этом вовсе

не утверждается несуществование полиномиального алгоритма

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

Отметим еще, что предмет настоящей статьи может быть охарактеризован и по-другому: в ней формулируются те утверждения, которые можно получить рассмотрением только таких пар потенциальных корней, оба элемента которых не могут одновременно входить в решение задачи.

Приведем содержание статьи по разделам. Раздел 1 — предварительные сведения и обо-значния, частично стандартные, а частично введенные ранее в предыдущих публикациях. Специальные обозначения, связанные с гиперкубами, вынесены в отдельный подраздел 1.2\ там же приведены и соответствующие примеры.

В разделе 2 приводится дополненное доказательство теоремы о возможном увеличении одной координаты имеющегося корня: в опубликованном в [1] варианте доказательства этой теоремы не были рассмотрены все возможные ситуации.

Продолжение рассмотрения гиперкуба — применительно к N-мерному гиперкубу потенциальных корней — приведено в разделе 3. В основном, в этом разделе рассматриваются множество простых путей в этом гиперкубе — между «максимальной» и «минимальной» его вершинами. Уточняется формулировка гипотезы о множестве т. н. важных потенциальных корней.

В разделе 4 показывается возможность применение оптимизационных задач на графах — для решения некоторых подзадач, связанных с задачей извлечения корня из языка; в частности, рассматривается применение задачи 2-8АТ.

Основные результаты статьи приведены в разделе 5: показана возможность конструирование примеров на тему несуществования простого алгоритма извлечения корня степени 2 — причем примеров для сколь угодно большой (но заранее известной) размерности; как

и всюду в настоящей статье, простыми называются те алгоритмы, которые основаны лишь на информации о табуированных парах потенциальных корней.

В разделе 6 очень кратко рассмотрен частный случай для степени 3; при этом есть основания полагать, что на основе приведенного примера можно построить примеры для степени 3 сколь угодно большой (но, конечно, заранее известной) размерности — примеры, показывающие несуществование простого алгоритма извлечения корня 3-й степени.

В заключении повторены основные результаты статьи и приведены возможные направления дальнейших исследований по рассматриваемой тематике — описанию алгоритмов извлечения корня из заданного языка.

1. Теоретическиие основы 1.1. Общие обозначения

Приведем основные обозначения — частично стандартные, частично введенные ранее в [1], а частично новые.

Смысл слова «умножение» для всех рассматриваемых объектов — обычный для теории формальных языков: это просто результат произведения (приписывания, конкатенации) двух слов (двух языков). Для иллюстрации рассмотрим такой пример для 1-буквенного алфавита — основного объекта настоящей статьи: если

С = { а111 е I } и Б = { а? |; е I }

(I и ] — некоторые конечные подмножества целых неотрицательных чисел), то

С-В = {ак\(31е1,)Е }) Ос = г + Л}.

Слово «умножение» будем в дальнейшем применять без кавычек: в нашем случае оно обладает не только обычными полугрупповыми свойствами (которые практически всегда необходимы при рассмотрении моделей теории формальных языков), но и, дополнительно к ним, коммутативностью.

Среди конечных подмножеств множества целых неотрицательных чисел, рассматривавшихся в предыдущем абзаце, особую роль будут играть множества вида

{К,К+1,...,1--1,и для некоторых К,1_еМ, I. ^ К. (1)

Множество вида (1) будем обозначать записью К, 1_.

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

• Первое соглашение. Всюду далее, если не сказано иного, решается задача поиска языка X, являющегося корнем уравнения

Х2 = А, (2)

где язык А заранее задан. Отметим, что в [1] рассматривалось уравнение Xм = А для различных М ^ 2, а в настоящей статье в разделе 6 кратко рассматривается случай М = 3.

• При этом потенциальный корень — это некоторое слово и € 1*, такое что и2 € А. В отличие от них (т. е. слов) — множество (язык) X будем называть корнем (без прилагательного «потенциальный»), если выполнено условие (2). Как уже отмечалось, найти все потенциальные корни можно за полиномиальное время с помощью несложных алгоритмов.

• Второе соглашение: N — количество потенциальных корней, будем их нумеровать от 1 от N; можно сказать, что здесь используется «обычная индексация Паскаля».

• Третье соглашение. Если, как в приведенном во введении примере, «задача формируется» возведением во 2-ю степень некоторого языка (пусть это язык В; считаем что при решении получаем язык X), то представление этого языка (как множества, В или X) выполняем перечислением разрядов, от 0 до некоторого заданного п; здесь, наоборот, используется «индексация Си-подобных алгоритмических языков».

• Таким образом, размерность каждого из языков В и X равна тг + 1 — и можно рассматривать только такие ситуации, когда и старший, и младший разряды равны 1. При этом 2-й + 1 будет размерностью исходного языка А (т. е. для его задания нужно некоторым способом определить разряды от 0-го до 2п-го, причем также можно считать, что старший и младший разряды равны 1).

Для того, что выше названо «третьим соглашением», во всех случаях (т. е. как для А, так и для В / X) будут применяться 4 варианта обозначения множества слов:

• во-первых, «самый обычный»: например,

{ е=а°, а=а1, ааа=а3, аааааа=а6 } . (3)

А остальные три варианта записи (см. далее, они описаны в виде примеров) будут применяться как для подмножеств множества потенциальных корней, так и для нескольких элементов множества

{ е, а, аа,... ак_1, ак }

(при этом обычно будет либо К = и, либо К = 2п). Выше уже было сказано, что множество потенциальных корней считается зафиксированным, причем их число равно N. Будем также считать, что зафиксирована и их нумерация. Итак, приведем примеры других вариантов записи — для конкретного языка (3):

• [0 1 3 6] — множество используемых степеней записываем в квадратных скобках в порядке возрастания;

• 1001011 — двоичное число, в котором разряды предыдущего списка отмечены 1; разряды двоичного числа нумеруем начиная с 0 справа налево, каждые 10 разрядов (при наличии) отделяем небольшим пробелом;

• 75 — число, принадлежащее Мо, представляющее собой десятичную запись предыдущего пункта.

Как уже отмечалось, те же самые обозначения будут использоваться и для К = и при этом рассматриваются подмножества множества потенциальных корней; однако в этом случае разряды двоичного числа удобнее записывать слева направо и нумеровать начиная с 1. Например, пусть всего 5 элементов, а подмножество — {2,5}:

• [2 5], иногда просто 2 5, даже иногда 25 — неоднозначности это не вызовет; пустое множество обозначается обычно, т.е. 0;

• 01001; пустым множеством здесь является последовательность нулей;

• 9; пустое множество — 0.

Отметим, что что недоразумений (неоднозначности прочтения) в статье возникнуть не должно.

1.2. Обозначения и примеры, связанные с гиперкубами

В нескольких приведенных выше варантах записи уже были использованы подмножества; при этом подмножества множества потенциальных корней (напомним, что ранее сделано предположение о том, что число их равно будем рассматривать как вершины 1^-мерного гиперкуба. Определим несколько связанных с подобным гиперкубом вспомогательных понятий.

• Определение максимальной вершины гиперкуба естественное — это (1,1,...,1,1).

• Для дальнейшего — в случае рассмотрения задачи извлечения корня 2-й степени — часто будут использованы пары потенциальных корней; в частности, т. н. татуированные пары (о них подробности далее). Для примера — если:

— принимается «третье соглашение» (напомним, что для него возможен только случай 1-буквенного алфавита)

— и при этом рассматривается множество [0 1 2 3 6] (оно действительно будет подробно рассмотрено в примерах в дальнейшей части статьи),

— а пара — {2,6} (конечно, порядок элементов пары несущественен), то возможны еще и такие обозначения этой пары:

— 2,6 (это просто их по значениям); это то же самое, что и 6,2;

— фЪ,ф5 (это их по номерам, считаем номера начиная с 1).

• Для некоторой табуированной пары табуированная гиперплоскость — это такая N1— 2-мерная гиперплоскость N-мерного гиперкуба, для которой обе координаты элементов пары равны 1.

• Обобщением табуированной пары и табуированной гиперплоскости для степеней извлекаемого корня 3 более (продолжаем работать с 1 -буквенным алфавитом) являются гиперплоскости соответствующих размерностей — но мы, однако, в настоящей статье подробно эти вопросы рассматривать не будем, это нужно только для примера, кратко рассматривающегося в разделе 6. Однако уже здесь стоит отметить, что в случае болынйх размерностей (пусть к.) нужно рассматривать гиперплоскости не только размерности N—1с, но и больших размерностей: среди элементов подмножества множества потенциальных корней, необходимого для формирования одного элемента исходного языка, могут быть совпадающие потенциальные корни.

• Примеры обозначний для степени 3 —

2,5,6 и 2,6 .

В первом случае элементы, которых не должно быть в исходном языке — это

[6 9 10 12 13 14 16 17 18],

(поскольку каждый из элементов исходной табуированной тройки может входить в формируемую сумму более одного раза); а во втором случае —

[6 10 14 18].

• Отметим, что максимальная вершина этого гиперкуба входит в пересечение любого (ненулевого) количества любых табуированных гиперплоскостей — независимо от их размерностей (т. е. от размерности рассматриваемой задачи, иными словами — от степени извлекаемого корня).

• На рисунках будем изображать гиперкуб «в обычном виде» в тех случаях, когда он приводится полностью; иначе (в частности, при больших размерностях) будем необходимую его часть изображать как подграф графа булеана.

• Для некоторой точки гиперкуба (Ь1Ь2...Ь1Ч1) обозначение (Ъ, Ъ2 ... )+1<. означает вершину, полученной из предыдущей путем замены к-й координаты на 1.

Перейдем к уточнению непосредственной постановки решаемой задачи. Как отмечалось в [1] (и ранее в [9]), рассматривая для некоторого заданного конечного языка задачу извлечения корня заданной степени — либо максимально возможной степени — фактически имеется в виду не с одна задача, а целая группа задач, поскольку имеется несколько вариантов для требуемого ответа:

• найти любой (корень из языка);

• найти все

• найти минимальный (по некоторой метрике),

• и т. п.

Однако ниже всегда будет иметься в виду только задача построения любого корня.

Повторим рисунок из предыдущей статьи (ранее он был опубликован как [1, рис. 9]) — с некоторыми новыми комментариями.

Рис. 1. Подграф графа булеана размерности 13

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Как было сказано в [1], на рисунке показан подграф графа булеана размерности 13 со всеми квадратными корнями квадрата слова

1101011000111 [0 1 2 6 79 11 12] (6855).

Справа от элементов показаны уровни булеана — количества потенциальных корней, входящих (в качестве элементов) в рассматриваемый корень из языка. Сразу отметим, что всего

существует С®3 = 1287 вариантов подмножеств из 8 потенциальных корней, но лишь 10 из них являются квадратными корнями из заданного языка.

Также повторим в новых обозначениях пример с несколькими возможными корнями: у языка [0 1 2345678] имеется не только очевидный корень [0 1 2 3 4], но и корень [0 1 3 А]. Понятно, что конструировать подобные примеры совсем несложно — гораздо сложнее обратная операция, о ней в настоящей статье и идет речь.

В заключение раздела отметим, что существуют примеры, когда (квадратные) корни есть — но ближайший к максимальной вершине корень находится от нее на сколь угодно большом (но заданном заранее) расстоянии. В [1] такой пример был приведен для расстояния 4 — но при этом был приведен с опечаткой, одна из форм записи рассматриваемого языка (квадрат которого и поступает на вход задачи) — это

[0 1 4 6 8]

(в [1] была опечатка: ошибочно было указано [ 0 2 4 7 8 ], но при этом остальные возможные варианты записи рассматриваемого языка были приведены верно).

Более важно, что на основе такого примера для любого заданного I. 6 N можно построить пример языка, когда ближайший к максимальной вершине корень находится от нее на расстоянии 1 — в то время как общая размерность исходной задачи не превышает 2 • 1_. Эти примеры очень простые, поэтому не будем приводить их общего описания (т. е. описания для произвольного заданного 1), а рассмотрим только минимальный пример для следующего значения, 1 = 5 (как и ранее в [1], минимальность понимается для исходного значения, взятого для возведения в квадрат — причем именно этот квадрат подается на вход рассматриваемой задачи). Итак,

• язык, взятый для формирования примера, — 1363; в других вариантах записи его же получается

[0 1 46 8 10] или 10101010011;

тогда:

• его квадрат (считаем именно его исходным языком для этой задачи) —

101010101111111110111 (т.е. 1400823);

• потенциальные корни — [01 2345678910] (т. е. все возможные значения в заранее известном промежутке, здесь — от 0 от 10), в другой записи — 2047.

Перебором на компьютере можно убедиться, что на расстояниях от максимальной вершины от 0 до 4 корней нет; ближайший корень — [0 1 468 10], находящийся на расстоянии 5.

Вообще, приведенный ваше способ дает возможность конструировать такие примеры, в которых ближайший корень находится на любом заданном заранее расстоянии от максимальной вершины гиперкуба. При этом если расстояние должно быть равно 1, то размерность примера (т. е. значение максимального потенциального корня) равна, как несложно убедиться, 2 ■ 1_.

2. О возможном увеличении координаты имеющегося корня

В этом разделе приводится дополненное доказательство теоремы о возможном увеличении одной координаты имеющегося корня. Вариант теоремы был опубликован в [1] — однако приведенное там доказательство нельзя назвать полным. Конкретно: с формальной

точки зрения возможна такая ситуация, когда выбирается одно значение ii (i в обозначениях приведенного в [1] доказательства) — в то время как условие k, Í2 6 Т(А) выполняется не для ii, а для некоторого Í2 ф ii. Понятно, что конкретных примеров в принципе привести невозможно — поскольку доказательство теоремы ведется от противного, т. е. показывается именно невозможность подобных ситуаций.

Теорема 1. Пусть

B = (b1b2...bje2N -некоторый корень уравнения (2), т. е. М. = 2. Пусть при этом

Ък = 0 для некоторого к 6 1, N.

Пусть также для каждого г £ 1, N \ {1с}, такого что Ь4 = 1, выполнено условие

кл ¿Т(А).

Тогда

В+к = (Ъ,Ъ2 ...Ъ„)+1с

также является корнем уравнения (2).

Доказательство. Очевидно, что В2 С (В+1с)2. Поэтому из выполнения неравенства (В+тс)2 ф А следует обязательное выполнение условия (В+ъ)2 I) А и существование по крайней мере одного разряда \ £ 1, N \ {к}, для которого выполнены следующие условия:

• Ъ, = 1,

• и при этом при возведении в квадрат у произведения появлялся бы новый разряд, равный 1 («новый» — отсутствовавший в В, т.е. принимающий в В значение, равное 0).

Отметим, что единственность такого значения \ не утверждается, поэтому множество, состоящее из всех таких г, будет обозначаться как I.

А поскольку к В был добавлен только один разряд, а именно к-й, то последний факт возможен только при условии

(Зге!) СМ 6Г(А)),

что противоречит условию теоремы. □

3. О путях в ]\-мерном гиперкубе потенциальных корней

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

Итак, у нас есть 1М-мерный гиперкуб, каждая его точка (а их всего 2141) — это некоторое подмножество множества потенциальных корней. Придадим самим точкам следующие значения:

• значение 1 — это корень (в примере на рис. 1 их всего 21);

• значение 2 устанавливаем в том случае, когда квадрат этого языка включает в себя требуемый (исходный) язык как собственное подмножество; отметим, что таковой (имеющей значение 2) должна являться максимальная точка гиперкуба, т.е. [1N] = (1,1,...,!) — в противном случае рассматриваемая задача неинтересна:

— если это значение равно 1, то искомый корень известен;

— если это значение равно 0 (см. ниже), то и все значения вершин гиперкуба равны О и корней нет;

— значения, равного 0 (также см. ниже это обозначние), у максимальной точки гиперкуба быть не может — это несложно доказывается а основе введенных определений.

• значение 0 устанавливаем в том случае, когда квадрат этого языка является собственным подмножеством требуемого (исходного) языка аналогично предыдущему пункту, таковой (имеющей значение 0) должна являться минимальная точка гиперкуба, т.е. [0N] = (0,0,...,0);

• значение 0 — оставшийся вариант: ни одно из рассматриваемых двух множеств (квадрат языка, соответствующего точке гиперкуба, а также исходный язык) не является подмножеством другого; отметим, что вариант совпадения этих множеств уже был рассмотрен: в этом случае значение равно 1, то есть это один из возможных корней.

Будем рассматривать все простые пути по ребрам гиперкуба из точки [1N] в точку [0N]; отметим по этому поводу, что всего имеется N! таких путей — поэтому вряд ли для какой-либо задачи представляют интерес варианты алгоритма, связанного с их полным перебором (brute force method).

У любого такого пути:

• сначала несколько значений, установленных для вершин, равны 2;

• затем, возможно, равны либо 1 либо 0 (одновременное включение в путь как 1, так и 0, невозможно — этот факт можно несложно доказать аналогично сказанному выше;

• в конце пути несколько значений равны 0.

Рис. 2. Схема различных путей в графе булеана На приведенном рис. 2:

• при наличии вершин со значениями 0 путь помечен А;

• при наличии вершин со значениями 1 путь помечен В;

• при отсутствии вершин как со значениями 0, так и со значениями 1, путь помечен С.

Далее будем рассматривать только пути вида С (если таковые имеются). Переход из

значения 2 в значение 0, как и любое другое единичное движение, осуществляется удалением из рассматриваемого множества какого-либо из имеющихся в нем потенциальных корней; такой потенциальный корень (для которого существует хоть один подобный путь по вершинам гиперкуба) назовем важным. Заметим, что задача, заключающаяся в поиске всех важных потенциальных корней, конечно, может быть решена простым переборным алгоритмом (brute force method) — но в настоящей статье формулируется задача, заключающаяся в описании быстрых эвристических алгоритмов для нее.

В [1] была кратко сформулирована гипотеза, заключающаяся в том, что множество всех важных потенциальных корней (рассматриваемое как язык) — это один из корней из исходного языка. Пример, опровергающий эту гипотезу, может быть получен на основе модификации примера, приведенного на рис. 1. Действительно, как уже было отмечено, всего существует 1287 вариантов подмножеств из 8 потенциальных корней, но лишь 10 из них являются квадратными корнями из заданного языка. И можно считать, что горизонтальная линия на рис. 2, прерываемая несколькими овалами — подмножествами со значениями 1 и 0, это и есть множество вершин гиперкуба, каждая из которых имеет ровно 8 таких координат, каждая из которых равна 1.

4. О применении оптимизационных задач на графах

Рассматривавшийся выше в разделе 1.2 пример с 13 потенциальными корнями (в этом примере — все возможные значения в заранее известном промежутке от 0 от 12), по-видимому, малоинтересен:

• в нем имеется только одно невозможное значение возможной суммы потенциальных корней (а именно, значение 5);

• при этом, в отличие от материала следующего раздела, непонятно, как обобщить этот пример на произвольную размерность; отметим, что при возможном таком обобщении нам интерсны:

— во-первых, существование решения (в нашем примере оно есть),

— и, во-вторых, линейная зависимость числа табуированных пар от размерности задачи.

В связи с этим рассмотрим сначала тривиальные определения, потом — построения, связанные с применением задачи 2-SAT, и уже после этого более сложный пример.

Итак, для очевидным образом определяемого графа табуированных пар, в котором:

• множество вершин V является множеством потенциальных корней,

• а множество ребер Е соответствует всем табуированным парам.

Несложно убедиться, что такой граф является дополнением к графу, рассматривавшемуся в [1, разд.III], один из примеров приведен на [1, рис.3].

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

Далее в N-мерном гиперкубе рассматриваются «нетабуированные» точки булеана — т.е. такие точки, в координаты которых не входит ни одна табуированная пара; стоит

О

5 4

6 7 8 9 10 11 12

Рис. 3. Очень простой пример графа табуированных пар

отметить, что для каждой табуированной пары размерность получаемой «табуированной гиперплоскости» равна N — 2. На основе результатов теоремы 1 можно утверждать, что для поиска решения исходной задачи можно искать «нетабуированные» точки булеана, лежащие ближе всего к максимальной вершине. Решение — если хотя бы одно имеется — обязательно будет среди тех «нетабуированных» точек, для которых не существует соседней «нетабуированной», лежащей при этом ближе к максимальной вершине.

Однако простой подсчет даже при закреплении каких-то конкретных значений элементов табуированной пары дает общее число элементов табуированной плоскости 2141-2; интуитивно понятно — даже без проведения точных подсчетов возможного числа соседних элементов — что подобное знчение вряд ли может дать полиномиальный алгоритм. И, по-видимому, такой подсчет вообще не может являться доказательством несуществованя простого (полиномиального) алгоритма, заключающегося именно в переборе точек, лежащих рядом (т. е. на расстоянии 1) с точками, соответствующими табуированным плоскостям. А следует такое несуществование из примеров, приведенных в разделе 5.

Дальнейшие построения связаны с формированием на основе графа табуированных пар задач дискретной оптимизации: задачи построения независимых множеств вершин графа (в том числе максимальных множеств), а также, в упрощенном случае, задачи 2-ЭАТ — см. [7] имн. др. При формировании соответствующих задач (2-БАТ в первую очередь) отметим, что все входящие в получающуюся 2-КНФ переменные не содержат отрицаний. Поэтому возможный переборный алгоритм, сформированный на основе такой 2-8АТ, представляет собой:

• во-первых, поиск всех максимальных независимых подмножеств множества вершин V;

• и, во-вторых, рассмотрение всех точек М-мерного гиперкуба, соответствующих уменьшению какой-либо координаты какой-либо вершины одного из этих подмножеств.

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

Рассмотрим более интересный пример. В качестве исходного языка выберем

[0 1 3 6 10];

квадрат этого языка (входной язык рассматриваемой задачи) —

[0 1 234 6 79 10 11 12 13 1620], множество потенциальных корней —

[0 1 2 3 5 6 8 10].

Несложно получаемое множество табуированных пар сразу изобразим на графе, см. рис. 4.

О

1 5

10

8

2

6

Рис. 4. Более сложный пример графа табуированных пар

Из предыдущего материала следует, что существуют две «максимальные» вершины 1^-мерного куба (т.е. такие вершины, увеличение любой равной 0 координаты которых приведет к появлеию хотя бы одной табуированной пары); они являются решениям как задачи построения максимального независимого множества вершин графа, так и задачи 2-8АТ. Записи этих вершин приведем подробные (выше в настоящей статье такой способ записи не использовался), обозначая координату, соответствующую потенциальному корню ц, записью хч.

Итак, координаты двух вершин следующие:

Таким образом, в рассматриваемом примере для поиска «максимальных» корней достаточно проверить только 2 точки 8-мерного гиперкуба; первая из них в точности соответствует исходному языку, а вторая при проверке дает ошибку: квадрат построенного языка не равен языку исходному.

Важно, что в рассмотренном примере специально не отмечена разница между двумя оптимизационными задачами на графах, т. е. между 2-8АТ и существенно более сложной задачей построения независимых множеств вершин графа. Причина такова. Основная цель получения необходимых условий для задачи извлечения корня заключается в том, чтобы на примерах показать невозможность краткого решения основной задачи, т. е. невозможность построения полиномиального алгоритма, использующего лишь информацию о табуированных парах потенциальных корней. А показать это можно и на очень простых графах — которые, однако, соответствуют экспоненциально большому числу вершин гиперкуба, которые необходимы для перебора; см. следующий раздел.

А в завершение этого раздела приведем очевидную формальную запись задачи 2-ЭАТ — которая выше фактически была решена; для входящих в задачу переменных будем пользоваться теми же обозначениями.

(х0 I х5) & (х5 | х3) & (х3 | х2) & (х2 | х6) & (х6 | х8) & (х8 | х0) & (х5 | Хю) & (хю IХ8).

Понятно, что реальные примеры решения задачи построения независимых множеств вершин графа существенно сложнее, чем приведенные в этом разделе. Однако нам нет необходимости рассматривать такие более сложные примеры: нам достаточно существование таких примеров, в которых при рассмотрении только решения 2-БАТ требуется перебор вершин 1М-мерного гиперкуба, число которых от размерности задачи зависит экспоненциально; это сделано в следующем разделе.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Хо = 1, XI = 1, Х2 = О, Хз = 1, Х5 = 0, Хб = 1, Х8 = О, Хю = 1 и Хо = О, XI = 1, Х2 = 1, Хз = 0, х5 = 1, х6 = О, Х8 = 1, Хю = 0.

5. Примеры про несуществование простого алгоритма: сколь угодно большая размерность для степени 2

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

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

Итак, сначала рассмотрим следующий пример. Исходный язык такой:

[О 1 3 5 8 9 10],

его квадрат (заданный, входной язык) —

[0 1 23 45 6 8 9 10 11 12 13 14 15 16 17 18 19 20] = рир

(т. е. все значения от 0 до 20, за исключением 7), язык потенциальных корней —

[0 1 23 45 6 9 8 9 10] = О/Ю

(т. е. все возможные значения для рассматриваемой размерности входного языка, равной 20), в наших обозначениях N=11. Формулировку задачи можно изобразить в виде таблицы, приведенной на рис. 5.

0 1 2

3

4

5

6

7

8

9

10

Рис. 5. Возможная формулировка задачи для М = 2, п = 10

А решение задачи — фактически приведенное выше в качестве исходного языка — можно изобразить в виде таблицы, приведенной на рис. 6; в ней (в ее клетках) имеются все числа от 0 до 20, кроме 7.

8 9 10

0 1 3 5 8 9 10

0 0 1 3 5 8 9 10

1 1 2 4 6 9 10 11

3 3 4 6 8 11 12 13

5 5 6 8 10 13 14 15

8 8 9 11 13 16 17 18

9 9 10 12 14 17 18 19

10 10 11 13 15 18 19 20

Рис. 6. Решение приведенной задачи для М = 2, тг = 10 В рассмотренном примере граф табуированных пар содержит ребра

{ оГ7, Т^б, ^ ЗИ },

которые удобно обозначать так же, как и сами пары. Итак, если размерность входной задачи считать равной 20 (что естественно), то число этих ребер равно 4 = ^ — 1. Поэтому число «максимальных» точек 1М-мерного гиперкуба (как уже было отмечено, в рассматриваемом примере N = 11), необходимых для проверки наличия корня, равно 24 = 16:

• для 3 координат 11-мерного гиперкуба, не входящих в табуированные пары, нужно установить значения 1 (иначе будет нарушено требование максимальности для формируемой точки гиперкуба),

• а для остальных 4 пар координат (отметим, что каждая координата входит в единственную табуированную пару) нужно рассмотреть по 2 возможности (пары значений (0,1) и (1,0)), которые можно устанавливать независимо от остальных значений пар.

Покажем, как для ранеее использованного обозначения п (в примере выше было п = 10) получать необходимые примеры решаемых задач при задании больших значений п. Для простоты будем считать п четным, причем п ^ 10; пусть п = 2q. Входными языками примеров будут

0,п—4 и п—2,2п.

Для некоторого конкретного п = 2q граф табуированных пар содержит ребра

{0,п—3, 1,тг—2, ..., q-3,q, q-2,q-l},

причем только их; всего таких ребер q — 3. Поэтому в получаемых примерах для любого выбранного четного n ^ 10 из-за независимости рассмотрения пар существует

(4)

вариантов значений точек п+1-мерного гиперкуба, необходимых для переборного поиска решения — в случае, когда такой поиск основан только на информации о табуированных парах.

6. Пример для степени 3

Совершенно аналогично [1, разд. VIII], здесь частный случай для степени 3 рассматривается очень кратко; однако есть основания полагать, что:

• во-первых, на основе приведенного далее примера можно построить примеры для степени 3 сколь угодно большой (но, конечно, заранее известной) размерности — примеры, показывающие несуществование простого алгоритма извлечения корня 3-й степени 1;

• во-вторых, примеры обобщаются и на произвольную степень М > 3.

Итак, пусть исходное множество степеней буквы таково:

[О 1 4 7 10 16 17 18].

На его основе приведем разложения чисел от 0 до 54 в виде суммы трех чисел, входящих в исходное множество (если вариантов несколько, то приводим только один):

0 = = 0+0+0 1 = = 0+0+1 2 = = 0+1+1 3 = = 1+1+1 4 = = 0+0+4

5 = = 0+1+4 6 = = 1+1+4 7 = = 0+0+7 8 = =0+1+7 9 = = 1+1+7

10 = 0+0+10 11 = 0+1+10 12 = 1+1+10 13 14 = 0+4+10

15 = 1+4+10 16 = 0+0+16 17 = 0+0+17 18 = 0+0+18 19 = 0+1+18

20 = 0+10+10 21 = 1+10+10 22 = 0+4+18 23 = 1+4+18 24 = 4+10+10

25 = 0+7+18 26 = 1+7+18 27 = 0+10+17 28 = 0+10+18 29 = 1+10+18

30 = 10+10+10 31 = 7+7+17 32 = 7+7+18 33 = 0+16+17 34 = 0+17+17

35 = 0+17+18 36 = 10+10+16 37 = 10+10+17 38 = 10+10+18 39 = 1+10+18

40 = 4+18+18 41 = 7+17+17 42 = 7+17+18 43 = 7+18+18 44 = 10+17+17

45 = 10+17+18 46 = 10+18+18 47 48 = 16+16+16 49 = 16+16+17

50 = 16+16+18 51 = 17+17+17 52 = 17+17+18 53 = 17+18+18 54 = 18+18+18

Таким образом в рассмотренном примере получаются 2 «пропущенных» значения для входного языка — что дает основания предполагать возможность описать на основе этого примера примеров сколь угодно большой размерности для этой же степени 3. Однако оценок, аналогичных (4), мы в настоящей статье делать не будем.

Заключение

Итак, в настоящей статье заканчивается рассмотрение тех вопросов, связанных с извлечением корня 2-й степени из языка над 1 -буквеным алфавитом, которые можно получить на основе одних лишь табуированных пар потенциальных корней. В частности, мы показали, что на основе информации лишь о потенциальных корнях — и рассмотрении специальных вершин гиперкуба потенциальных корней — нельзя построить полиномиальный алгоритм извлечения корня из языка. Однако при этом не утверждается несуществование такого алгоритма: возможно, такие алгоритмы и существуют, но они долждны получаться на основе более полной информации об исходной задаче.

В качестве одного из направлений развития темы, рассмотренной в настоящей статье, укажем связь между рассмотренными выше вершинами гиперкуба потенциальных корней (0, 1, 2 и 0) — и практически такими же обозначениями, применявшимися в нескольких относительно недавних статьях Г. Г. Рябова2 для задач, связанных с ДНФ и проблемами их минимизации; упомянем статьи [10-12]. На вершинах гиперкуба потенциальных корней,

1 Табуированные тройки — аналоги табуированных пар для степени 3 — также были кратко рассмотрены в заключении процитированной статьи.

2 К сожалению, исследование этой тематики, по-видимому, никто не продолжает.

как и на т. н. кубантах в этих статьях, может быть построена специальная алгебра, которую можно использовать в дальнейших построениях и задачах — как чисто теоретических, так и вычислительных.

Работа частично поддержана грантом научной программы китайских университетов "Higher Education Stability Support Program" (раздел "Shenzhen 2022 — Science, Technology and Innovation Commission of Shenzhen Municipality").

Литература

1. Мельников Б.Ф., Мельникова A.A. О задачах извлечения корня из заданного конечного языка // International Journal of Open Information Technologies. 2023. Vol. 11, no. 5. P. 1-14.

2. Melnikov B.F., Korabelshchikova S.Yu., Dolgov V.N. On the task of extracting the root from the language // International Journal of Open Information Technologies. 2019. Vol. 7, no. 3. P. 1-6.

3. Мельников Б.Ф. Полиномиальный алгоритм построения оптимального инверсного мор-физма // International Journal of Open Information Technologies. 2023. Vol. 11, no. 6. P. 1-10.

4. Stockmeyer L.J. The polynomial-time hierarchy // Theoretical Computer Science. 1976. Vol. 3, no. 1. P. 1-22.

5. Chandra A.K., Kozen D., Stockmeyer L.J. Alternation // Journal of the ACM. 1981. Vol. 28, no. 1. P. 114-133.

6. Immerman N. TDescriptive Complexity. Berlin: Springer, 1999. 284 p.

7. Hromkovic J. Theoretical Computer Science: Introduction to Automata, Computability, Complexity, Algorithmics, Randomization, Communication, and Cryptography. Berlin: Springer, 2003. 323 p.

8. Hromkovic J. Algorithmics for Hard Problems: Introduction to Combinatorial Optimization, Randomization, Approximation, and Heuristics. Berlin: Springer, 2004. 547 p.

9. Мельников Б.Ф. Полурешетки подмножеств потенциальных корней в задачах теории формальных языков. Часть I. Извлечение корня из языка // International Journal of Open Information Technologies. 2022. Vol. 10, no. 4. P. 1-9.

10. Рябов Г.Г. О четверичном кодировании кубических структур // Вычислительные методы и программирование. 2009. Т. 10, № 3. С. 340-347.

11. Рябов Г.Г. Хаусдорфова метрика на гранях N-мерного куба // Фундаментальная и прикладная математика. 2010. Т. 16, № 1. С. 151-155.

12. Рябов Г.Г. Полиморфизм символьных троичных матриц и генетическое пространство кратчайших K-путей в N-кубе // International Journal of Open Information Technologies. 2015. Vol. 3, no. 7. P. 1-11.

Мельников Борис Феликсович, д.ф.-м.н., профессор, факультет Вычислительной математики и кибернетики, Совместный университет МГУ—ППИ в Шэньчжэне (Шэньчжэнь, Китай)

DOI: 10.14529/ cmse240103

ON THE NON-EXISTENCE OF A SIMPLE VERSION OF THE POLYNOMIAL ALGORITHM FOR EXTRACTING THE ROOT FROM THE LANGUAGE

© 2024 B.F. Melnikov

Shenzhen MSU-BIT University (International University Park Road 1, Dayun New Town, Longgang District, Shenzhen, Guangdong Province, 518172 China)

E-mail: bormel@mail.ru Received: 07.10.2023

For the usual operation of concatenation of words considered as multiplication, the concatenation of languages is obviously determined, and on the basis of the last operation, the degree of the language and the root of a given degree (if available) is determined. When describing algorithms for constructing a language that is a root of degree M from a given language, so called potential roots are of great importance: these are the words (not the languages) whose considered M-th degree is included in a given language. It is easily to show that all potential roots for a given language are constructed using a polynomial algorithm. This task, apparently, is not simplified when considering words and languages over the 1-letter alphabet, which is done in this paper. So called taboo pair of potential roots is a pair whose word concatenation is not included in the language. In previous publications on the topic of describing algorithms for extracting roots from a language, the hypothesis arose that a polynomial algorithm for extracting a root from a language can be described on the basis of considering the set of taboo pairs only, by iterating over specially described subsets of the set of potential roots. This paper shows, that such an algorithm (called "simple") is impossible, i.e., if there is a polynomial algorithm for extracting the root from the language, then this algorithm must use some additional information.

Keywords: formal languages, concatenation of languages, degree of the language, root of the language, polynomial algorithms.

FOR CITATION

Melnikov B.F. On the Non-existence of a Simple Version of the Polynomial Algorithm for Extracting the Root from the Language. Bulletin of the South Ural State University. Series: Computational Mathematics and Software Engineering. 2024. Vol. 13, no. 1. P. 38-56. (in Russian) DOI: 10.14529/cmse240103.

This paper is distributed under the terms of the Creative Commons Attribution-Non Commercial 4-0 License which permits non-commercial use, reproduction and distribution of the work without further permission provided the original work is properly cited.

References

1. Melnikov B.F., Melnikova A.A. On the problems of extracting the root from a given finite language. International Journal of Open Information Technologies. 2023. Vol. 11, no. 5. P. 1-14. (in Russian)

2. Melnikov B.F., Korabelshchikova S.Yu., Dolgov V.N. On the task of extracting the root from the language. International Journal of Open Information Technologies. 2019. Vol. 7, no. 3. P. 1-6.

3. Melnikov B.F. A polynomial algorithm for constructing the optimal inverse morphism. International Journal of Open Information Technologies. 2023. Vol. 11, no. 6. P. 1-10. (in Russian)

4. Stockmeyer L.J. The polynomial-time hierarchy. Theoretical Computer Science. 1976. Vol. 3, no. 1. P. 1-22.

5. Chandra A.K., Kozen D., Stockmeyer L.J. Alternation. Journal of the ACM. 1981. Vol. 28, no. 1. P. 114-133.

6. Immerman N. TDescriptive Complexity. Berlin: Springer, 1999. 284 p.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

7. Hromkovic J. Theoretical Computer Science: Introduction to Automata, Computability, Complexity, Algorithmics, Randomization, Communication, and Cryptography. Berlin: Springer, 2003. 323 p.

8. Hromkovic J. Algorithmics for Hard Problems: Introduction to Combinatorial Optimization, Randomization, Approximation, and Heuristics. Berlin: Springer, 2004. 547 p.

9. Melnikov B.F. Semi-lattices of the subsets of potential roots in the problems of the formal languages theory. Part I. Extracting the root from the language. International Journal of Open Information Technologies. 2022. Vol. 10, no. 4. P. 1-9. (in Russian)

10. Ryabov G.G. On the quaternary coding of cubic structures. Computational methods and programming. 2009. Vol. 10, no. 3. P. 340-347. (in Russian)

11. Ryabov G.G. Hausdorff metric on the faces of an N-dimensional cube. Fundamental and Applied Mathematics. 2010. Vol. 16, no. 1. P. 151-155. (in Russian)

12. Ryabov G.G. Polymorphism of symbolic ternary matrices and genetic space of shortest K-paths in an N-cube. International Journal of Open Information Technologies. 2015. Vol. 3, no. 7. P. 1-11. (in Russian)

i Надоели баннеры? Вы всегда можете отключить рекламу.