Mengapa data dalam ilmu komputer dianggap diskrit?


35

Saya mengerti bahwa "struktur" data sepenuhnya tergantung pada Aljabar Boolean, tetapi:

Mengapa data dianggap sebagai entitas matematika yang terpisah dan bukan yang berkelanjutan?

Terkait dengan ini:

Apa kelemahannya, atau invarian, yang dilanggar dalam menyusun data sebagai entitas berkelanjutan dalam dimensi ?r

Saya bukan ahli di bidang ini karena saya seorang mahasiswa matematika tingkat sarjana, jadi saya akan sangat menghargai jika seseorang menjelaskan hal ini kepada saya seperti saya berusia lima tahun.



1
Bacalah bab ini jika waktu mengizinkan. Penulis menjelaskannya dengan sangat mudah untuk dipelajari dari sinyal Analog vs Binary
Muhammad Sayef

Jawaban:


44

Menjawab

mengapa data dianggap sebagai entitas matematika diskrit daripada yang kontinu

Ini bukan pilihan; secara teori dan praktis tidak mungkin untuk mewakili nilai-nilai konkret yang berkesinambungan dalam komputer digital, atau sebenarnya dalam segala jenis perhitungan.

Perhatikan bahwa "diskrit" tidak berarti "bilangan bulat" atau sesuatu seperti itu. "Diskrit" adalah kebalikan dari "kontinu". Ini berarti, untuk memiliki komputer yang benar-benar dapat menyimpan hal-hal non-diskrit, Anda harus dapat menyimpan dua angka adan di bmana abs(a-b) < εuntuk setiap nilai kecil yang sewenang-wenang ε. Tentu, Anda bisa masuk sedalam yang Anda inginkan (dengan menggunakan semakin banyak ruang penyimpanan), tetapi setiap komputer (fisik) selalu memiliki batas atas. Apa pun yang Anda lakukan, Anda tidak akan pernah bisa membuat komputer (fisik) yang menyimpan angka-angka yang diselesaikan dengan semena-mena.

Bahkan jika Anda dapat merepresentasikan angka dengan konstruk matematika (misalnya π), ini tidak mengubah apa pun. Jika Anda menyimpan grafik atau apa pun yang mewakili rumus matematika, maka ini sama diskritnya dengan yang lain.

Tambahan

Sisanya hanya sedikit perspektif di luar bidang ilmu komputer. Seperti yang telah ditunjukkan oleh komentar, topik fisik tidak perlu dipersoalkan, dan seperti yang Anda lihat, saya telah merumuskan paragraf saya berikutnya dengan cara yang agak tidak mengikat apakah itu benar atau tidak. Anggap lebih sebagai motivasi bahwa konsep "kontinum" bukanlah konsep sepele. Jawaban yang diberikan di atas tidak tergantung pada apakah ruang itu terpisah atau tidak.

Perhatikan bahwa semua ini bukan masalah komputer, tetapi masalah dengan arti "terus menerus". Misalnya, tidak semua orang bahkan setuju, atau memang setuju di masa lalu, bahwa Semesta adalah berkelanjutan (mis., Apakah skala Planck menyiratkan bahwa ruangwaktu terpisah? ). Untuk beberapa hal (misalnya, keadaan energi elektron dan banyak fitur lainnya dalam Mekanika Quantum) kita bahkan tahu bahwa Semesta tidak kontinu; untuk yang lain (misalnya, posisi ...) juri masih keluar (setidaknya mengenai interpretasi hasil penelitian ...). (Terlepas dari masalah yang bahkan jika kontinu, kita tidak dapat mengukur dengan presisi arbitrer => Heisenberg dll.).

Dalam matematika, mempelajari kontinum (yaitu real) membuka banyak aspek yang menarik, seperti teori ukuran, yang membuat sangat tidak mungkin untuk benar-benar menyimpan jenis angka / data "kontinu".


Komentar bukan untuk diskusi panjang; percakapan ini telah dipindahkan ke obrolan .
DW

29

Komputer mewakili sepotong data sebagai jumlah bit terbatas (nol dan satu) dan himpunan semua string bit terbatas adalah diskrit. Anda hanya dapat bekerja dengan, katakanlah, bilangan real jika Anda menemukan representasi terbatas untuk mereka. Misalnya, Anda dapat mengatakan "data ini sesuai dengan angka ", tetapi Anda tidak dapat menyimpan semua digit di komputer. Karenanya, program komputer yang bekerja dengan bilangan real sebenarnya hanya bekerja pada subset diskrit .ππR


Komputer digital melakukan itu, tetapi bukan komputer analog.
Drew

Komentar bukan untuk diskusi panjang; percakapan ini telah dipindahkan ke obrolan .
DW

8

