Apa sebenarnya perhitungan itu?

20

Saya tahu komputasi dalam arti yang kabur (itu yang dilakukan komputer), tapi saya ingin definisi yang lebih ketat.

Dictionary.comDefinisi komputasi, komputasi, menghitung, dan menghitung bersifat melingkar, sehingga tidak membantu.

Wikipediamendefinisikan komputasi sebagai "segala jenis perhitungan yang mengikuti model yang terdefinisi dengan baik." Ini mendefinisikan perhitungan sebagai "proses yang disengaja yang mengubah satu atau lebih input menjadi satu atau lebih hasil, dengan perubahan variabel." Tetapi tampaknya definisi ini mencakup banyak tindakan sebagai perhitungan meskipun biasanya tidak dianggap sebagai perhitungan.

Sebagai contoh, bukankah ini berarti bahwa, katakanlah, ledakan bom adalah perhitungan, dengan input menjadi sekering yang menyala dan output menjadi ledakan?

Jadi, apa sebenarnya komputasi itu?

Kelmikra
sumber
Itu pertanyaan besar, klasik.
Ran G.
Gandakan ?
Raphael
@ Raphael Sejauh yang saya tahu, perhitungan! = Sebuah algoritma. Mungkin eksekusi suatu algoritma adalah perhitungan.
Kelmikra
Bagi saya, "P dapat dihitung" == "Ada algoritma yang memecahkan P" (untuk P beberapa masalah). Ini mungkin hasil dari perspektif TCS saya.
Raphael
@ Raphael Ini menanyakan komputasi apa, bukan apa artinya bagi P untuk dapat dihitung.
Kelmikra

Jawaban:

6

Mungkin masalahnya di sini adalah mencari definisi yang sangat spesifik dari konsep yang sangat umum. Saya tidak melihat masalah melihat hampir semuanya sebagai perhitungan. Meskipun kita tidak memikirkannya, semua yang kita lakukan adalah ekspresif dalam hal Fisika dari bagian-bagian komponen, hingga setidaknya quark yang ramai. Kami memiliki situasi yang sama dengan perhitungan. Ada input, output, dan proses (yang semuanya mungkin sepele). Apakah itu menarik atau berguna sebagai perhitungan atau model perhitungan adalah pertanyaan yang sangat berbeda.

Definisi kerja terkuat yang kami miliki datang melalui Turing Gereja-Turing (kuat), yang menyatakan bahwa setiap model komputasi yang mungkin secara fisik dapat diwujudkan tidak lebih kuat daripada Mesin Turing. Jika Anda yakin ini benar, maka meskipun kami mungkin memiliki banyak cara untuk mengekspresikan sesuatu, pada akhirnya kami dapat mengurangi setiap perhitungan menjadi Mesin Turing, karenanya memberikan definisi komputasi sebagai "apa pun yang dapat kami kurangi menjadi Mesin Turing".

Dalam model ini, bom yang meledak adalah perhitungan. Ini bukan yang berlaku secara luas (kami harap;)), tetapi kita dapat memodelkan dalam beberapa mode dengan Mesin Turing (meskipun ada argumen di sini tentang sifat dari output dan kesetaraan dengan output TM). Ini juga bukan model perhitungan yang baik secara umum, karena tampaknya tidak mungkin bahwa model bom yang meledak itu lengkap.

Luke Mathieson
sumber
2
Agak di luar topik, tapi saya yakin model bom yang meledak itu Turing lengkap! Ledakan bisa memicu ledakan lain, yang bisa digunakan untuk menyebarkan sinyal dan membuat gerbang. Bom b dapat diatur untuk meledak pada waktu tertentu melalui perangkat, tetapi bom terdekat dapat menonaktifkan perangkat sementara tidak menyebabkan b meledak, yang memungkinkan untuk tidak-gerbang.
Kelmikra
@ Kyth'Py1k seperti gerbang domino? Saya tidak berpikir bahwa turing akan selesai karena Anda tidak dapat mengulang tanpa batas karena "perhitungan" akan selalu berhenti berdasarkan ukuran mesin / ladang ranjau
ratchet freak
1
@ratchetfreak Tidak, kecuali jika sisa-sisa bom dibuat menjadi bom baru melalui nanobot di dalamnya dan kemudian
ditempatkan kembali
4

