Розподілена машина Тюрінга?


10

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

Однією з ідей є створення спільної стрічки (щось подібне до Tuple Space ) між ТМ.


8
Можливо, пов’язано: cstheory.stackexchange.com/questions/426/…
Jukka Suomela

3
запитання, на яке посилається Юкка, може відповісти не повністю. Якщо так, можливо, ви можете закрити цю, а якщо ні, можливо, ви можете уточнити, що відрізняється?
Суреш Венкат

@Suresh Venkat, я думаю, що питання Jukka, пов'язане, безумовно, є темою, але задайте більше питання: "чому немає стандартної / прийнятної моделі для розподілених обчислень?". Моє запитання, безумовно, має відношення до цього питання, але мене мотивували дізнатися про / будь-яке формальне представлення розподілених обчислень.
Маркос Роріз-молодший

добре. це звучить розумно.
Суреш Венкат

2
До речі, ваш підхід "спільної стрічки" більше нагадує модель паралельних обчислень, а не розподілених обчислень. Тому може бути доцільним також переглянути моделі, які використовуються в галузі паралельних обчислень (наприклад, модель PRAM).
Jukka Suomela

Відповіді:


10

[Чи є] офіційне представлення розподіленої системи поверх машини Тюрінга?

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

[Чи можна] розширити (зробити варіант) концепцію машини Тюрінга, щоб скористатися розподіленими обчисленнями?

Я думаю, це цілком можливо, але ніхто (про що я знаю) не заглянув у це. Що я знаю, це такі:

  1. Автоматичні дані про час TO також використовуються в книзі розподілених обчислень Лінча
  2. Спілкування послідовних процесів
  3. Тимчасова логіка дій
  4. Пі-числення (також уже згадувався Олексій)
  5. І більше (були і згадуються тут) ...

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


5

Я здивований, що про Петрі Нетс ще не згадували! Розширення сіток Петрі, таких як кольорові сітки Петрі або сітки Петрі з дугами інгібіторів, є повним Тьюрінгом.


Сітки Петрі є важливим формалізмом у паралельності, але оскільки їх мотивація походить від спроби моделювання певного фізичного процесу, вони насправді не порівнянні з ТМ.
Чарльз Стюарт

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

5

( Попередження: дещо упереджені погляди, надмірні спрощення та поважні узагальнення попереду. )

Часто різницю між розподіленими та паралельними обчисленнями можна підсумувати наступним чином:

  • У розподілених обчисленнях заходи первинної складності пов'язані з комунікаційними та інформаційними потоками : скільки раундів зв'язку ("часу"); скільки бітів передано.
  • При паралельних обчисленнях заходи первинної складності пов'язані з обчисленням та обробкою інформації : скільки елементарних етапів ("часу"); скільки бітів збережено.

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

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

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

"Вузьким місцем" є те, що ви не можете швидко зібрати інформацію. В раундів зв'язку, незалежно від того , що ви робите, кожен вузол може мати тільки інформацію про свою власну радіус околиці. Ви можете мати довільно потужний процесор на кожному вузлі, але яка користь це робить, якщо процесори не мають ніякої інформації для обробки!ТTT

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


3

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


1
Я думаю, що порівняння не дуже доречне. Простіше кажучи, в контексті машин Тьюрінга недетермінізм є ресурсом: це стосується здатності машини одночасно слідувати кількома шляхами виконання, отже, це, по суті, форма паралелізму. У контексті розподілених систем, натомість, недетермінізм є більшою перешкодою: він використовується для моделювання різних непередбачуваних властивостей розподілених систем у реальному світі, таких як відсутність синхронізації та збої.
Антоніо Валеріо Міцелі-Бароне
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.