Untuk menambahkan semua jawaban yang hebat ini, perlu dicatat bahwa Alan Turing, ketika mendefinisikan mesinnya, berpendapat bahwa jumlah simbol harus terbatas (bahkan jika semena-mena besar) karena komputer (yang berarti: manusia) tidak dapat membedakan semua simbol sebaliknya.

Berikut beberapa kutipan dari makalahnya pada 1936 "On Computable Numbers, dengan Aplikasi ke Entscheidungsproblem":

masukkan deskripsi gambar di sini

Dan kemudian pada bagian 9:

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini


1
Tolong transkripsi gambar agar dapat diindeks oleh pencarian.
Raphael

7

Semuanya dalam implementasi.

Jika Anda memikirkannya, komputer benar-benar merupakan perangkat yang berkelanjutan. Ini mudah ditunjukkan oleh fakta bahwa semua persamaan EM yang mengatur cara kerjanya kontinu. Hal yang berbeda adalah model yang kami gunakan untuk memutuskan bagaimana menggunakan perangkat komputasi ini. Mesin abstrak yang kita gunakan untuk menggambarkan komputasi semuanya terpisah.

Keuntungan praktis yang besar dari ini adalah memiliki kemandirian dari banyak tantangan kontrol kualitas. Jika model komputer kita memanfaatkan sifat kontinu penuh dari transistor dan kapasitornya, maka kita harus peduli seberapa baik kita membangun setiap transistor hingga tingkat yang luar biasa. Kita bisa melihat ini di dunia audio. Di dunia yang dihuni audiofil, masuk akal untuk menghabiskan $ 2000 untuk sebuah amplifier yang mungkin memiliki 10 transistor yang sangat hati-hati dipilih dan cocok yang melakukan hal terus-menerus yang mereka inginkan. Bandingkan ini dengan 1.400.000.000 transistor dalam CPU Core i7 dengan biaya $ 400.

Karena model komputasi kami diskrit, kami dapat memodelkan semua sinyal yang kami lihat di komputer sebagai sinyal diskrit plus beberapa istilah kesalahan kontinu. Kita kemudian dapat menyaring kesalahan hanya dengan mengamati bahwa itu bukan bentuk yang tepat untuk menjadi bagian dari sinyal diskrit.

Bagian utama dari ini adalah penghapusan istilah waktu dalam model abstrak kami. Banyak model kami tidak mengukur waktu terhadap beberapa proses fisik, tetapi terhadap beberapa sinyal "logis" yang dikenal sebagai jam. Jika Anda menghentikan jam, sistem berhenti bergerak, tetapi tidak rusak. Itu baru saja menyelesaikan semua kesalahan analog yang mungkin dimilikinya, dan duduk menunggu pulsa diskrit berikutnya dari jam. Menghapus istilah waktu berkelanjutan secara drastis menyederhanakan perhitungan dan bukti tentang perhitungan. Alih-alih, konsep waktu kami diukur secara terpisah, seperti yang terlihat dalam kategorisasi algoritma P dan NP.


7

Karena:

  • Komputer digital tidak dapat menyimpan angka nyata yang berubah-ubah.

  • Komputer analog terganggu oleh kebisingan termal (jika elektronik), gesekan (jika mekanis atau hidrolik), gangguan, sensitivitas terhadap variasi suhu, ketidaksempurnaan yang tak terhindarkan, dan penuaan. Menghadapi kesulitan seperti itu adalah apa yang dilakukan oleh fisikawan dan insinyur (percobaan). Sebagian besar ilmu komputer hanya mengabstraksikan fisika.

Berikut adalah beberapa makalah tentang perhitungan nyata :

dan inilah makalah tentang perhitungan analog :


4

Istilah "komputer" dalam bahasa modern berarti "komputer digital"; inti dari komputer digital adalah ia memiliki sejumlah kondisi diskrit yang terbatas. Orang dapat memiliki debat yang menarik tentang apakah alasan bahwa komputer digital lebih disukai daripada komputer analog terutama tentang kepraktisan teknik, atau terutama karena dasar yang lebih baik dari ilmu komputer teoretis. Tetapi apa pun alasannya, komputer digital adalah apa yang kita akhirnya dapatkan, dan model matematika apa pun yang berguna dari komputer digital (dan karenanya datanya) akan lebih bersifat diskrit daripada kontinu.


2

Kata ini databerasal dari kata Latin datum, yang berarti sesuatu yang diberikan. Seiring waktu bentuk jamak telah mengubah penggunaan dan sekarang umum digunakan sebagai bentuk tunggal dan jamak. Itu juga terkait dengan informasi secara spesifik.

Perhatikan bahwa ada perbedaan antara item informasi (datum) dan perwakilannya.