Ini adalah pertanyaan yang Turing mulai pecahkan dalam makalahnya yang terkenal pada tahun 1936, Pada nomor yang dapat dihitung, dengan aplikasi ke Entscheidungsproblem , sebuah makalah di mana ia menghasilkan (yang kemudian dikenal sebagai) model mesin Turing. Lihat khususnya Bagian 9.

Pekerjaan Turing adalah dalam konteks angka yang dapat dihitung . Ada konsep komputasi lain yang sesuai untuk menghitung jenis struktur lainnya, dan studi mereka merupakan bagian dari teori komputasi (juga dikenal sebagai teori rekursi).

Perbedaan utama antara pengertian umum tentang perhitungan dan contoh Anda (bom meledak) adalah hal yang sedang dihitung. Apa yang dihitung dengan bom Anda yang meledak? Perbedaan lainnya adalah cara komputasi, tetapi orang dapat membayangkan alat mekanik yang menggunakan bom untuk menghitung sesuatu yang lebih sah.

Poin lain adalah apakah konsep klasik perhitungan berlaku untuk apa yang kita anggap hari ini sebagai komputasi - yaitu, interaksi dua arah antara komputer dan pengguna. Ini adalah kritik umum yang dilontarkan terhadap konsep klasik kemampuan komputasi, meskipun interaksi dapat dimodelkan menggunakan alat-alat teori perhitungan (hanya saja tidak apa yang Anda pelajari di kelas).

Yuval Filmus
sumber
Tentu saja ledakan adalah perhitungan. Ini "menghitung" persis transformasi kesatuan yang menggambarkan ledakan. BTW, banyak kali fisikawan yang saya temui "kesal" ketika Anda mengatakan bahwa (katakanlah) beberapa gerbang kuantum menghitung satu kesatuan, daripada mengembangkannya, atau mengubah sistem fisik sesuai (" apakah gerbang mengambil pena dan kertas dan menghitung kesatuan "?) :)
Ran G.
Saya membaca bagian sembilan dari "Pada angka yang dapat dihitung, dengan aplikasi ke Entscheidungsproblem," tetapi sepertinya tidak terlalu membantu. Meskipun saya tidak membacanya dengan saksama, sepertinya itu merupakan dasar bagi mesin-mesin Turing. Apakah Anda mengatakan bahwa perhitungan adalah segala sesuatu yang dapat dimodelkan sebagai tindakan yang dilakukan oleh mesin Turing? Jika demikian, bukankah hampir semuanya akan menjadi perhitungan? Sebagai contoh, ledakan bom dapat dimodelkan sebagai mesin Turing sedemikian rupa sehingga posisi, kecepatan, dan jenis partikel kuantum dari partikel sekitarnya dikodekan sebagai biner.
Kelmikra
"Apa yang dihitung dengan bom yang meledak?" Perubahan dalam keadaan partikel yang mengelilingi bom menurut hukum fisika sedang dihitung.
Kelmikra
"Poin lain adalah apakah konsep klasik perhitungan berlaku untuk apa yang kita anggap hari ini sebagai komputasi - yaitu, interaksi dua arah antara komputer dan pengguna." Saya tidak berpikir ini yang dianggap komputasi. Robot otonom dianggap melakukan komputasi, meskipun mereka tidak perlu berinteraksi dengan pengguna.
Kelmikra
Inilah ide: komputasi adalah proses menghasilkan keluaran untuk membantu inferensi yang dilakukan oleh pengoptimal (misalnya orang dan robot). Bagaimana dengan itu?
Kelmikra
1

ABxAyBxAx

xxyxy

t=0t=1

Intinya: pemetaan apa pun menentukan komputasi. "Perangkat" apa pun yang mengubah input ke output yang sesuai, melakukan ("menghitung") perhitungan spesifik itu.



