Чи існує алгоритм, який, очевидно, існує, хоча ми не знаємо, що це?


21

У математиці існує багато доказів існування, які не є конструктивними, тому ми знаємо, що певний об'єкт існує, хоча ми не знаємо, як його знайти.

Я шукаю аналогічні результати в галузі інформатики. Зокрема: чи існує проблема, яку ми можемо довести, що вона вирішується, не показуючи її алгоритм? Тобто ми знаємо, що це можна вирішити алгоритмом, але ми не знаємо, як виглядає алгоритм?


5
Є тривіальна відповідь. Візьміть будь-який так / ні питання відповіді , який Unkown, як «є випадкового», то питання вирішимо, тільки ми ще не знаємо , який із двох можливих алгоритмів є правильним. π
Гендрік Ян


1
@babou Дійсно: питання з унікальною відповіддю вирішується. Тут невігластво є точка, здається, це випадок «dont't знати» від питання, хоча тільки «не знає , в даний час ». Після того як ми з’ясували, чи є випадковість чи ні, нам потрібно шукати інший приклад. Ваша відповідь нижче набагато краще, звичайно! Це форма "не знати", яка по суті "ніколи не дізнається". π
Хендрік, січень

1
@HendrikJan: І цю процедуру ми називаємо алгоритмом в CS. Але, взявши за приклад проблему зупинки, ми навіть не можемо довести, що існує алгоритм!
MSalters

1
Ще кілька цікавих прикладів можна знайти тут: cstheory.stackexchange.com/questions/4777/…
Segal-Halevi

Відповіді:


14

Мені найпростіший випадок з алгоритму, який існує, хоча невідомо, який алгоритм стосується автоматів кінцевого стану.

Коефіцієнт мови L 1 мовою L 2 визначається як L 1 / L 2 = { x y L 2  таким, що  x y L 1 } .L1/L2L1L2L1/L2={хуL2 такий як хуL1}

Неважко довести, що регулярний набір закритий під часткою довільним набором. Іншими словами, якщо регулярний і L 2 довільний (не обов'язково регулярний), то L 1 / L 2 також є регулярним.L1L2L1/L2

Доказ досить простий. Нехай - FSA, що приймає регулярний набір R , де Q і F відповідно множина станів і безліч станів, що приймають, а L - довільна мова. Нехай F = { q Q y LМ=(Q,Σ,δ,q0,Ж)RQЖL безліч станівз яких кінцевий стан може бути досягнуто шляхом прийому рядки з L .Ж'={qQуLδ(q,у)Ж}L

Автомат , яка відрізняється від М тільки в своєму безлічі F ' кінцевих станів визнає саме Р / л . (Або див. Hopcroft-Ullman 1979, стор. 62 для підтвердження цього факту.)М'=(Q,Σ,δ,q0,Ж')МЖ'R/L

Однак, коли множина не вирішується, не може бути алгоритму для визначення того, які стани мають властивість, що визначає F . Отже, хоча ми знаємо, що множина F ' є підмножиною Q , у нас немає алгоритму, щоб визначити, яке підмножина. Отже, поки ми знаємо, що R приймається одним із 2 | Q | можливо FSA, ми не знаємо, що це таке. Хоча, маю визнати, ми знаємо великою мірою, як це виглядає.LЖ'Ж'QR2|Q|

Це приклад того, що іноді називають майже конструктивним доказом, тобто доказом того, що одна з кінцевої кількості відповідей є правильною.

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


1
@DW Я сказав, що регулярний, але L довільний . Це не повинно бути рекурсивно числимим чи регулярним. Не використовується жодна властивість L , крім того, що це набір рядків. Якщо ви мені не довіряєте, перевірте Hopcroft-Ullman 1979, стор. 62.RLL
babou

Спасибі. Це моя улюблена відповідь, оскільки рішуча мова нескінченна.
Ерел Сегал-Халеві

@babou, моя помилка, я неправильно прочитав те, що ти написав. Моя вина - вибачте за це. Я відредагував вашу публікацію, щоб зробити частину, яку я неправильно зрозумів, сподіваюсь, чистішою.
DW

@DW Мені цікаво, що у вас виникли проблеми, але це трапляється і зі мною. Але, можливо, я мав би бути зрозумілішим. Це не було навмисно. Скажіть, що тому, що деякі математики вважають, що витонченіше бути кричущим. Дякуємо за редагування
babou

12

Щоб розширити вихідний коментар Гендріка, розгляньте цю проблему

Враховуючи ціле число чи існує пробіг n або більше послідовних 7 в десятковому розширенні π ?n0nπ

Ця проблема вирішується, оскільки в одному з двох випадків може бути отримано:

  1. Існує ціле число для якого десяткове розширення π містить запуск N послідовних 7s, але більше не виконується.NπN
  2. Для будь-якого розширення π має цикл n послідовних 7s.nπn

У випадку (1) алгоритм рішення проблеми був би одним із

Якщо відповідь "ні", то відповідь "так".n>N

і у випадку (2) алгоритм був би

Відповідь «так».

Очевидно, що кожен із них є алгоритмом прийняття рішень; ми просто не знаємо, який. Те вистачає, хоча, так як дозволь тільки вимагає наявності алгоритму, а НЕ специфікація якої алгоритм використання.


+1 Це простий приклад, що я пам’ятаю свого професора з обчислюваності та логіки, використовуючи. Це мій перехід до прикладу, оскільки він не вимагає великих знань домену, тому легко передати.
Джошуа Тейлор

1
Альтернативні рецептури див. Також тут .
Рафаель

2

Ось невідповідь. Я розміщую повідомлення, тому що вважаю, що це повчально, тому що я спочатку стверджував протилежне, і вісім людей погодилися достатньо, щоб подати заявку до того, як @sdcwc вказав на помилку. Я не хотів просто редагувати свою першу відповідь, тому що не впевнений, як багато людей підтримали б це, якби вони знали, що це неправильно.

SS

НН

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.