Як в обчисленні задаються реальні числа?


27

Це може бути основним питанням, але я читав і намагався зрозуміти статті з таких предметів, як обчислення рівноваги Неша та лінійне тестування на виродження, і не знав, як реальні числа визначаються як вхідні дані. Наприклад, коли вказується, що LDT має певні поліноміальні нижні межі, як визначаються реальні числа, коли вони трактуються як вхідні?


1
Ви можете знайти тут цікаву дискусію: en.wikipedia.org/wiki/Computable_number
Джозеф Малькевич

Хтось повинен скласти ці папери у безкоштовну електронну книгу, яку можна завантажити.
Ділавар

Відповіді:


34

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

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

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


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

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

1
Вибачте моє незнання, але що означає BSS?
Філіп Уайт

1
Модель BSS - це теоретична модель, яка передбачає наявність довільних дійсних чисел. Те, що робиться в CG, включає реальні реалізації моделі, яка, як правило, обмежена алгебраїчними числами. Також реалізація CG далека від вартості одиниці за операцію. Так що вони не одне і те ж. Дивіться, наприклад, модель реальної цифри LEDA
Девід Еппштейн

10
STsSs>tTt


8

Це не пряма відповідь на ваше запитання, скоріше відповідь на Рафаеля . Останнім часом було проведено досить певну роботу із визначенням обчислень реальної кількості за допомогою коіндукції. Ось кілька статей на цю тему.

Вони навряд чи охоплюють весь спектр обчислення реальних чисел, але прогрес досягається, щоб усунути різні проблеми.


1
R

Влучне зауваження. Я не впевнений, що таке обмеження коіндуктивного підходу. Підхід знаходиться в зародковому стані.
Дейв Кларк

7

Обчислювальну складність обчислень над реальними числами розглядають Блюм, Кукер, Шуб та Смайл . Ось частковий опис книги:

Класична теорія обчислень бере свій початок у роботах Геделя, Тюрінга, Церкви та Кліна і була надзвичайно успішною основою для теоретичної інформатики. Теза цієї книги полягає в тому, що вона дає неадекватну основу для сучасних наукових обчислень, де більшість алгоритмів є алгоритмами дійсних чисел. Метою цієї книги є розробка формальної теорії обчислень, яка інтегрує основні теми класичної теорії, яка безпосередньо стосується проблем математики, чисельного аналізу та наукових обчислень. Попутно автори розглядають такі основні проблеми, як: Чи визначається набір Мандельброта? Чи встановлено на простих квадратичних картах набір зупинок? Яка реальна складність Ньютона ' s метод? Чи існує алгоритм для вирішення задачі з рюкзаком у пліономічній кількості кроків? Хіба Гільберт Нуллстеленсатц непереборний? Чи є проблема знаходження справжнього нуля чотиригранного многочлена нерозв'язного? Чи лінійне програмування простежується через реальні лінії?

Ви можете знайти огляд цієї книги у новинах ACM SIGACT .


Ця книга виглядає дуже цікаво, дякую.
Філіп Уайт

Ви, швидше ласкаво просимо.
MS Dousti

5
Варто зауважити, що модель обчислення BSS за реальністю є суперечливою, з причин, схожих на те, про що Девід Еппштейн згадував у коментарі вище. Наприклад: аксіома BSS, яка обчислює, чи x <y робить один часовий крок, для довільних дій x і y. Навпаки, підходи, такі як ефективність другого типу (TTE), визначають машини, які приймають наближення вхідних даних до реальних даних і виводять обчислювальні наближення до функцій над реалами. Чим більше часу проходить, тим кращими можуть бути наближення введення та виведення. Такий підхід мені здається більш реалістичним.
Аарон Стерлінг

@Aaron Sterling: чи знаєте ви хороший орієнтир для ефективності другого типу?
Джошуа Грохов

3
@Joshua Grochow: Вибачте, що раніше не дійшов до цього. Книга, з якою Каве пов’язана, - це "Нільсен і Чуанг" ТТЕ. Однак він настільки обтяжений нотацією, що він може здатися непристойним читачеві. Я б запропонував замість цього слайди підручника Васко Браттка: cca-net.de/vasco/cca/tutorial.pdf
Аарон Стерлінг