(1) kita dapat memperluas diskusi ke jenis perhitungan ini, yang akan masuk akal ketika Anda berpikir tentang fungsi yang tidak rekursif, tapi saya lebih suka tidak pergi ke sana.

Ran G.
sumber
Masalah dengan definisi ini adalah bahwa itu tidak sesuai dengan bagaimana kata "perhitungan" sebenarnya digunakan. PC dianggap melakukan komputasi, sementara, katakanlah, bahan peledak tidak.
Kelmikra
IMHO pemetaan sama sekali bukan perhitungan. Saya pikir Anda mengacaukan sintaks dan semantik. Jelas Anda memahami pemetaan sebagai hubungan input-output, namun didefinisikan. Menurut semua buku saya, itu adalah semantik. Komputasi adalah cara yang digunakan untuk benar-benar mendapatkan output yang sesuai dengan beberapa input melalui serangkaian langkah. Meskipun Anda mungkin mengatakan bahwa perhitungan apa pun menentukan pemetaan (jika hanya yang sintaksis), saya pikir salah untuk menganggap bahwa pemetaan mendefinisikan perhitungan, kecuali jika Anda dengan hati-hati menjelaskan bahwa Anda masuk ke hypercomputing yang tampaknya sedikit di luar pertanyaan.
babou
Saya harus mengklarifikasi semangat jawaban saya (saya sadar tidak seperti itu): pemetaan itu sendiri bukan perhitungan. The Proses mengubah input menjadi output merupakan perhitungan yang pemetaan tertentu (fungsi). Apa yang saya coba sampaikan adalah bahwa proses spesifik itu relevan, setiap proses seperti itu adalah perhitungan (bahkan yang sangat abstrak, misalnya, "oracle").
Ran G.
1

Saya tidak akan mencoba mendefinisikan apa itu komputasi, yang dilakukan dengan cukup baik oleh Luke Mathieson dan Yuval Filmus.

Namun, berpikir tentang perangkat yang meledak sebagai perhitungan membawa saya ke masalah sampingan yang penting: jika ledakan adalah perhitungan, lalu apa yang dihitungnya? Selain representasi perangkat setelah meledak.

Yang saya maksudkan adalah bahwa kita dapat mendefinisikan dengan tepat apa yang kita anggap sebagai perhitungan, dan bahkan apa yang dapat dilihat (dibuat-buat?) Sebagai satu. Kita dapat menggambarkan perhitungan. Tapi bisakah kita tahu apa itu komputasi?

Komputasi, seperti yang didefinisikan secara umum, adalah permainan sintaksis murni. Ini adalah permainan struktur fisik yang sedang diubah sesuai dengan aturan yang tepat. Karena satu-satunya alat kami (hingga transformasi standar) untuk merepresentasikan struktur fisik pada akhirnya adalah string simbol, komputasi akhirnya didefinisikan sebagai semacam transformasi formal pada string simbol. Ini berlaku untuk Turing Machines, lambda-calculus, fungsi rekursif parsial, dan model yang kurang populer lainnya. Kata kalkulus (seperti dalam lambda-kalkulus) sebenarnya mencerminkan pandangan ini karena, dalam bahasa Latin, kalkulus adalah batu kecil yang digunakan untuk representasi.

Tetapi apa yang tidak diceritakan ini adalah apa arti yang harus dilampirkan pada sintaksis ini, apa yang dilambangkannya. Inilah yang sedikit saya pikir saya mengerti, karena saya bukan spesialis masalah seperti itu (jadi periksa kembali). Masalahnya tercakup oleh teori model .

Diberikan sistem representasi formal, mungkin terkait dengan logika (aksioma dan aturan inferensi) atau sistem komputasi (aturan transformasi), model teori formal adalah struktur matematika dengan komponen yang mengikuti aturan ini.

Komputasi yang sama, atau lebih tepatnya deskripsi yang sama dari suatu komputasi sebenarnya dapat memiliki banyak model yang sesuai dengan entitas yang sangat berbeda.

