Що саме таке обчислення?


20

Я знаю, що таке обчислення в якомусь невиразному розумінні (це те, що роблять комп'ютери), але я хотів би більш суворе визначення.

Dictionary.comВизначення обчислень, обчислень, обчислень та обчислень є круговими, тому це не допомагає.

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

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

Отже, що саме таке обчислення?


Це велике, класичне питання.
Ран Г.


@Raphael Наскільки я знаю, обчислення! = Алгоритм. Можливо, виконання алгоритму - це обчислення.
Кельмікра

Для мене "P обчислюється" == "Існує алгоритм, який вирішує Р" (для Р деяка проблема). Це може бути результатом з моєї точки зору TCS.
Рафаель

@Raphael Це питання про те, що таке обчислення, а не те, що означає для P обчислити.
Кельмікра

Відповіді:


6

Можливо, тут проблема полягає в пошуку вкрай конкретного визначення дуже загального поняття. Я не бачу проблеми розглядати практично все як обчислення. Хоча ми не думаємо про це, все, що ми робимо, є виразним з точки зору фізики складових частин, аж до принаймні гудіння кварків. У нас така ж ситуація і з обчисленнями. Є входи, виходи та процес (усе це може бути тривіально). Ці цікаві вони чи корисні як обчислення, чи моделі обчислень - це зовсім інше питання.

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

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


2
Швидше поза темою, але я думаю, що модель вибухової бомби - Тюрінг завершена! Вибухи можуть призвести до інших вибухів, які можуть використовуватися для розповсюдження сигналів та створення ор-воріт. Бомба b могла бути встановлена ​​таким чином, щоб вибухнути в даний момент через пристрій, але розташована поблизу бомба могла б вимкнути пристрій, не викликаючи при цьому b вибухнути, що дозволяє не брати ворота.
Келмікра

@ Kyth'Py1k як ворота доміно? Я не думаю, що це буде цілісним завершенням, тому що ви не можете безперервно циклічити, оскільки "обчислення" завжди зупинятимуться залежно від розміру машини / мінного поля
храповик виродка

1
@ratchetfreak Якщо тільки залишки бомб не перетворяться в нові бомби через наноботи, а потім переставляють їх ...
Kelmikra

4

Це питання, яке Тьюрінг вирішив вирішити у своїй знаменитій статті 1936 року « Про обчислювані номери» із додатком до програми «Entscheidungsproblem» , папері, в якій він розглядає (що стало відомим як) модель машини Тюрінга. Див., Зокрема, Розділ 9.

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

Основна відмінність між загальним поняттям обчислення та вашим прикладом (вибухова бомба) полягає в тому, що обчислюється. Що обчислюється вашою вибуховою бомбою? Ще одна відмінність полягає в обчислювальних засобах, але можна передбачити механічну схему, яка використовує бомби для обчислення чогось більш законного.

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


Звичайно вибух - це обчислення. Він "обчислює" саме унітарну трансформацію, яка описує вибух. До речі, багато разів фізики, з якими я зустрічався, були "засмучені", коли ви кажете, що (скажімо) якісь квантові ворота обчислюють єдину, а не розвивають її, або перетворюють фізичну систему відповідно (" чи ворота беруть ручку та папір і обчислюють унітарний "?) :)
Ran G.

Я прочитав дев'ятий розділ "Про обчислювані номери з додатком до Entscheidungsproblem", але це, схоже, не допомогло. Хоча я не читав це надзвичайно ретельно, здавалося, що це закладає основу для машин Тьюрінга. Ви хочете сказати, що обчислення - це все, що можна змоделювати як дію, виконану машиною Тьюрінга? Якщо так, чи не майже все було б обчисленням? Наприклад, вибухи бомб можна моделювати як машину Тюрінга, так що положення, швидкість і типи квантових частинок навколишніх частинок кодуються як двійкові.
Кельмікра

"Що обчислюється вашою вибуховою бомбою?" Обчислюється зміна стану частинок, що оточують бомбу відповідно до законів фізики.
Кельмікра

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

Ось ідея: обчислювальна техніка - це процес отримання результатів з метою сприяння висновкам оптимізаторів (наприклад, людей і роботів). Як це?
Кельмікра

1

ABxAyBxAx

xxyxy

t=0t=1

Підсумок: будь-яке відображення визначає обчислення. Будь-який "пристрій", який перетворює вхід на відповідний вихід, виконує ("обчислює") цей конкретний обчислення.



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


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

IMHO відображення - це саме те, що не обчислення. Думаю, ви плутаєте синтаксис і семантику. Ясно, що ви розумієте відображення як відношення введення-виводу, як би це не було визначено. За всіма моїми книгами, це семантика. Обчислення - це засіб, який використовується для фактичного отримання результату, відповідного деякому входу через послідовність кроків. Хоча ви можете сказати, що будь-яке обчислення визначає відображення (якщо тільки синтаксичне), я вважаю, що неправильно вважати, що відображення визначає обчислення, якщо тільки ви ретельно не поясните, що ви збираєтеся в гіперкомп'ютері, що здається трохи поза питанням.
babou

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

1

Я не буду намагатися визначити, що таке обчислення, яке було зроблено досить добре Луком Матьєсоном та Ювалем Філіусом.

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

Те, на що я прагну, - це те, що ми можемо досить точно визначити те, що ми вважаємо обчисленням, і навіть те, що можна розглядати (надумано?) Як одне ціле. Ми можемо описати обчислення. Але чи можемо ми сказати, що це обчислення?

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

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

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

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

Наприклад, алгоритм GCD описує обчислення. Але це може бути інтерпретовано на натуральні числа, або на многочлени.

Про це нагадує Бертран Рассел : цитата :

Математику можна визначити як предмет, в якому ми ніколи не знаємо, про що говоримо, і чи правда те, що ми говоримо.

Ситуація є приблизно однаковою для обчислень. Це формальна гра, де рухи можна зрозуміти різними способами. Але насправді існують глибокі зв’язки між математикою, формально визначеною аксіоматичними системами, і теорією обчислень.

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

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

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


0

Я люблю відповідати на подібні питання щодо термінології в етимологічному відношенні.

Отже, обчислення походить від латинського слова compŭtus, що дослівно означає «обчислення».

У латинських мовах, таких як французька, італійська, іспанська чи португальська (серед інших), ця етимологія поділяється з "казкою" (історією) у французькій compte / conte в іспанській cuenta / cuento в португальській conta / conto тощо ...

Отже, для обчислення - це обчислити та розповісти, як робився цей розрахунок.

Отже, я б сказав, що обчислення - це процес використання математичних та логічних правил для обробки даної інформації, тому нова змістовна інформація виводиться з вихідних даних, відстежуючи, як створювалася ця нова інформація (процесор, пам'ять, вхід і Вихідні дані є основними)


Французькою мовою казка є "змагання", "куенто" іспанською мовою. У той час як "compte" - це розрахунок, або рахунок, "cuenta" іспанською мовою. Я не знаю, що хоч омофони, "compte" і "conte" поділяють загальну етимологію (не "h" afaik), але ця поширена етимологія, здається, підтверджена в Інтернеті. Тож весь цей обчислювальний бізнес - це лише казки?
бабу

Je l'ai corrigé. Я не повинен робити подібних помилок, але я все ще не так добре пишу французьку мову
Луїс Сієра

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

"слідкуйте за тим, як була створена ця нова інформація (процесор, пам'ять, введення та вихід - це основні принципи)." Це не означає, що щось не є обчисленням, якщо не слідкувати за їх використанням пам'яті, роблячи це? Це не звучить правильно ...
Келмікра
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.