Teori Informasi berkaitan dengan (antara lain) informasi terpisah yang diwakili oleh variabel. Ini adalah entitas yang dapat dihitung. Misalnya, kecepatan, lokasi, massa, dan sebagainya semuanya merupakan kuantitas kontinu, tetapi terpisah satu sama lain: tidak ada transformasi antara massa dan lokasi. Ketika jumlah ini direpresentasikan secara numerik, item data mereka, bagaimanapun mereka diwakili, juga terpisah satu sama lain.

Di sisi lain, sebagian besar komputer kita saat ini menggunakan beberapa bentuk muatan listrik untuk merepresentasikan informasi. Tuduhan itu hadir atau tidak; ada arus di sirkuit atau tidak ada. Ini juga diskrit, tetapi tidak harus! Hanya karena cara teknologi kami berkembang, kami menggunakan representasi biner. Ada kemungkinan bahwa perkembangan dalam Quantum Computing akan mengubah ini dalam waktu dekat. Juga tidak terbayangkan bahwa komputer analog akan membuat kebangkitan dan anggapan kami bahwa angka harus diwakili oleh biner akan terhapus!

Untuk meringkas: dataterdiri dari item informasi diskrit, yang masing-masing adalah datum; sedangkan setiap datum tidak perlu diwakili menggunakan matematika diskrit, tetapi saat ini murni oleh kebetulan kontemporer.


1
Teori informasi juga dapat menangani variabel kontinu.
Yuval Filmus

1
Lihat misalnya entropi diferensial .
Yuval Filmus

2

Saya ingin menantang premis dasar Anda:

Mengapa data dianggap sebagai entitas matematika yang terpisah dan bukan yang berkelanjutan?

Bukan itu.

Sebagai contoh, studi tentang Algoritma adalah subbidang penting dari Ilmu Komputer, dan ada banyak algoritma yang bekerja dengan data kontinu. Anda mungkin akrab dengan Algoritma Euclid untuk menghitung pembagi umum terbesar dari dua bilangan alami, tetapi apakah Anda tahu bahwa Euclid juga memiliki versi geometris dari algoritma yang sama yang menghitung ukuran umum terpanjang dari dua garis yang sepadan? Itu adalah contoh dari algoritma (dan dengan demikian objek studi ilmu komputer) lebih dari bilangan real, yaitu data kontinu, meskipun Euclid tidak berpikir tentang hal ini dengan cara ini.

Ada banyak cara berbeda untuk mengklasifikasikan algoritma, tetapi satu cara yang digunakan, adalah dengan mengelompokkannya berdasarkan "kontinuitas":

  • Algoritma Digital (algoritme peristiwa-diskrit atas data digital):
    • varian numerik dari algoritma Euclid
    • divisi lama, perkalian, dll seperti yang diajarkan di sekolah
    • program komputer apa pun, program λ-kalkulus, Mesin Turing
  • Data non-digital, algoritme peristiwa-diskrit (algoritme atas data kontinu, yang bagaimanapun memiliki gagasan "langkah", yaitu data kontinu tetapi waktu diskrit):
    • varian geometris dari algoritma Euclid
    • algoritma pada bilangan real (mis. Prosedur Eliminasi Gauss)
    • algoritma pada fungsi kontinu (mis. algoritma pembelahan)
  • Algoritma Analog (waktu kontinu, data kontinu):
    • rangkaian listrik
    • giroskop mekanik
  • Algoritma Hibrida (kombinasi apa pun di atas)
    • robot

Jawaban lain telah menyebutkan Komputasi Nyata dalam Teori Komputasi, subbidang penting lain dari Ilmu Komputer.

r

Satu-satunya kelemahan nyata (pun sangat dimaksudkan) adalah bahwa data tersebut tidak dapat diwakili dengan komputer digital umum. Anda dapat memikirkan algoritme daripada data kontinu, tetapi Anda tidak dapat menjalankannya pada mesin standar yang biasanya kita gunakan untuk menjalankan algoritme.

Itulah alasan utama mengapa data kontinu tidak "terlihat" seperti data digital.

Namun, implementasi dari algoritma analog sebenarnya tidak perlu rumit untuk dibayangkan atau bahkan dibangun. Sebagai contoh, ini adalah implementasi dari algoritma analog: Sepeda Siklus KemenanganOleh Andrew Dressel  - Pekerjaan sendiri, CC BY-SA 3.0 , Link

rqrq×rπq×π


"Ada banyak algoritma yang bekerja dengan data kontinu" - Kita bisa berdiskusi panjang jika hal-hal seperti itu harus disebut "algoritma", tetapi itu akan menjadi flamewar tentang semantik, jadi janganlah. Intinya, ini bukan "algoritma" yang berjalan pada komputer, tetapi pada perangkat super-Turing teoretis, yang didefinisikan secara formal.
Raphael

1
Saya menemukan metafora sepeda menyesatkan. Sesuatu yang menghitung satu fungsi bukanlah komputer, yang secara implisit kami asumsikan universal hari ini.
Raphael

1

π