7

Відредаговано / виправлено на основі коментарів

Коли автори говорять про введення дійсних чисел у лінійному програмуванні, обчисленні рівноваги Неша, ... у більшості робіт (документи, які не стосуються теми обчислення / складності над реальними числами), вони насправді не означають реальних чисел. Вони є раціональними числами і числами, які виникають у них завдяки їх маніпуляціям (алгебраїчні числа). Таким чином, ви можете їх думати як представлені кінцевими рядками.

З іншого боку, якщо в роботі йдеться про обчислюваність та складність в аналізі , вони не використовують звичайну модель обчислення, і існують різні несумісні моделі обчислення / складності за реальними числами.

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

Обчислювальна геометрія відрізняється. У більшості праць CG, якщо автори не вказують, що це за модель, яка щодо неї обговорюється правильність і складність алгоритму, це може вважати модель BSS (також реальна оперативна пам'ять).

Модель не є реалістичною і тому реалізація не є прямолінійною. (Це одна з причин того, що деякі люди в CCA віддають перевагу теоретичним моделям Ko-Friedman / TTE / Domain , але проблема цих моделей полягає в тому, що вони не такі швидкі, як обчислення з плаваючою комою на практиці.) Правильність і складність алгоритм у моделі BSS не обов'язково переходить до правильності реалізованого алгоритму.

Книга Вейхрауха містить порівняння між різними моделями (Розділ 9.8). Це лише три сторінки і їх варто прочитати.

(Є також третій спосіб, який може бути більш придатним для CG, ви можете поглянути на цей документ:

Чі Яп, " Теорія реальних обчислень згідно EGC "

де EGC - точні геометричні обчислення .)


Думаю, що в першу чергу мене цікавить стаття, яка вказує модель, враховуючи, що вона містить речення: "Зараз ми формально визначаємо нашу модель обчислення". Документ називається "Нижні межі для проблем задоволеності", і, здається, існує деяке обговорення дерев лінійних рішень та поліномів запитів. Отже, я думаю, що це відповідь, яку я шукав там ... дякую. Я перечитаю статтю і побачу, чи зможу я це зрозуміти.
Філіп Уайт

2
Я не погоджуюсь. Це неправильна модель для обчислювальної геометрії. Дивіться мою більш детальну відповідь нижче.
Девід Еппштейн

1
@Kaveh: Я думаю, ви повинні сказати, що це раціональні числа, а не числа з плаваючою комою. Точні раціональні числа легко представити кінцевими рядками, і в багатьох додатках (наприклад, тих, що стосуються лінійного програмування) проміжні результати також будуть раціональними числами, якщо ваші входи раціональні числа. (Звичайно, як зауважив Девід Еппштейн, ком. Гео. - помітний виняток у тому сенсі, що проміжні результати зазвичай не раціональні.)
Юкка Суомела

@Jukka: Ти маєш рацію, я заміню плаваючу крапку раціональною.
Каве

5
Ні. Коли я пишу "реальне число", я справді маю на увазі "реальне число", і під цим я маю на увазі дійсно реальне число, справді з реальної кількості. Дійсно. Зокрема, у статті @Philip, про яку я розповідаю, я повинен припустити, що алгоритми працюють для довільного реального введення, щоб я міг застосувати результати нестандартного аналізу.
Jeffε

3

Їх немає і взагалі не можна. За допомогою наших моделей обчислень ми можемо розглянути лише кількість входів (і виходів і функцій). Зокрема, будь-який вхід повинен бути кінцевим, але не всі реальні числа мають кінцеві подання.

Ви, мабуть, можете припустити якийсь оракул, який дасть наступну цифру певного реального числа за запитом (наприклад, як потік). Інакше вам доведеться жити з (довільно точними) наближеннями.


Якщо це правда, то як LDT може мати справу з реальними числами? Я читав щось про "r-лінійні дерева рішень", але насправді не розумів, про що вони говорять у статті, "Нижні межі для лінійних проблем задоволення".
Філіп Уайт

Надіваюся, вони або не можуть, або не використовують машини Тьюрінга (або еквівалентні копійки). Інші відповіді, не такі суворі / загальні, як моя, повинні пролити щось на це.
Рафаель
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.