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


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 .Ж'={q∈Q∣∃у∈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 в десятковому розширенні π ?n≥0nπ

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

  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.