Пошук півтіни задачі про задоволення обмеженнями


12

Наступне питання виникає неодноразово під час тестування безпеки системи чи моделі.

Мотивація: Програми безпеки програмного забезпечення часто виникають не від помилок через дійсні входи, а від помилок, що виникають внаслідок недійсних входів, достатньо близьких до дійсних входів, щоб пройти безліч прямолінійних перевірок дійсності. Класичний приклад - це звичайно переповнення буфера, де вхід є розумним, за винятком того, що він занадто великий. Компілятори та інші інструменти можуть допомогти вирішити ці проблеми, змінивши компонування стека та купи та за допомогою інших методів обфускування. Альтернативою є видалення проблем із самого вихідного коду. Один з методів, який називається неясними бомбардувальниками, програма з входами близька до очікуваних входів, але в деяких місцях є необґрунтованою (великі значення для цілих чи рядкових полів). Я хотів би зрозуміти нечіткість (як один із прикладів) з більш формальної точки зору.

Припустимо, що простір дійсних входів описується обмеженнями . Нехай M - сукупність рішень таких обмежень, а саме M = \ lbrace m \ in \ mathcal {M} ~ | ~ m \ models \ Phi \ rbrace , де \ mathcal {M} - простір можливих входів.ΦMM={mM | mΦ}M

Я шукаю роботу, що описує такі поняття:

  • Півтінь з є безліч , що для кожного і в якому - то сенсі елементи М » знаходяться близько до елементам М . Можна вважати півтінь як майже рішення . Звичайно, це поняття не буде унікальним.MMMmM mΦ MM

  • Шляхи розслаблення обмежень Φ до Φ такі, що по-перше ΦΦ та Φ¬Φ , в певному сенсі, синтаксична півтінь Φ .

«Півтінь» - це слово, яке я вибрав для опису поняття. Це цілком можна назвати чимось іншим.

Я знайшов натхнення в математичній морфології , звідси і моя візуальна метафора, але два світи розділені один від одного. Чи є там якась корисна робота? А може, у світі грубих наборів ?

Чи може хтось пролити світло?


Проблема сама по собі справді цікава, проте більшу частину часу цікавить не побудова півтіні (я не знаю більш «офіційного» найменування), а скоріше в обманюючих техніках, що уникають нападів нападів програмного забезпечення (наприклад, атаки шляхом модифікації входу). Ці прийоми приховують серцевину поведінки програми, заливаючи її чимось іншим. Наприклад, ви можете створити програму, переплутавши оригінал разом із програмою, яка жорстко кодує вирішення важкої проблеми NP у конкретному екземплярі.
Sylvain Peyronnet

Це дійсно так. Я натякаю на підхід, відомий як заслінка.
Дейв Кларк

До речі, CSP = Проблема задоволення обмежень.
МС Дусті

Відповіді:


6

Значна частина уваги, що приділяється варіантам оптимізації проблеми задоволення обмежень (CSP), була зосереджена на задоволенні деякої кількості обмежень (MAX-CSP) або в булевому випадку на виборі рішення, який призначає якомога більше змінних значення 1 ( MAX-ONES, є також MIN-ONES).

Натомість ви запитуєте про варіант, який можна було б назвати МАКСИМАЛЬНИМ ПАРТІЯЛЬНИМ CSP. Це було вивчено принаймні ще в кінці 1960-х, але мені не відомо, що воно має усталене ім'я. Це природна проблема, і було б добре побачити більше роботи над її вивченням. Дякуємо, що надали ще одну потенційну програму для вирішення цієї проблеми!

  • Ambler, AP і Barrow, HG і Brown, CM і Burstall, RM і Popplestone, RJ, універсальна система для керування комп'ютером , штучний інтелект 6 129–156, 1975. doi: 10.1016 / 0004-3702 (75) 90006- 5

Набір призначень змінних значень називається частковим призначенням . Призначення змінної величини можна записати у вигляді (змінної, значення) кортежу. Часткове призначення - це просто функції від змінних до значень. Реквізит - це часткові завдання, які не порушують жодних обмежень. Окрім того, опора не містить часткового призначення, забороненого деяким обмеженням (як підмножина).

Один із способів вираження проблеми оптимізації полягає в наступному.

МАКСИМАЛЬНА ЧАСТИНА CSP:
Вхід: екземпляр CSP
Вихід: prop Критерій: максимізуватиf
|f|

В екземплярі з змінними явно підтримка кардинальності буде рішенням. Можуть існувати великі реквізити з кардинальністю до , які не містяться в жодному розчині.nnn1

У запропонованій вами термінології набір реквізитів з максимальною кардинальністю утворює півтінь, можливо, навіть з деяким додатковим простором (тому кардинальність принаймні ).kdkd

Друга частина вашого питання також видається дуже цікавою, але я не знаю жодної роботи, пов’язаної з цим.


Виноска: Термін опора - з моєї дипломної роботи; мається на увазі висловити думку про те, що такі часткові завдання є правильними, а також, що вони підтримують набір рішень. Це на відміну від нехорошого , що є прийнятим терміном для опису часткового призначення, яке не можна поширити на рішення. Слово "nogood" було введено Річардом Сталманом та Джеральдом Суссманом у 1976 році, коли RMS ще був дослідником AI замість активіста свободи програмного забезпечення.

  • Стеллман, Річард М. та Суссман, Джеральд Джей, " Попереднє обгрунтування" та "спрямоване на залежність" зворотне відстеження в системі для автоматизованого аналізу ланцюгів , MIT Лабораторія штучного інтелекту. Пам'ятка № 380, 1976. ( PDF )
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.