Misalnya, algoritma GCD menggambarkan perhitungan. Tapi itu dapat ditafsirkan pada bilangan asli, atau pada polinomial.

Ini mengingatkan saya pada Bertrand Russell'quote :

Matematika dapat didefinisikan sebagai subjek di mana kita tidak pernah tahu apa yang kita bicarakan, atau apakah apa yang kita katakan itu benar.

Situasinya hampir sama untuk perhitungan. Ini adalah permainan formal, di mana gerakan dapat dipahami dengan berbagai cara. Tetapi sebenarnya ada ikatan yang dalam antara Matematika yang secara formal didefinisikan oleh sistem aksiomatik dan Teori Komputasi.

Komputasi, algoritmik, didefinisikan untuk menyelesaikan masalah matematika, dan banyak konsep modern dipikirkan oleh ahli logika yang mencoba memahami mekanisme yang memungkinkan kita untuk membuktikan teorema, mulai dari aksioma dan penerapan aturan inferensi.

Oleh karena itu, untuk kembali ke perangkat yang meledak, tentu dapat ditafsirkan sebagai manipulasi representasi, yaitu sebagai perhitungan. Tetapi pada umumnya cukup sulit untuk mengaitkannya dengan makna apa pun selain dari dirinya sendiri.

Namun, ini tidak selalu benar, atau tidak. Prinsip perhitungan analog bergantung pada gagasan bahwa sistem representasi yang berbeda dapat digunakan untuk perhitungan yang terkait dalam beberapa cara yang tepat. Kemudian kita dapat menghitung dengan satu sistem untuk memiliki gagasan tentang apa yang sistem lainnya (terlalu sulit untuk benar-benar digunakan, misalnya alam semesta :) akan menghitung dalam pengaturan yang sesuai.

babou
sumber
0

Saya suka menjawab pertanyaan semacam ini tentang terminologi dalam istilah etimologis.

Jadi, perhitungan berasal dari kata latin compŭtus yang literaly berarti "perhitungan".

Dalam bahasa latin seperti Perancis, Italia, Spanyol atau Portugis (antara lain) etimologi ini dibagi dengan "dongeng" (sebuah cerita) dalam bahasa Perancis / conte dalam bahasa Spanyol cuenta / cuento dalam bahasa Portugis conta / conto dll ...

Jadi menghitung adalah menghitung dan menceritakan bagaimana perhitungan ini dilakukan.

Oleh karena itu, saya akan mengatakan, bahwa perhitungan adalah proses menggunakan aturan matematika dan logis untuk memproses informasi yang diberikan sehingga informasi baru yang berarti disimpulkan dari data asli, melacak bagaimana informasi baru ini dihasilkan (prosesor, memori, input dan output kemudian fundamental yang terlibat)

Luis Sieira
sumber
Dalam bahasa Prancis, sebuah dongeng adalah "conte", "cuento" dalam bahasa Spanyol. Sedangkan "compte" adalah perhitungan, atau tagihan, "cuenta" dalam bahasa Spanyol. Saya tidak tahu bahwa, meskipun homofon, "compte" dan "conte" memiliki etimologi yang sama (tidak "h" afaik), tetapi etimologi yang umum ini tampaknya dikonfirmasi di web. Jadi seluruh bisnis komputasi ini hanya dongeng?
babou
Je l'ai corrigé. Saya seharusnya tidak melakukan kesalahan semacam ini, tapi saya masih belum begitu baik menulis bahasa Prancis
Luis Sieira
Atau mungkin dongeng hanyalah perhitungan. Anda mengambil banyak karakter dengan kepribadian tertentu dalam beberapa kondisi awal, dan sisa cerita dihitung
Luis Sieira
"Melacak bagaimana informasi baru ini dihasilkan (prosesor, memori, input dan output kemudian menjadi dasar yang terlibat)." Bukankah ini mensyaratkan bahwa ada sesuatu yang bukan perhitungan kecuali seseorang melacak penggunaan memori mereka saat melakukannya? Kedengarannya tidak benar ...
Kelmikra