Какие монотонные булевы функции представляются в виде пороговых сумм?


16

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

На самом деле, вы очень внимательно относитесь к этому, и вы предвидели все возможные результаты 2n , и решили для каждого из них, должен ли кандидат с таким показом пройти или не сдать. Таким образом, у вас есть булева функция f:{0,1}n→{0,1} которая указывает, должен ли кандидат пройти или потерпеть неудачу в зависимости от его точных ответов. Конечно, эта функция должна быть монотонной : если правильный набор вопросов заставляет вас пройти, то и любой правильный набор супернабора также должен вас пропускать.

Можете ли вы принять решение о баллах (положительных действительных числах) для вопросов и о пороге, чтобы ваша функция f точно отражалась правилом «кандидат проходит, если сумма баллов за правильные вопросы превышает порог» ? (Конечно, порог можно принять равным 1 без потери общности, вплоть до умножения баллов на константу.)

Формально: существует ли характеристика монотонных булевых функций f:{0,1}n→{0,1} для которых существуют такие w1,…,wn∈R+ , что для всех , мы имеем тогда и только тогда, когда ? е ( v ) = 1 Е я ш я v I ≥ 1v∈{0,1}nf(v)=1∑iwivi≥1

Нетрудно понять, что не все функции могут быть представлены таким образом. Например, функция не может: поскольку принято, мы должны иметь , поэтому один из должен быть , а также для . Теперь, если это, например, и , у нас есть противоречие, потому что но отклонено; другие случаи аналогичны.(x1∧x2)∨(x3∧x4)(1,1,0,0)w1+w2≥1w1,w2≥1/2w3,w4w1w3w1+w3≥1(1,0,1,0)

Это выглядит для меня как очень естественная проблема, поэтому мой главный вопрос - узнать, под каким именем это изучалось. Запрашиваемая «характеристика», конечно, неопределенна; Мой вопрос заключается в том, чтобы знать, имеет ли класс функций, которые могут быть представлены таким образом, имя, что известно о сложности проверки, принадлежит ли ему функция ввода (заданная в виде формулы или схемы) и т. д.

Конечно, можно думать о многих вариациях на эту тему. Например, на реальных экзаменах вопросы не являются независимыми, но существует DAG по вопросам, указывающим на зависимость, и кандидаты могут ответить на вопрос, только если были выполнены все предварительные условия. Условие для монотонных функций затем может быть ограничено значениями в которые удовлетворяют зависимостям, и вопрос заключается в том, чтобы определить, можно ли таким образом захватить входную функцию, учитывая входную группу DAG для переменных. Можно также подумать о вариантах, где оценки являются k- кортежами для фиксированного k (суммируются по точкам и сравниваются по точкам с пороговым вектором), которые могут захватывать больше функций, чем k{0,1}NКК . В качестве альтернативы вы можете использовать более выразительные функции, которые не являются булевыми, а идут в полностью упорядоченном домене с различными пороговыми значениями, которые должны указывать вашу позицию в домене. Наконец, я не уверен, что произойдет, если вы допустите отрицательные оценки (так что вы можете отменить монотонное ограничение для функций).Кзнак равно1

(Примечание: что заставило меня задуматься об этом, так это раунд выбора Google Code Jam, где кандидаты отбираются, если они достигают определенного порогового значения, и оценки проблем, по-видимому, тщательно продуманы, чтобы отразить, какие наборы проблем считаются достаточными для отбора. Code Jam имеет структуру зависимости от вопросов, с некоторыми вопросами "большого ввода", которые не могут быть решены, если вы сначала не решили вопрос "small input".)


Они известны как пороговые функции (хотя этот термин иногда определяется более ограничительно). Я не знаю, есть ли существенно другая характеристика. Очевидным необходимым условием является то, что и f - 1 ( 0 ) являются выпуклыми (то есть выпуклая оболочка f - 1 ( 1 ), пересекаемая с { 0 , 1 } n , включена в f - 1 ( 1 ) и аналогично для 0). f−1(1)f−1(0)f−1(1){0,1}nf−1(1)
— Эмиль Йержабек поддерживает Монику

На самом деле, теперь, когда я думаю об этом: булева функция является пороговой функцией, если выпуклые оболочки f - 1 ( 1 ) и f - 1 ( 0 ) не пересекаются. ff−1(1)f−1(0)
— Эмиль Йержабек поддерживает Монику

2
На самом деле это точные положительные пороговые функции.
— Кристоффер Арнсфельт Хансен

@KristofferArnsfeltHansen: Точно, спасибо! Фактически это упоминается в булевых функциях: теория, алгоритмы и приложения . Теорема 9.16 говорит, что при положительном DNF мы можем в PTIME проверить, является ли она пороговой функцией, и если да, построить вектор (который, я думаю, будет положительным по теореме 9.6). Что-нибудь известно о предложенных мною вариантах, особенно вариант с DAG для переменных? Если нет, вы можете сделать ответ, который говорит так (и включает ваш комментарий), и я приму его. :)вес
— a3nm

Ответы:


2

В комментариях упоминалось, что это положительные пороговые функции.

Что касается других характеристик, я нашел следующее интересным. Предположим, что у нас есть положительная пороговая функция с уменьшением веса : f ( v 1 , … , v n ) = 1вес1≥вес2≥...весN Тогдав частностимножество входов(V1,...,vп)для которыхF( → v )=1представляет собой порядковый идеал двоичного мажорации решетки с2пточек, который является учился в

е(v1,...,vN)знак равно1⟺Σявесяvя≥1.
(v1,...,vN)е(v→)знак равно12N

Дональд Кнут, «Искусство компьютерного программирования», упражнение 109 раздела 7.1.1.

Говоря неформально, - это тип функции, где создание более ранних битов 1 делает f более вероятным равным 1: так, например, f ( 0 , 1 , 1 ) ≤ f ( 1 , 0 , 1 ) ≤ f ( 1 , 1 , 0 ) . То есть «некоторые биты имеют значение больше», и для устранения избыточных изоморфных случаев мы предполагаем, что более ранние биты имеют значение больше.еее(0,1,1)≤е(1,0,1)≤е(1,1,0)

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

Действительно, число положительных пороговых функций (с уменьшающимися весами) по переменным задается последовательностью 2 , 3 , 5 , 10 , 27 , 119 , 1113 , … (oeis.org sequence A000617 ), тогда как число таких идеалов порядка равно 2 , 3 , 5 , 10 , 27 , 119 , 1173 , … (oeis.org sequence A132183 )N

2,3,5,10,27,119,1113,...
2,3,5,10,27,119,1173,...

Благодарность! Просто подумал, что могу указать, что другие виды булевых функций, упомянутых в вашем ответе, те, которые имеют полный порядок влияния переменных, называются «обычными» булевыми функциями. Это упоминается в последовательности A132183, и такие функции изучаются в главе 8 Булевых функций: теория, алгоритмы и приложения
— a3nm
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.