Sekarang, himpunan semua data terbatas yang mungkin dapat dimasukkan ke dalam urutan leksikografis, yang berarti himpunan itu dapat dihitung. Tetapi, himpunan bilangan real kontinu tidak terhitung, sehingga selalu ada angka dalam kontinum yang tidak dapat disimpan oleh sistem perhitungan yang diberikan. Dari sini, kita dapat menyimpulkan bahwa penyimpanan bilangan real arbitrer membutuhkan sumber daya tak terbatas.


1
Saya pikir ini menimbulkan pertanyaan . Pertimbangkan komputer yang mengambil input dari selembar kertas yang diperiksa, dan yang memberikan output pada selembar kertas yang digambarnya. Jika data kontinu seperti yang disarankan OP, maka komputer seperti itu bisa sangat tepat dengan hanya sejumlah data yang terbatas.
ruakh

@ruakh. Apakah Anda berbicara tentang sesuatu seperti mesin Turing analog, di mana itu bisa, misalnya, membaca panjang yang tepat dari garis yang ditarik?
Mark H

Ya persis. Seperti yang saya pahami, itulah yang ditanyakan OP.
ruakh

0

Data tidak selalu dianggap sebagai diskrit. Pemrograman ilmiah sering melibatkan aritmatika titik-mengambang. Programmer biasanya berpura-pura bahwa variabel yang terlibat adalah kontinu, sambil tetap mengingat masalah stabilitas numerik, yang berasal dari fakta bahwa data disimpan hanya presisi terbatas.


12
Floating-point adalah diskrit ... jika seorang programmer berpura-pura bahwa itu adalah kontinu, itu hanya berarti bahwa hasilnya tidak penting, atau bahwa programmer tidak mengerti apa yang dia lakukan.
AnoE

2
Dengan hormat saya tidak setuju.
Yuval Filmus

6
@YuvalFilmus sayang karena floating-point diskrit tidak ada lagi yang bisa dikatakan. Setiap kali sesuatu dimasukkan ke dalam komputer biasa telah didiskritisasi.
Jean-Baptiste Yunès

5
@AnoE itu berarti hasilnya dapat dipercaya hingga ketepatan tertentu, itulah yang Yuval maksud dengan "pura-pura". Anda bisa mendapatkan beberapa hasil yang dapat digunakan, tetapi Anda harus mengaburkan ketepatannya. Untuk set besar itu masuk akal. Bandingkan ini dengan masalah mekanika klasik: Anda tahu pengukuran Anda tidak tepat. objek 3cm sebenarnya tidak memiliki 3,000000000 ~ cm lentgh. Anda baru saja memotong presisi pengukuran Anda pada titik yang masuk akal.
Mindwin

6
Saya tidak berpikir pertanyaannya adalah tentang bagaimana pikiran kita bekerja. Saya pikir ini tentang bagaimana segala sesuatunya bekerja. Alasan bahwa angka floating point adalah perkiraan adalah karena mereka terpisah. Bahwa Anda menganggapnya sebagai kontinu meskipun sebenarnya tidak membantu menjawab pertanyaan mengapa nilai diskrit di komputer. Sebagai tambahan, cara berpikir Anda bisa berbahaya. Banyak bug yang dihasilkan dari programmer yang menganggap floating point sebagai kontinu. Bahkan angka-angka umum yang kita cenderung anggap setepat seperti 1/10 atau 1 seperseratus adalah perkiraan dalam floating point.
JimmyJames

-2
  • Agar komputer dapat bekerja dengan data, data harus ada dalam memori yang dapat diakses komputer
  • Memori yang dapat diakses komputer terbatas
  • Hanya data terbatas yang dapat ada dalam memori yang dapat diakses komputer
  • Nilai-nilai non-diskrit tidak terbatas

Data dalam ilmu komputer dianggap diskrit.


elimt(1+1/t)t

Rumus yang Anda tentukan adalah singkatan - Anda tidak dapat menggunakannya dalam perhitungan yang "jawaban" sebenarnya diperlukan dan dengan demikian tidak ada "pekerjaan" yang berarti yang dapat dilakukan oleh komputer. Anda bisa menulis sebuah program penguraian teks kecil untuk menerima dan memuntahkan representasi tekstual dari angka-angka irasional tetapi representasi numerik aktual dari "nilai" angka tersebut tidak dapat disimpan dalam memori - lebih daripada yang dapat saya tulis "this is infinity" pada slip kertas dan mengatakan saya memegang semua yang ada di tangan saya.
Repomeister

1
Anda tampaknya berasumsi bahwa satu-satunya cara untuk menghitung bilangan real adalah dengan menghasilkan ekspansi desimalnya. Itu tidak benar.
David Richerby

2
esayaπ=-116π

1
<,,>,,=,+,-,×,÷x1,x2,...,xnx1,...,xn
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.