Donald Knuth, seorang ahli algoritma, merenungkan lebih dari 50 tahun bekerja pada penciptaan utamanya, buku "The Art of Programming," yang ia terus melengkapi
Donald Knut di rumahnya di Stanford, California. Seorang perfeksionis menyeramkan, telah menunjuk hadiah karena menemukan kesalahan dalam buku-bukunya.Selama setengah abad, ilmuwan komputer Stanford Donald Knuth, agak mirip Yoda - meskipun tingginya 193 cm dan memakai kacamata - telah menduduki posisi dominan sebagai guru spiritual di bidang algoritma.
Dia adalah penulis The Art of Programming, sebuah monograf yang dia terus tulis hingga hari ini, mencapai 4 volume, dan yang merupakan karya hidupnya. Volume pertama diterbitkan pada tahun 1968, dan semua volume bersamaan (dijual dalam set seharga $ 250 [atau 12.500 ₽ / sekitar. Terjemahan).) Pada 2013 dimasukkan dalam daftar buku yang membentuk abad terakhir sains, yang disusun oleh American Scientist. Ini juga termasuk edisi khusus dari Autobiografi Charles Darwin, buku Tom Wolf "
Guys What You Need! ", Buku Rachel Carson "
Silent Spring, " dan monograf karya Albert Einstein, John von Neumann, dan Richard Feynman.
"Seni Pemrograman," dicetak lebih dari satu juta kopi, adalah sebuah Alkitab di bidangnya. “Itu terlihat seperti Alkitab yang nyata - sangat panjang dan komprehensif; tidak ada buku komprehensif seperti itu, ”kata Peter Norvig, direktur penelitian di Google. Setelah 652 halaman, volume ditutup dengan kutipan di sampul belakang sebuah buku oleh Bill Gates: "Jika Anda dapat membaca keseluruhan buku, kirimkan saya resume Anda."
Itu dibuka dengan sebuah bagian dari Koleksi Resep McCall:
Ini adalah buku yang Anda minta untuk diterbitkan dalam ribuan surat Anda. Kami butuh bertahun-tahun untuk menguji dan memeriksa ulang resep yang tak terhitung jumlahnya untuk memberi Anda hanya yang terbaik, menarik, ideal.
Buku ini mencantumkan algoritme, resep yang memberi makan zaman digital - meskipun, seperti yang ingin ditunjukkan oleh Dr. Knut, algoritme juga dapat ditemukan pada tablet Babel yang berusia 3800 tahun. Dia adalah ahli algoritma yang sangat dihormati; beberapa pola yang paling penting dinamai menurut namanya, misalnya,
algoritma Knut - Morris - Pratt untuk menemukan substring dalam string. Itu diciptakan pada tahun 1970 dan menemukan semua kemunculan urutan huruf tertentu dalam teks - misalnya, ketika Anda menekan Ctrl-F untuk mencari kata dalam dokumen.
Dr Knut sekarang berusia 80 tahun, dan ia biasanya berpakaian seperti ketika ia masih kecil, ketika ia baru saja memulai pengembaraan ini: kait T-shirt berlengan panjang di bawah T-shirt dan jins lengan pendek - setidaknya sepanjang tahun ini. Pada masa itu ia menulis program dalam kode mesin, dimainkan dengan angka nol dan satu.
“Knut memperjelas bahwa sistem dapat dipahami sampai ke tingkat kode mesin,” kata Dr. Norvig. Saat ini, ketika algoritma mengontrol (dan mengganggu) kehidupan kita, programmer rata-rata tidak punya waktu untuk menggali kekacauan biner, dia bekerja dengan hierarki abstraksi, dengan lapisan kode - dan seringkali dengan rantai kode yang dipinjam dari perpustakaan. Tetapi elit programmer terkadang jatuh ke level terendah.
"Di Google, kadang-kadang kami hanya mengumpulkan kode dari apa yang kami miliki," kata Norvig saat pertemuan tim Google Trips di Mountain View. “Dan terkadang, ketika Anda perlu melayani milyaran pengguna, Anda perlu melakukan ini secara efisien. Peningkatan efisiensi 10% dapat berubah menjadi miliaran dolar, dan untuk mencapai tingkat efisiensi terakhir ini, Anda perlu memahami apa yang terjadi pada fondasinya. ”
Knut di California Tech, tempat ia mendapatkan gelar doktor pada tahun 1963.Atau, seperti yang dijelaskan Andrei Broder, seorang ilmuwan Google terkenal dan salah satu mantan siswa Knuth, dalam pertemuan itu: “Kami membutuhkan landasan teori untuk pekerjaan kami. Kita tidak perlu algoritme tingkat dua yang sembrono dan canggung. Kami tidak ingin ahli algoritme lain mengatakan: "Ya, kalian idiot."
Diluncurkan pada tahun 2016, aplikasi Google Trips adalah algoritma perjalanan untuk hiburan wisata sepanjang hari. Tim bekerja pada "
memaksimalkan kualitas hari terburuk " - misalnya, algoritma harus menghindari keharusan mengirim pengguna beberapa kali ke tempat yang sama untuk menjelajahi objek wisata yang berbeda. Mereka terinspirasi oleh algoritma berusia 300 tahun yang ditemukan oleh matematikawan Swiss [serta Jerman dan Rusia] Leonhard Euler, yang ingin menggambar jalan melalui kota Prusia Königsberg [sekarang Kaliningrad], melintasi semua tujuh jembatannya hanya sekali. Knut membahas masalah Euler klasik di jilid pertama risalahnya. Dia pernah menerapkan metode Euler untuk memprogram mesin jahit yang dikendalikan komputer.
Mengikuti doktrin Knut membantu menghindari kebodohan. Dia dikenal karena memperkenalkan konsep "pemrograman sastra," menekankan pentingnya menulis kode yang tidak hanya komputer tetapi juga orang dapat membaca - sebuah konsep yang saat ini tampak seperti sesuatu yang kuno. Knut bahkan mengklaim bahwa beberapa program komputer dapat dianggap sebagai karya sastra, bersama dengan puisi Elizabeth Bishop dan novel American Pastoral karya Philip Roth yang pantas untuk Penghargaan Pulitzer.
Ia juga terkenal karena perfeksionismenya. Randal Munroe, penulis kartun xkcd dan Thing Explainer, pertama kali mengetahui tentang Knut dari programmer yang menyebutkan penghargaan yang ia janjikan akan dibayarkan kepada siapa pun yang menemukan kesalahan dalam salah satu bukunya. Seperti yang diingat Monroe, "orang-orang berbicara tentang menerima cek semacam itu seolah-olah itu Nobel dalam ilmu komputer."
Standar-standar Knut yang menuntut, baik sastra maupun yang lain, dapat menjelaskan mengapa pekerjaan sepanjang hidupnya jauh dari lengkap. Dia berdebat dengan Sergey Brin, salah satu pendiri Google dan mantan muridnya, apakah Brin akan menyelesaikan doktornya sebelum Knut menyelesaikan monografnya.
Algoritma Fajar
Pada usia 19 tahun, Knut menerbitkan karya pertamanya tentang subjek teknis, “
Sistem Potensiologis Berat dan Ukuran ” di majalah Mad [Itu adalah majalah yang lucu, dan potrebibi adalah kata dalam bahasa Polandia yang digunakan dalam bahasa Inggris untuk menunjukkan absurditas. Misalnya, dalam karyanya Knut memperkenalkan ukuran baru panjang satu potrecybi, sama dengan ketebalan edisi ke-26 jurnal / kira-kira. diterjemahkan.]. Dia menjadi spesialis dalam ilmu komputer bahkan sebelum munculnya ilmu komputer, belajar matematika di lembaga pendidikan, yang sekarang disebut Universitas Keyes di Wilayah Cadangan Barat. Dia mempelajari program-program terpilih yang ditulis untuk mainframe sekolah IBM 650, komputer desimal, dan, menemui ketidakakuratan, menulis ulangnya dan buku teks yang digunakan di kelas. Sebagai hobi, ia menghitung statistik untuk tim bola basket, dan menulis sebuah program yang membantu mereka menang di liga, berkat jurnalis televisi kenamaan Walter Cronkite bahkan membuat berita televisi tentang dia yang disebut "Pelatih Elektronik".
Selama liburan musim panas, Knut menghasilkan lebih banyak uang daripada guru-gurunya di tahun ini dengan menciptakan kompiler. Kompiler seperti penerjemah, mengubah bahasa pemrograman tingkat tinggi (mengingatkan aljabar) menjadi bahasa tingkat rendah (kadang-kadang kode biner misterius), dan, idealnya, meningkatkan program dalam proses. Dalam ilmu komputer, optimisasi adalah seni, yang tercermin dalam Knuth lain yang mengatakan: "Optimalisasi prematur adalah akar dari semua kejahatan."
Akibatnya, Knut sendiri menjadi kompiler, tanpa sengaja menemukan area baru, yang kemudian ia sebut "analisis algoritma." Penerbit menyewanya untuk menulis buku tentang kompiler, tetapi proyek berubah menjadi sebuah buku yang mengumpulkan semua yang dia tahu tentang bagaimana menulis program untuk komputer - menjadi sebuah buku tentang algoritma.
Knut, pada 1981, sedang mempelajari Majalah Mad edisi 1957, yang menerbitkan artikel teknis pertamanya.
Seni Pemrograman, volume 1-4."Pada saat permulaan Renaisans, sudah ada keraguan tentang asal usul kata ini," buku dimulai. "Ahli bahasa awal mencoba memahami asal-usulnya dengan menciptakan kombinasi seperti algiros [morbid] + arithmos [angka]." Bahkan, Knut melanjutkan, nama ini muncul untuk menghormati penulis Persia dari buku teks abad ke-9, Abu Abdullah Muhammad bin Musa al-Khwarizmi, yang namanya dalam catatan Latin mulai terdengar seperti "Algoritma". Knut, yang tidak pernah puas dengan setengah-setengah, melakukan ziarah pada tahun 1979 ke tanah air al-Khwarizmi, ke Uzbekistan [
lebih tepatnya, ia ikut serta dalam sebuah konferensi di Urgench / sekitar. perev. ]
Sejak awal, Knut ingin menulis satu buku. Segera, Big Bang terjadi dalam ilmu komputer, jadi dia merevisi proyeknya, memecahnya menjadi tujuh volume. Sekarang dia merilis sub-volume, atau masalah. "Volume 4, Edisi 5" berikutnya, yang, antara lain, menggambarkan hal-hal seperti "mundur" dan "tautan menari", seharusnya dirilis kembali pada tahun 2018. Namun, ia ditunda hingga April, karena penulis terus-menerus menemukan semakin banyak tugas baru yang ingin ia sampaikan.
Untuk mengoptimalkan peluang sampai ke akhir pekerjaan, Knut telah lama memantau waktunya dengan ketat. Dia pensiun pada usia 55, berbicara di depan umum terbatas, dan menolak email (setidaknya secara resmi). Andrei Broder ingat bahwa manajemen waktu adalah karakteristik yang menentukan dari gurunya di tahun 1980-an.
Knut biasanya bertemu siswa pada hari Jumat di pagi hari sampai ia mulai menghabiskan malam hari di laboratorium John McCarthy, salah satu pelopor kecerdasan buatan, untuk mengakses komputer ketika mereka bebas. Khawatir dengan bagaimana sebuah buku yang sangat berharga di hatinya mulai terlihat setelah munculnya sistem penerbitan digital, Knut menetapkan sendiri tujuan mengembangkan sistem komputer untuk set pencetakan TeX, yang tetap menjadi standar emas untuk semua bentuk komunikasi ilmiah dan publikasi. Beberapa menganggap itu kontribusi terbesar Knut, dan kontribusi terbesar bagi percetakan sejak zaman Gutenberg.
Penundaan sepuluh tahun ini terjadi pada saat orang yang berbeda menggunakan komputer, dan ketika mereka bekerja lebih cepat di malam hari, ketika kebanyakan orang tidur. Oleh karena itu, Knut beralih ke gaya hidup nokturnal, mengubah jadwal dengan 12 jam, dan mengubah waktu untuk pertemuan dengan siswa dari 8 menjadi 12 malam pada hari Jumat. Broder mengenang: "Ketika saya memberi tahu pacar saya bahwa kami tidak bisa melakukan apa pun pada Jumat malam, karena saya punya janji dengan atasan saya pukul 10 malam, ia berpikir:" Kedengarannya sangat bodoh sehingga tampaknya benar " ".
Namun, ketika Knut memutuskan untuk hadir di suatu tempat secara langsung, ia mencurahkan seluruh perhatiannya pada acara ini. "Bersamanya adalah suatu kesenangan," kata Jennifer Chase, managing director Microsoft Research. “Dia maksimal di komunitas. Jika Anda memiliki fungsi pengoptimalan yang mewakili kehangatan dan kedalaman, maka itu adalah Don. ”
Knut membahas font dengan Hermann Zapf, seorang pengembang font.Minggu dengan seorang Algoritma
Knut tinggal di Stanford dan bertemu dengan orang-orang pada hari Minggu. Apa yang dia sisihkan sepanjang hari itu luar biasa - dia biasanya tidak tersedia selama tidur siang hari, yang merupakan ritual sakral yang berlangsung 13 hingga 16 jam. Dia memulai harinya lebih awal, di Gereja Lutheran Pertama Palo Alto, di mana dia memberikan pelajaran untuk sekolah Minggu di depan kerumunan orang yang berkumpul di sebuah ruangan tanpa kursi. Dalam perjalanan pulang, ia mulai berfilsafat tentang matematika.
"Aku tidak akan pernah tahu segalanya," katanya. "Hidup saya akan jauh lebih buruk jika tidak ada pertanyaan yang saya akan tahu jawabannya, dan jika tidak ada pertanyaan yang saya tidak akan tahu jawabannya." Dia kemudian menawarkan tur ke rumah "California modern" yang dia dan istrinya dibangun pada tahun 1970. Kantornya penuh dengan tumpukan flash drive dan dihiasi dengan kerajinan tangan oleh Jill, seorang desainer grafis, pada Hari Valentine. Yang paling mengesankan adalah ruang musik, dibangun di sekitar organ buatan dengan 812 pipa. Hari itu berakhir di sebuah pesta dengan bir dan teka-teki.
Teka-teki, permainan, menulis
novel tentang
angka surealis , menyusun komposisi musik multimedia 90 menit
Fantasia Apocalyptica - hal-hal semacam itu
memulainya . Salah satu bagian dari bukunya disebut Riddles Against the Real World. Dia mengirim kutipan dari buku itu ke tim ayah dan anak, Martin Demein, seorang seniman, dan Eric Demein, seorang spesialis IT yang bekerja di MIT, karena Knut memasukkan "
font puzzle algoritmik " mereka dalam buku itu.
"Saya terkejut," kata Eric Demain. "Masuk ke buku ini adalah suatu kehormatan." Dia menyebutkan kutipan lain dari Knut, sebuah
hiburan dua tahunan yang menginspirasi
dengan konferensi
Algoritma : "Tujuan utamanya mungkin selalu menyenangkan."
Dan kemudian, kata Demane, area ini berubah menjadi praktis. Insinyur, ilmuwan, seniman - mereka semua berkumpul untuk memecahkan masalah nyata, seperti protein lipat, robot, airbag, menggunakan
metode origami
yang dikembangkan oleh dua Demains,
melipat kertas, dan mengikatnya ke dalam berbagai bentuk.
Tentu saja, semua kekacauan algoritmik ini menyebabkan masalah nyata. Algoritma yang ditulis oleh orang-orang - mendekati tugas yang semakin kompleks, dan mengeluarkan kode yang penuh dengan kesalahan dan bias - sudah merupakan hal yang tidak menyenangkan. Tetapi, lebih buruk lagi, ini adalah algoritma yang ditulis bukan oleh orang-orang, tetapi oleh mesin.
Programmer masih melatih mesin dan memberi mereka data. Data adalah area baru untuk kesalahan dan bias, dan lebih sulit untuk ditangkap dan diperbaiki. Namun, seperti dikatakan Kevin Slavin, associate professor di MIT Media Lab, “Sekarang kami sedang menulis algoritma yang tidak dapat dibaca. Ini menandai momen historis yang unik ketika kita bekerja dengan ide, tindakan, dan upaya, yang disebabkan oleh fisika, yang berasal dari manusia, tetapi tidak dipahami oleh manusia. ” Slavin sering
berkomentar : "Anda memiliki masa depan yang cerah, jika Anda seorang algoritma."
Knut di mejanya di rumah, 1999.
CatatanDan itu akan menjadi lebih indah jika Anda adalah algoritma berpengalaman dalam Knut. "Hari ini, programmer menggunakan apa yang Knut dan lainnya gunakan sebagai komponen algoritma mereka, dan menggabungkan ini dengan segala macam hal lain yang mereka butuhkan," kata Dr. Norvig dari Google.
“Dengan AI kami melakukan hal yang sama. Hanya saja langkah penggabungannya adalah otomatis, berdasarkan pada data, dan bukan berdasarkan pada pekerjaan programmer. Kami membutuhkan AI untuk dapat menggabungkan komponen untuk mendapatkan jawaban yang benar berdasarkan data. Namun, Anda harus memutuskan komponen apa ini. Mungkin saja setiap komponen akan menjadi halaman atau bab dari Knut, karena ini akan menjadi cara terbaik untuk menyelesaikan tugas. "
Jadi kami beruntung bahwa Knut terus melakukan ini. Dia berpikir perlu waktu 25 tahun untuk menyelesaikan "Seni Pemrograman," meskipun penilaian ini tidak berubah sejak 1980-an. Akankah algoritma yang menulis algoritma lain mendapatkan bab mereka di buku, atau halaman di epilog? "Jelas tidak," kata Knut.
"Saya khawatir tentang efek yang dimiliki algoritma terhadap dunia," tambahnya. - Semuanya dimulai dengan fakta bahwa para ilmuwan komputer khawatir karena tidak ada yang mendengarkan mereka. Sekarang saya khawatir terlalu banyak orang mendengarkan kami. "
☃