Penjelasan sederhana tentang kesederhanaan. Bab 1: Secara Teoretis Sederhana

Penjelasan sederhana tentang kesederhanaan


gambar
CAP dengan area yang harus kita kunjungi untuk menjawab pertanyaan UTAMA.

Kata Pengantar


Saya sering mendengar saran: membuatnya lebih mudah.

Dan apa artinya sederhana? Ketika kita mengatakan bahwa objek X sederhana, apa harapan kita untuk X? Ketika kita mengatakan bahwa beberapa hal lebih mudah daripada yang lain - bagaimana kita mengevaluasinya?

Yang lebih mudah:
"Sebuah kalimat kecil dari lima kata" atau kata "deoxyribonucleic"?
"6 * 5" atau "481"?

Atau lebih:
Anda memiliki layar pengaturan. Lima di antaranya berhubungan dengan jadwal, lima lainnya dengan pemberitahuan. Apakah Anda perlu membuat item “jadwal” dan “pemberitahuan” yang terpisah di menu utama? Atau tinggalkan 10 poin di satu layar? Apa yang akan lebih mudah bagi pengguna?

Anda dapat mengatakan bahwa ini subjektif. Bahwa ini ditentukan oleh semacam "rasa kesederhanaan", bahwa untuk satu orang sesuatu bisa sederhana, dan untuk orang lain kompleks.

Oke, kalau begitu katakan padaku mengapa guru menghabiskan waktu menjelaskan sesuatu yang lebih mudah? Mengapa mengedit teks, mencoba membuatnya lebih mudah? Mengapa programmer menghabiskan waktu meninjau kode mencoba mencari solusi mana yang lebih mudah dipahami dan dikembangkan?

Jika kesederhanaan bagaimanapun berkorelasi dengan penilaian kami, maka strategi terbaik adalah persuasi. Mari kita membuat pembaca percaya bahwa teksnya sederhana. Atau kolega, percaya bahwa keputusan kami tidak sulit.

Apakah ini akan mengubah interaksi mereka secara kualitatif dengan hasil pekerjaan kita?

Tidak.

Teks Anda tidak akan lebih mudah dibaca karena dianggap sederhana. Tidak akan menjadi lebih mudah untuk bekerja dengan kode Anda, bahkan jika semua orang di sekitar Anda berpikir bahwa kerumitannya sama dengan kotoran.

Jika Anda diberitahu dalam sebuah wawancara bahwa perusahaan memiliki kode bersih dan dokumentasi yang baik dan Anda percaya, maka ini tidak akan mempengaruhi kesederhanaan bekerja dengan kode tersebut.
Selain itu, bahkan jika seluruh departemen percaya bahwa kode tersebut ditulis dengan baik dan ada dermaga, ini juga tidak akan mempengaruhi hasilnya. Keyakinan mereka pada kode mereka mungkin salah.

Jika kodenya adalah spageti - itu adalah spageti. Jika "dokumentasi" adalah komentar dari format "di sini saya menambahkan 2 angka" - kode tidak memiliki dokumentasi.
Dan tidak ada keinginan, kepercayaan diri, dll. Tidak akan membantu di sini.

Ini tidak berfungsi karena alasan yang sama ( ru , id ) yang Anda tidak dapat memberikan 5 dari teman Anda 1 cupcake jika Anda hanya memiliki 2 kotak masing-masing 2 cupcake. Bahkan jika Anda akan merenungkan seluruh perusahaan selama setahun dengan 2 + 2 = 5, ini tidak akan mengubah situasi yang menyedihkan dengan cupcake.

Sekali lagi. Ada objek, dan beberapa karakteristiknya dapat membuat Anda berpikir ( ru ) bahwa itu sederhana. Dan jika besok penilaian Anda berubah dan berhenti pada tanda "sulit", objek tidak akan peduli.

Dapat disimpulkan bahwa kesederhanaan atau kompleksitas tidak tergantung pada harapan kita. Sebaliknya, objek menentukan karakteristik apa yang akan kita berikan padanya.

Saya ingin memahami objek seperti apa yang saya harapkan untuk dilihat dalam kenyataan, jika saya yakin ( ru ) bahwa itu sederhana. Dan sebaliknya, karakteristik benda nyata apa yang membuat saya berpikir bahwa itu sederhana.
Mengapa Yah, mungkin ini akan membuat hidupku lebih mudah?)

Jika Anda membaca untuk pertama kalinya
Statistik
Waktu membaca: ~ 30 menit.
Jumlah karakter: ~ 25k.

Cara membaca artikel
Jenderal
Saya tidak memiliki otoritas di mata Anda. Saya sengaja tidak memberikan informasi tentang diri saya. Saya ingin Anda membaca artikel ini seolah-olah ditulis oleh siswa tahun pertama. Dalam arti tertentu, memang begitu.

Jika Anda menemukan momen yang tidak dapat dipahami atau kontroversial - tulis tentang itu. Ini akan membantu Anda meningkatkan artikel ini.

Dan dalam hal apapun jangan percaya padaku. Saya tidak ingin kata-kata saya meyakinkan Anda tentang ketidakbersalahan saya. Saya ingin maknanya meyakinkan Anda tentang kebenarannya.

Tentang konvensi
  1. Daftar isi. Setiap bab akan dimulai dengan itu. Itu secara singkat mencantumkan masalah yang dibahas dalam bab ini dan menyediakan tautan untuk menavigasi ke subbagian yang relevan.
  2. Tautan ke sumber daya eksternal. Mereka disajikan sebagai * kata atau frasa * (tautan dengan kode lagu ) atau tautan biasa. Saya mencoba membuatnya sehingga Anda punya pilihan, baca sumber bahasa Rusia atau Inggris. Sayangnya, saya tidak selalu berhasil menemukan keduanya. Ini akan sangat terlihat dalam bab kedua. Runet miskin dalam informasi yang relevan tentang neurobiologi.
  3. Spoiler "Secara singkat." Itu terletak tepat setelah judul ayat bab ini. Tujuannya adalah untuk menyederhanakan pekerjaan dengan artikel jika Anda sudah membacanya. Anda dapat menggunakannya untuk membaca artikel dengan cepat. Tapi hati-hati! Pertama, Anda mungkin tidak mengerti apa yang tertulis di sana tanpa membaca subbagian itu sendiri. Ini adalah tesis ringkas, dan bukan jalan ( ru , en ) untuk itu. Kedua, bahkan lebih berbahaya - bagi Anda mungkin Anda memahami segalanya. Apa pemahaman yang salah dan mengapa itu muncul akan dijelaskan dalam bab-bab berikut.
  4. Spoiler "ITU MATEMATIKA WAKTU". Ini digunakan untuk tidak menakuti Anda dengan perhitungan matematis. Ini duplikat informasi yang sebelumnya disajikan dalam bentuk teks, tetapi dengan cara yang lebih formal.



Informasi umum
Tentang seri ini
Penjelasan sederhana itu sederhana - itu adalah serangkaian artikel yang disatukan oleh pertanyaan umum: "Apa itu" sederhana "dari sudut pandang manusia?"

Saat ini, 3 bab direncanakan:

  • Secara teoretis sederhana - bab ini dikhususkan untuk pengkalimatan pertanyaan dan definisi utama yang terkait dengannya. Kamu disini.
  • Machine Ex Homo adalah bab di mana kita melihat kesadaran kita, mulai dari tingkat perilaku atas dan berakhir dengan koneksi saraf di otak kita. Bab ini telah ditulis dan sedang diedit.
  • Hanya membaca - didedikasikan untuk orang yang membaca model apa pun, baik itu skema, kode, grafik, teks. Ini akan menjadi bab praktis pertama dalam seri kami, di sini kami akan menerapkan pengetahuan kami, dan melihat bagaimana informasi harus disusun untuk memfasilitasi pemahamannya. Kepala dalam proses penulisan.

Ini bukan daftar pertanyaan lengkap yang ingin saya temukan jawabannya. Tetapi saya ingin memulai dengan mereka.

Artikel terpisah akan dipublikasikan tentang mengapa saya menangani masalah ini. Katakan saja tentang motivasi penulis, dan bagaimana dia melihat seri ini. Artikel ini akan ditulis setelah tiga bab pertama.

Mengapa artikel ini muncul?
Saya sering menemukan frasa seperti itu: "Tulis teks lebih mudah" atau "Buat keputusan lebih mudah."
Kadang-kadang saya mendengar kata "hanya" sebagai argumen dalam perselisihan: "Saya melakukannya karena lebih mudah!". Sangat sering lawan mencoba untuk membuktikan bahwa "Mereka lebih mudah", dan beberapa argumen aneh mengarah pada ini.

Tetapi ketika saya bertanya kepada orang-orang, apa yang menurut mereka berarti "sederhana," saya mendengar:
"Ini subjektif." Atau "Ini adalah akal sehat." Atau "Ya, untuk setiap orang dengan cara yang berbeda."
Saya bingung oleh fakta bahwa orang yang cukup pintar berdebat untuk waktu yang lama tentang sesuatu yang mereka tidak dapat secara akurat menentukan dan menganggap subjektif. Lagi pula, jika rasanya, seperti preferensi musik, lalu mengapa mereka menghabiskan waktu di sana? Saya ulangi, ini adalah orang-orang pintar, dan mereka tidak menghabiskan waktu di holivar tentang preferensi musik masing-masing.

Saya banyak memikirkan hal ini, dan setahun kemudian satu pemikiran sederhana muncul di benak saya: bagaimana jika kesederhanaan merupakan karakteristik dari suatu objek yang masih dapat diukur? Ini bisa menyelesaikan semua perselisihan dan menghemat banyak waktu. Dan membungkusnya ...

Mengapa penjelasan sederhana Anda mengambil 3 bab? Tidak bisa lebih pendek?
Karena kenyataan itu kompleks. Dan kompleksitas dari artikel ini secara langsung tergantung pada kompleksitas dari bagian realitas yang digambarkannya.

Seri ini adalah hasil dari ribuan jam mencari dan menggabungkan informasi. Dan juga ratusan ribu jam dihabiskan oleh orang-orang yang pekerjaannya saya gunakan untuknya.

Anda akan menghabiskan beberapa jam membaca seluruh seri. Selusin, jujur ​​saja, Anda akan mengikuti semua tautan.

Saya telah mengurangi jumlah waktu dan upaya yang akan Anda habiskan untuk mendapatkan jawaban atas pertanyaan kami ratusan kali. Dan menyelamatkan Anda waktu yang dibutuhkan untuk mengaturnya dengan benar.

Saya tidak yakin apakah ini penjelasan terbaik. Pekerjaan saya belum selesai. Mungkin dalam prosesnya saya akan mengerti bagaimana memperbaikinya. Saat ini, inilah penjelasan paling sederhana yang saya miliki.


Bab 1. Secara teoritis sederhana


Dalam bab ini, kita akan melihat topik-topik berikut:


Di akhir bab ini, kita akan berbicara sedikit tentang Occam's Razor ( Blade Runner ). Artikel tentang kesederhanaan akan terlihat aneh tanpa menyebutkan prinsip ini.

1.1 Urutan pertanyaan


Secara singkat
Pertanyaan yang tidak membatasi kemungkinan jawaban tidak berguna.
Karakteristik "sederhana" dapat memiliki dua makna:

1) Dasar
2) Sederhana untuk beberapa tindakan

Kami tertarik pada yang kedua.

Pertanyaan kami berikutnya: Bagaimana cara mengevaluasi kerumitan suatu tindakan dan bagaimana menghubungkannya dengan suatu objek?

Penelitian kami dimulai dengan sebuah pertanyaan. Untuk mengajukan pertanyaan dengan benar sangat penting. Penyimpangan kecil:

- Oke, Pikiran Dalam, apa KONDISI UTAMA SIMPLISITAS?
- Saya perlu memikirkannya.
...
...
N juta tahun kemudian ...
- < 42.

// Berdasarkan satu buku yang indah

Kami punya jawaban, tetapi tidak memberikan apa-apa. Semua informasi tentang dirinya terdapat dalam pertanyaan, tetapi pertanyaan itu tidak terlalu spesifik. Kami tidak bisa membuktikannya < 42 - Benar-benar kondisi utama dan tidak bisa menunjukkan yang sebaliknya.

Pertanyaan harus membatasi ruang lingkup kemungkinan jawaban.

"Apa yang sederhana?" - Bukan pertanyaan yang sangat spesifik. Mari kita perjelas. Di awal artikel, kami telah melakukan bagian dari jalur ini:

Ketika kita mengatakan bahwa objek X itu sederhana, apa yang kita harapkan darinya?

Menurut pengamatan saya, ada dua kasus utama:

  1. X adalah objek yang tidak terurai menjadi bagian-bagian komponennya. Di sini kata "sederhana" dapat diganti dengan kata "dasar".
    gambar
    Ini batu bata. Dan, dalam satu hal, ia sederhana.
  2. X mudah untuk melakukan tindakan yang kita butuhkan dengannya. Misalnya, sofa itu sederhana jika kita ingin berbaring di atasnya, dan rumit jika kita perlu menaikkannya ke lantai sembilan.

Kasus ketika objek adalah dasar dapat dimengerti. Tetapi bagaimana jika kita tertarik pada kompleksitas dalam konteks tindakan?

Mari kita pikirkan. Kami melakukan tindakan dengan objek.

Ada tiga entitas utama dalam kalimat ini:

  • Tindakan - deskripsi tentang apa yang terjadi.
  • Pelaku aksi - kami bersembunyi di bawah kata.
  • Objek adalah tujuan dari tindakan tersebut.

Maka kami tertarik pada pertanyaan-pertanyaan berikut:

  • Bagaimana cara mengevaluasi kesederhanaan suatu tindakan tergantung pada objek yang dilakukan?
  • Apa hubungan antara tindakan dan pelaksananya?

Kami akan menjawabnya di bawah.

1.2 Kemudahan penggunaan


Secara singkat
Kami bertindak secara analogi dengan kompleksitas algoritmik.

Kompleksitas tindakan kita adalah jumlah dari kompleksitas tindakan yang diinvestasikan di dalamnya.

Urutan tindakan disebut algoritma.

Tindakan memiliki hasil - ini adalah perubahan kondisi sistem di mana tindakan itu dilakukan.

Tindakan dan objek dapat saling berhubungan menggunakan konsep antarmuka. Antarmuka adalah objek yang menyimpan informasi tentang tindakan apa yang mungkin dilakukan dengan objek yang mengimplementasikannya.

Tidak seperti kompleksitas algoritmik, kita tidak bisa hanya menemukan operasi elementer, dan kita harus mempertimbangkan pelaku tindakan kita.

Pertanyaan kita selanjutnya adalah apa dampak pelaku terhadap tindakan?

Mari kita lihat aksinya.

Kesederhanaan tindakan adalah sesuatu yang berbanding terbalik dengan kerumitannya. Semakin kompleks aksinya, semakin tidak sederhana - jelas. Kami sampai pada pertanyaan berikut:

Bagaimana cara menentukan kerumitan tindakan?


Apa yang bisa kita lakukan dengan tindakan itu? Kita dapat memecahnya menjadi urutan orang lain! Tindakan "baca artikel" dapat dibagi menjadi: "baca paragraf pertama", "baca yang kedua", dll. Mereka, pada gilirannya, membusuk sebagai "membaca kalimat pertama", "membaca yang kedua" ...

gambar

Dengan cara ini, kita mendapatkan tindakan yang perbedaan kompleksitasnya tidak penting bagi kita dan tidak akan bergantung pada objek yang digunakannya (misalnya, membaca huruf). Kami akan menyebut tindakan semacam itu elementer.

Kemudian kerumitan tindakan untuk objek tertentu dapat diukur dalam tindakan elementer ke mana ia dibagi.

Tindakan itu setara jika dibagi menjadi urutan tindakan yang sama.

Apa lagi yang mencirikan tindakan itu?

Algoritma


Deskripsi urutan tindakan yang merupakan tindakan lain, saya akan menyebutnya algoritma ( ru , en ) .

Algoritme dapat dijelaskan secara umum, misalnya:
Membaca: membaca kalimat sampai teks habis.
Dalam bentuk ini, membaca berlaku untuk banyak teks.

Namun, seperti yang Anda pahami, jumlah tindakan "baca kalimat" akan tergantung pada jumlah kalimat dalam teks.

Hasil


Tindakan dilakukan karena suatu alasan, mereka mengarah pada sesuatu. Jadi biarkan tindakan kita membuahkan hasil!

Hasilnya adalah perubahan kondisi sistem di mana tindakan terjadi. Anda menekan sakelar, dan peralihannya ke status "hidup" dan cahaya yang menyala di dapur adalah hasil dari tindakan ini. Anda membaca sebuah kata, dan hasilnya adalah perubahan dalam kondisi otak Anda.

Tindakan yang berbeda dapat menghasilkan hasil yang sama.

gambar

Komunikasi dengan benda


Kembali ke objek. Seperti yang telah kami katakan, Anda dapat melakukan berbagai tindakan dengan mereka. Kita perlu cara untuk memahami tindakan apa yang entitas ini atau itu maksudkan.

Saya akan mulai dengan sebuah contoh.

"Dan bagaimana cara menyeret koper ini?"
- Dia punya pena di samping!

Pegangannya adalah potongan kulit di bagian luar koper, yang dipaku dengan paku keling. Tapi kami dalam hal ini tidak peduli. Kami khawatir ada benda di koper yang bisa Anda pegang.

Semua objek seperti itu akan kita panggil handle. Mereka bisa di cangkir, pintu, koper atau ember.

gambar

Kami sampai pada kesimpulan bahwa kami memiliki dua deskripsi pena dari contoh:

  1. Seperti potongan paku kulit yang dipaku ke koper.
  2. Sebagai konsep yang harus ditangani oleh subjek.

Yang pertama adalah deskripsi dari implementasi ( en ) .

Yang kedua adalah deskripsi antarmuka.

Antarmuka adalah objek yang menyimpan informasi tentang bagaimana Anda dapat berinteraksi dengan objek yang mengimplementasikannya.

Mengapa mereka dibutuhkan? Ini sederhana: paling sering kita tidak tertarik pada bagaimana suatu objek diimplementasikan.
Saat kami ingin menyalakan lampu, kami mencari sakelar, dan tidak masalah bagaimana kerjanya, itu hanya penting bagi kami bahwa kami dapat mengaktifkan / menonaktifkan kondisinya.
Ketika kita melihat tombol, kita sudah tahu bahwa itu bisa diklik.
Ketika kami diberitahu bahwa di suatu tempat ada pena - kami sudah tahu bahwa Anda dapat mengambilnya.
Dan itu sangat nyaman.

Ringkasan


Suatu tindakan adalah urutan tindakan lain yang menentukan algoritmenya. Hasil dari tindakan adalah semacam perubahan sistem.

Kompleksitas suatu tindakan sama dengan jumlah tindakan elementer dari algoritme untuk objek tertentu.

Hubungan antara objek dan tindakan menentukan antarmuka objek. Ini menyimpan informasi tentang tindakan apa yang dapat dilakukan dengan objek.

Pertanyaan kami selanjutnya:
Apa hubungan antara tindakan dan pelaksananya?

1.3 Subjektivitas obyektif


Secara singkat
Untuk menilai dengan benar kompleksitas suatu objek dalam suatu situasi dengan pelaksana tindakan yang berbeda, kita dapat mengatur tindakan kita untuk setiap artis atau kelompok pelaksana tertentu.

Pertanyaan kita selanjutnya adalah bagaimana cara menghitung kompleksitas sekarang?

Anda mungkin memperhatikan:

“Tapi jika kamu melakukan tindakan yang sama, hasilnya bisa berbeda! Jika seorang profesor fisika dapat dengan cepat membaca artikel tentang teori string dan memahami segalanya, maka saya tidak akan mencapai apa pun dengan pendekatan yang sama. Dan untuk mendapatkan hasil yang serupa, saya harus mencari definisi melalui kata, membaca artikel lain dan menghabiskan lebih banyak tindakan. "

Ini poin yang bagus. Saya punya jawaban untuk itu.

Seperti halnya tugas apa pun, tugas kita memiliki kondisi awal. Jika Anda mengubahnya, Anda mengubah tugas itu sendiri. Dan ini mengarah pada kenyataan bahwa implementasinya membutuhkan tindakan yang berbeda.

Anda sedang membaca artikel. Misalkan Anda membaca beberapa halaman dan mengesampingkannya. Sekarang, agar artikel tersebut dapat dibaca, Anda perlu mengurangi tindakan. Tetapi apakah kompleksitas artikel itu sendiri berubah dari ini? Tidak. Tindakan yang akan Anda lakukan dengannya telah berubah. Itu adalah: "baca artikel", itu menjadi: "membalik artikel sampai saat saya selesai, dan membaca sampai akhir."

Apa yang harus kita lakukan dengan tindakan itu? Kami akan memperbaiki hasil yang diinginkan. Seperti yang kita ingat, itu dapat dicapai dengan berbagai cara.

Selanjutnya, kami dapat membagi pemain menjadi kira-kira kelompok yang sama. Ada sejumlah grup seperti itu, jika kita tidak memiliki jumlah pemain yang tidak terbatas.

Sekarang untuk setiap grup, kami menjelaskan tindakan yang akan mengarahkannya ke hasil yang diinginkan.

Kami mendapat serangkaian aksi untuk masing-masing grup pemain. Tetapi apa yang harus dilakukan sekarang dengan kompleksitas?

1.4 Mungkin adil


Secara singkat
Dalam situasi dengan beberapa pemain, kita dapat menghitung ekspektasi matematis dari kompleksitas objek. Untuk melakukan ini, Anda perlu mengevaluasi kemungkinan tindakan yang dilakukan oleh pemain yang berbeda.

Bayes Theorem ( ru , en ) .

Pertanyaan selanjutnya: bagaimana menggambarkan objek yang kita kerjakan?

Kami memiliki serangkaian tindakan. Masing-masing dari mereka milik kelompok pemain tertentu. Kami tahu cara menghitung kerumitan setiap tindakan ini untuk setiap objek tertentu.

Tetapi bagaimana jika kita mencoba mengatur kemungkinan artis masuk ke salah satu grup?
Masalahnya berubah menjadi tugas teoretis klasik.

Kami memiliki tingkat kerumitan tindakan.Kami memiliki kemungkinan melakukan setiap tindakan oleh orang acak.

Kita dapat menemukan "rata-rata" dari kompleksitas kita. Inilah yang disebut ekspektasi matematis ( ru ) . Untuk melakukan ini, kita perlu mengalikan setiap kerumitan aksi dengan objek dengan probabilitas kemunculannya.

Dari mana mendapatkan probabilitas ini dan bagaimana cara membagi pemain ke dalam grup jika Anda belum tahu siapa yang akan secara spesifik melakukan tindakan dengan objek? Pertanyaan bagus!

Pertimbangannya di luar ruang lingkup artikel kami, tetapi saya akan memberikan satu contoh menarik menurut saya.

Anda seorang penulis. Dan tugas Anda adalah menulis artikel di situs yang memiliki bagian tematik. Ketika Anda memposting sebuah artikel, itu akan muncul di feed umum dan di feed "bagian" nya. Bagian memiliki pelanggan, mereka membentuk persentase dari pemirsa situs. Umpan yang dibagikan ditampilkan kepada semua orang. Kami berasumsi bahwa mereka yang berlangganan bagian memahami topiknya, tetapi tidak yang bertandatangan - tidak.
Biarkan artikel kami membahas fisika. Kami telah menganalisis pemirsa dan kami tahu bahwa 3% dari pemirsa situs berlangganan bagian "fisika". Kami mengetahui bahwa kemungkinan pelanggan untuk bagian ini akan memasukkan artikel adalah 80%. Kami juga belajar bahwa kemungkinan mengunjungi artikel dari umpan umum adalah 5%.

Siapa pembaca potensial kita dan haruskah kita "mengoptimalkan" artikel untuk orang yang tidak berlangganan bagian "fisika"? Dengan kata lain, apa kemungkinan artikel kita dibaca oleh orang yang ahli dalam fisika?

Jadi, perhatian, probabilitas ini adalah ... Sekitar 33%.

Sedikit lebih dari dua pertiga dari pembaca potensial kita tidak mengerti fisika, dan kita harus memperhitungkannya.

Bagaimana itu bisa terjadi? Singkatnya: kemungkinan besar mengunjungi sebuah artikel oleh seseorang yang fasih dalam fisika dikompensasi dengan jumlah mereka yang kecil. Peluang kecil untuk mengunjungi artikel dari feed umum mulai memainkan peran penting dalam penilaian kami. Ingin tahu lebih banyak tentang ini? Berikut ini tautan ke artikel bagus tentang teorema Bayes ( ru , en ) .
Jika Anda ingin memeriksa:

WAKTU MATEMATIKA ITU:
3% , 80% . — 0.03*0.8 = 0.024 = 2.4%.

, - = . «» , . , = 0.05*0.03*0.2 = 0.0003, 0.03%.

5% , 4.97%

. (2.4% + 0.03%) .
(2.4+0.03)/(2.4+4.97+0.03) = 0.328.
: ~33%

Kami berbicara tentang tindakan dan mereka yang mengeksekusinya. Saatnya beralih ke pertanyaan terakhir.
Kami sering menggunakan kata objek, tetapi tidak memberi kami informasi tentang itu. Kami memerlukan beberapa deskripsi, cukup abstrak sehingga kami dapat menerapkannya ke banyak entitas, dan cukup informatif sehingga kami dapat bekerja dengannya.

Bagaimana cara menggambarkan objek yang kita kerjakan?

1.5 Sistematisasi pemodelan


Secara singkat
.

— , .

— , ( ).

Saya memutuskan untuk mencoba menggambarkan secara umum teks, tabel, diagram ... dll. Tetapi bagaimana cara melakukannya?

Mari kita mundur dan melihat bagaimana "penciptaan" mereka terjadi, mungkin ini akan membantu kita.

Kami menulis teks. Kami memiliki ide tertentu, kami merumuskannya dalam kata-kata dan menuliskannya. Apalagi, idenya mungkin tidak hanya berupa kata-kata lain. Kita dapat menggambarkan gambar, musik, objek matematika.

Saya menulis kode. Saya memiliki persyaratan yang saya terjemahkan ke dalam kode. Mereka dapat diekspresikan secara verbal atau mewakili gambar, misalnya sketsa antarmuka.
Kami membuat diagram. Kami memiliki beberapa objek, hubungan yang kami uraikan dengan skema ini.

Ada sesuatu yang sama dalam proses ini. Kami memiliki semacam sistem. Kami menerjemahkannya ke sistem lain, sementara tidak harus menggunakan "istilah" yang sama.

Bagi saya, kata "Modeling" cocok untuk menggambarkan proses ini.

Jadi, model adalah sistem yang menggambarkan sistem lain menggunakan notasi yang diberikan (syarat).

Definisi ini mengarah pada pertanyaan yang masuk akal:

Apa itu sistem?


Suatu sistem adalah kumpulan dari beberapa komponen. Ini didefinisikan oleh himpunan status yang mungkin dan kondisi saat ini. Komponen sistem saya akan sering memanggil objek.
Mereka dapat berupa elemen (sesuatu yang telah ditentukan sebelumnya) dan sistem lain yang terdiri dari elemen-elemen ini. Masih ada hal-hal seperti koneksi - mereka muncul ketika kita ingin membatasi atau menentukan keadaan yang mungkin dari satu objek tergantung pada yang lain.

Contoh:
Ada sistem 2 koin. Salah satunya adalah dalam kondisi "elang", yang lain dalam kondisi "ekor".
"Elang" dan "ekor" adalah elemen dari sistem kami.

Koin adalah subsistem yang terdiri dari elemen "kepala" dan "ekor" dan dapat berada di salah satu negara bagian ini. Untuk koin pertama:

gambar

Misalkan kita tidak bisa melempar koin dan dengan demikian membuat perubahan pada sistem. Dalam hal ini, sistem kami dapat digambarkan sebagai:

gambar

Jika kami dapat melempar koin, maka sistem kami digambarkan sebagai:

gambar

Ada ketergantungan antara beberapa sistem. Misalkan keadaan koin kedua tidak bisa sama dengan keadaan koin pertama.

Kemudian, himpunan status koin 2 yang memungkinkan, dengan mempertimbangkan batasan kami, adalah semua status sebelumnya yang mungkin, kecuali untuk koin 1 mana.

gambar

Di sini, kita dapat mengatakan bahwa status koin 2 menentukan status koin 1.

Sekarang mari kita lihat apa yang terjadi jika kita mengubah banyak kemungkinan status koin dengan menambahkan "tulang rusuk" di sana.

Kita dapat membuat semua pasangan untuk status koin 1 dan 2.

gambar

Dalam hal ini, kita berbicara tentang membatasi kemungkinan status koin 2.

PEMBARUAN:


Saya membuat implementasi contoh koin di Jawa. Ini repositori . Selain itu, ini menunjukkan cara menghitung kompleksitas jika Anda mengambil lemparan koin untuk tindakan elementer.

WAKTU MATEMATIKA ITU:
S — .
E(S) — .
V — .
e — .
: S=e=E(S)={E(S1),E(S2),E(Sn)},SkS
Sk — , , .. .
: S=(V,e),V={E1(S)En(S)},eV .
.

, , , .

:
\ {S_j ... S_k \} negara yang menentukan himpunan negara yang mungkin Si .
Ambil produk kartesius X=V(Sj)...V(Sk) - kita mendapatkan banyak set negara yang dipesan x=(En(Sj),...,Em(Sk)) .
Taruh Y=V(Si),y=Et(Si) .
Ambil banyak pasangan yang dipesan a=(x,y) dalamXY .
Jika untuk hal yang sama x sama saja y - kondisi ditentukan x .
Jika untuk hal yang sama x beragam y , maka kondisinya terbatas.

PS
Omong-omong, Anda dapat membuktikan bahwa hanya memiliki dua elemen (0 dan 1, misalnya), Anda dapat menggambarkan sistem apa pun yang jumlah objeknya dapat dihitung. Asalkan Anda dapat membuat urutan elemen tanpa batas. Menurut saya ini adalah fakta yang menarik.

Saya terinspirasi oleh artikel tentang teori sistem ( ru ) dan automata abstrak ( ru ) . Versi deskripsi matematis tentang konsep "sistem" ini sedikit lebih pendek dari yang saya temukan.

Kembali ke model


Kami menyebut model sistem lain, yang merupakan pemetaan pertama. Secara umum, dapat dibangun dari elemen lain. Model sistem adalah peta, sistem itu sendiri adalah wilayah ( en ) . Tidak ada yang mengganggu untuk membangun model model lain. Anda dapat menggambar peta dari peta ( en ) .

Mari kita coba membangun model.

Mari kita mulai dengan klasik: kotak hitam.
Anda memiliki: "input", "output" dan kotak. Anda menunjukkan komponen yang ingin Anda ubah untuk mendapatkan hasil sebagai "input", komponen yang mewakili hasil sebagai "output", dan sisanya sebagai kotak hitam. Model semacam itu tidak menggambarkan ketergantungan internal sistem, tetapi menyembunyikannya. Kami tidak tahu bagaimana hasilnya diperoleh.

gambar

Pendekatan ini sering digunakan dalam kasus-kasus di mana kita ingin mempelajari operasi suatu sistem, tetapi pada saat yang sama kita tidak dapat "membukanya". Misalnya dalam psikologi. Kami memberi orang tes, mereka menyelesaikannya. Kami tidak tahu apa yang terjadi di kepala orang saat ini. Tetapi, setelah mengumpulkan cukup data, Anda dapat menggambarkan kotak perangkat, yang akan memberikan hasil yang serupa. Di bagian Mesin Ex Homo, kami melihat ini secara lebih rinci.

Sekarang kita akan membangun model yang menampilkan seluruh set komponen dan statusnya.

Anda tinggal di Yunani kuno. Tetangga Anda, Zeno ( ru ), sudah menangkap Anda. Putra Aidov ini menerobos masuk ke rumah Anda setiap malam dengan misteri lain yang meledak otak ( ru ) , dan setelah itu Anda menghabiskan malam tanpa tidur untuk berpikir. Anda perlu tidur dan untuk ini, Anda perlu membuatnya diam setidaknya selama beberapa hari.

Terakhir kali dia menggunakan cerita tentang Achilles mengejar kura-kura. Pada malam ini, mata Anda tertuju pada salah satu ember. Suatu pemikiran yang menarik terlintas di benak saya: untuk memeriksa aporia secara lebih rinci, menggunakan ember dan batu.

Anda ingin membuatnya mungkin bagi Anda untuk mengetahui posisi Achilles dan kura-kura relatif terhadap titik awal, pada setiap langkah kura-kura. Kami memiliki: kura-kura yang berjalan, Achilles, yang 10 kali lebih cepat dari kura-kura. Dan posisi awal mereka: 1000 langkah dan 0 langkah.

Model kami belum tahu cara merepresentasikan angka. Dan di atasnya benar-benar mustahil untuk membedakan di mana Achilles berada, di mana kura-kura, di mana jalannya.

Representasi bilangan alami sederhana : ambil ember, masukkan jumlah batu sama dengan angka ini.

Sekarang kita bisa menggambarkan kecepatan dan jalurnya. Dalam ember yang menunjukkan kecepatan Achilles akan ada 10 batu. Dalam ember untuk kecepatan kura-kura - satu batu. Sekarang mari kita beralih ke "ember jalan . " Kami menaruh seribu batu di kura-kura, membiarkan Achilles kosong. Ketika kura-kura mengambil langkah, kami menggeser batu dari kecepatan ke jalur. Apakah kamu sudah selesai?

Belum. Kami tidak memiliki cat untuk menandatangani ember. Hanya batu. Bagaimana cara mengatasinya?

Atau, kita bisa meletakkan ember penyu "kecepatan" di sebelah kanan "ember jalurnya". Lakukan hal yang sama dengan ember Achilles. Dan dorong kembali ember kura-kura. Sekarang kita tahu bahwa dalam kombinasi "dua ember" - ember kanan berkecepatan tinggi, dan ember kiri bergerak.

Anda melihat dua kelompok dua ember. Untuk mengetahui kelompok Achilles mana yang harus Anda naiki, lihat di ember, hitung batu di dalamnya, ingat bahwa kecepatan Achilles adalah 10 langkah, dan buat kesimpulan tentang kepemilikan ember ke Achilles. Dan jika kita ingin membuat beberapa perubahan dan membuat kecepatan Achilles sama dengan kecepatan kura-kura? Maka cara kami memeriksa Achilles umumnya berhenti bekerja!

Karena itu, di depan ember kecepatan dan jalur, kita akan meletakkan "ember nama". Sekarang telah menjadi yang paling kanan. Dan biarkan aturan kita terlihat seperti ini: jika ember namanya kosong, maka ember yang mengikutinya adalah kura-kura. Dan jika ada batu, maka kelompok ember ini berarti Achilles.

gambar
Saya tidak menggambar batu di S, tapi saya pikir jelas bahwa untuk langkah pertama ember Achilles kosong, dan kura-kura itu mengandung 1000 batu.

Anda bersukacita. Sekarang Zenon harus berpikir keras tentang mengapa dia memutuskan bahwa dia bisa selamanya melanjutkan proses pembagian batu. Setidaknya Anda sangat berharap begitu.
Sayangnya, ini tidak membantu Anda meningkatkan kualitas tidur Anda. Zeno benar-benar tidak datang pada malam berikutnya, tetapi sekarang Anda sendiri tenggelam dalam pikiran. Akankah saatnya tiba ketika batu tidak dapat dibagi ( ru ) ?

Lihat, untuk setiap langkah, kami mendapat semacam status dari masing-masing objek yang kami pertimbangkan. Posisi Achilles berhubungan dengan satu ember, kura-kura ke yang lain. Untuk kecepatan, situasinya mirip. Model kami sepenuhnya menggambarkan semua keadaan yang mungkin dari semua objek dari sistem yang disimulasikan.

Teks juga merupakan model sistem. Istilah dalam hal ini adalah kata-kata. Mereka didefinisikan oleh maknanya, atau banyak makna, yang terbatas tergantung pada konteksnya.
Sensasi kita juga merupakan model yang otak kita ciptakan berdasarkan informasi yang datang dari luar.

Singkatnya, Anda menemukan model setiap saat.

Apakah Anda masih ingat mengapa kita semua melakukan ini? Untuk jaga-jaga: kami memberikan definisi untuk model, kemudian menghitung kerumitannya. Waktunya telah tiba, mari kita lihat bagaimana ini dapat diterapkan.

Anda adalah desainer UX. Tugas Anda: membuat halaman pengaturan aplikasi. Anda tahu bahwa mereka tidak akan berubah di masa depan. Ada sepuluh dari mereka secara total: lima pengaturan pemberitahuan grafis dan lima.

Anda dapat meninggalkan semuanya di satu layar. Anda juga mendapat ide bahwa Anda dapat membuat item "jadwal" dan "pemberitahuan" di layar pertama, dan beralih ke layar yang sesuai dengan lima pengaturan.

gambar

Mari kita asumsikan bahwa pengguna kita memiliki memori yang sangat buruk dan kebiasaan membaca dari atas ke bawah. Tetapi pada saat yang sama, ia cukup pintar untuk tidak membuat kesalahan di bagian, dalam kasus ketika kami mengelompokkan opsi. Dia tidak membaca nama layar dan langsung ke item menu.

Kami hanya memiliki 10 pengaturan, mereka dapat ditampilkan di layar dengan daftar, dan pengguna hanya melihat item yang diinginkan. Kami percaya bahwa pengguna tidak perlu menggulir lembar dalam hal ini. Di sisi lain, jika pengguna membutuhkan pengaturan dari akhir, akan lebih mudah baginya untuk menemukannya, karena ia tidak harus membaca seluruh daftar, ia akan dapat melewati setengah dari poin yang tidak diperlukan.

Model mana yang akan memberi kita interaksi yang lebih sederhana?

Tindakan yang dapat dilakukan pengguna dengan item daftar: baca dan colok ke dalamnya. Diterjemahkan ke dalam bahasa antarmuka: item menu memiliki sifat keterbacaan dan pokeability. Semua poin pendek, sehingga perbedaan dalam kesulitan membacanya diabaikan. Kami berasumsi bahwa tindakan "menyodok" dan "membaca" adalah dasar dalam konteks kami. Kompleksitas mereka adalah 1.

Kami berharap pengguna memiliki kemungkinan yang sama untuk meminta barang apa pun. Tidak masuk akal untuk mengambil salah satu dari mereka.

Tentu saja, Anda sudah memiliki semacam firasat tentang jawabannya. Saya sarankan Anda menuliskannya, juga menuliskan keyakinan Anda bahwa jawaban Anda benar. Misalnya, pada skala 1 hingga 10, di mana 10 sangat pasti, 1 tidak yakin sama sekali. Anda akan membutuhkan data ini untuk membandingkannya dengan hasilnya. Di bawah spoiler "Keputusan" akan ada survei. Sayangnya, habr tidak memungkinkan untuk melakukan jajak pendapat di mana pun dalam teks, sehingga tautan mengarah ke formulir google. Di sana Anda dapat melewatinya dan melihat statistik hasil keseluruhan.

Saya menyarankan Anda untuk mengambil pena, selembar kertas, buka kalkulator dan hitung sendiri kesulitannya. Dan baru kemudian buka spoiler.

Solusi:
Jika pengguna membutuhkan item kedua, algoritme tindakannya terlihat seperti ini:
Baca paragraf pertama -> baca paragraf kedua -> usap jari Anda, dan kesulitannya masing-masing: 2 + 1 = 3.
Untuk menemukan kompleksitas rata-rata, kita perlu menemukan kompleksitas navigasi untuk setiap item, menambahkannya dan membaginya dengan 10.
Untuk item pada satu layar: ((1 + 1) + (2 + 1) + (3 + 1) + (4 + 1) + (5 + 1) + (6 + 1) + (7 + 1) + ( 8 + 1) + (9 + 1) + (10 + 1)) / 10 = 6.5
Sekarang mari kita beralih ke kompleksitas opsi sub-menu. Untuk menemukan opsi yang diinginkan, pertama-tama kita harus memilih bagian yang diinginkan dan menusuknya. Untuk item pertama, tindakannya terlihat seperti ini:
Baca nama bagian pertama -> poke -> baca nama paragraf pertama -> poke.
Kesulitan 4.
Mari jujur ​​menghitung:
((2 + 1 + 1) + (2 + 2 + 1) + (2 + 3 + 1) + (2 + 4 + 1) + (2 + 5 + 1) + (3 + 1 + 1) + ( 3 + 2 + 1) + (3 + 3 + 1) + (3 + 4 + 1) + (3 + 5 + 1)) / 10 = (4 + 5 + 6 + 7 + 8 + 5 + 6 + 7 + 8 + 9) / 10 = 6.5

Apakah mereka sama?

...
...
...

Jujur, ketika saya menemukan contoh ini, saya mengharapkan jawaban yang berbeda. Tampak bagi saya bahwa metode dengan pengelompokan dalam tugas ini lebih baik.

Seperti yang saya janjikan, Anda dapat mengambil bagian dalam survei dan melihat statistik pada jawaban. Dan tolong jangan gunakan fakta bahwa Anda dapat mengirim beberapa jawaban. Saya tidak ingin memaksa Anda untuk masuk ke akun Google Anda sehingga lebih nyaman bagi Anda untuk menjawab dan menonton hasilnya, dan sebagai gantinya saya meminta Anda untuk tidak mengganggu pengumpulan statistik.

Jadi, jika kita meninggalkan contoh yang sama, tetapi pertimbangkan jumlah poin yang berbeda? 4 dan 4, 3 dan 3, 6 dan 6?

Sekali lagi, saya sarankan Anda melakukannya sendiri. Petunjuk: baca tentang jumlah perkembangan aritmatika dan buat persamaan, tergantung pada jumlah total poin.

Di bawah ini hanya jawabannya, jadi jika Anda ingin tahu bagaimana hasilnya, Anda harus bekerja sedikit.

Jawabannya adalah:
Jika Anda memiliki 5 poin di setiap bagian, kesulitannya akan sama.
Dengan 6 dan lebih banyak, opsi pembagian akan menang.
Dengan 4 atau kurang, opsi satu daftar akan menang.


Saya memasukkan contoh ini ke artikel pada tahap pengeditan akhir. Penting bagi saya untuk merangkum apa yang kita bicarakan. Tautkan informasi dari bab-bab sebelumnya dengan cara yang dapat dimengerti. Sehingga Anda dapat dengan mudah membayangkannya dan mencoba menggunakan apa yang kita bicarakan.

Saya salah. Ketika saya menulis contoh ini, saya berpikir bahwa saya tahu apa jawabannya. Dan sekarang saya cukup terkejut. Tidak, itu tidak benar. Ketika saya dengan jujur ​​melakukan semua perhitungan, hasilnya sangat memukul saya. Di kepala saya, sesuatu seperti yang berikut terjadi:

- * Bersamaan * KAMI DITANGGUHKAN?!

Dan membungkusnya ...
- * Suara 1 * Apa? Bagaimana bisa begitu! Saya, ibumu, pengembang aplikasi seluler! Dan dilihat dari ulasan rekan-rekan saya, saya adalah pengembang yang baik! Kompetensi saya dalam hal ini tidak membuat saya banyak ragu!

- * Suara 2 * Baiklah, ya. Lalu apa?

- * Suara 1 * Ya, saya melihat aplikasi ini siang dan malam. Saya membaca banyak pedoman. Saya sudah membuat ratusan daftar ini. Saya memiliki cukup kualifikasi di bidang saya untuk memperbaiki kesalahan desainer kami!

- * Suara 2 * Ya, lalu apa?

- * Suara 1 * Saya menulis artikel sialan ini! Sebagian besar pekerjaan saya adalah untuk memudahkan orang lain berinteraksi dengan keputusan saya! Saya telah melakukan ini selama bertahun-tahun! Tidak hanya selama jam kerja, tetapi juga hampir semuanya gratis. Pengalaman saya telah lama melebihi 10k jam dangkal!

- * Voice 2 * Boy, sebenarnya aku juga kamu. Anda tidak mengatakan sesuatu yang baru, langsung saja.

- * Suara 1 * Saya menyimpulkan bahwa contoh saya adalah sintetis. Itu tidak mencerminkan kenyataan, semuanya akan berbeda di dalamnya, dan karena itu jawabannya, yang saya sarankan pertama, akan benar. Pengalaman saya telah memungkinkan saya untuk memperhitungkan jauh lebih banyak daripada yang ada dalam contoh ini.

* Sirene dan lampu merah menyala *

- * Suara dari speaker * Bagian dari kesadaran Anda yang telah kami konfigurasi untuk mendeteksi pola yang salah dalam berpikir sedang berbicara. Kesalahan yang diperhatikan: efek terlalu percaya diri , konfirmasi bias , persepsi selektif . Pola banding ke otoritas diakui, tetapi informasi ini masih diverifikasi. Karena bahaya penipuan diri sendiri, Anda diperintahkan untuk bernafas lebih dalam dan minum teh.

- * Suara 1 * Tidak menipu diri sendiri! Anda tahu bahwa semua yang saya katakan kami anggap benar!

- * Suara 2 * Dan Anda tahu bahwa ada perbedaan besar antara kenyataan dan pendapat Anda tentang apa yang seharusnya.

- * Suara 1 * Baiklah, bliiiiiin, lagi kuliah ini.

- * Suara 2 * Bayangkan bahwa Anda percaya orang tahu cara terbang. Apakah ini akan menyelamatkan Anda ketika melompat dari atap?

- * Suara 1 * Saya tidak bisa. Saya melihat bahwa orang lain tidak terbang, jadi saya tidak akan membuat kesimpulan bodoh tentang diri saya. Dan secara umum, Anda hiperbola.

- * Suara 2 * Kamu gila. Atau Anda dibius. Atau mereka mengenakan setelan ideal realitas virtual, Anda menghabiskan 5 tahun di dalamnya dan semua orang di sana terbang, Anda sendiri yang tahu cara terbang, otak Anda beradaptasi dan "tahu" bagaimana melakukannya. Pikiran, sensasi, harapan, dan umumnya kita adalah keadaan otak kita. Setidaknya itu adalah hipotesis kami. Dan kita tahu bahwa ada situasi yang jauh lebih aneh daripada kepercayaan pada kemungkinan penerbangan. Ingat buku "The Man Who Took Wife For A Hat".

- * Suara 1 * Oke, otak bisa benar-benar gagal, tetapi dalam contoh Anda, saya akan benar-benar jatuh, bahkan jika saya berpikir dalam penerbangan bahwa saya sedang terbang. Jika saya punya cukup waktu, saya akan perhatikan bahwa saya salah terbang, tetapi sudah terlambat.

- * Suara 2 * Oke, dan sekarang kembali ke tanya jawab. Heh, permainan kata keren. Anda menemukan contoh ini. Anda tahu tentang peraturannya. Anda tahu bahwa Anda sangat menyederhanakannya, dibandingkan dengan kenyataan. Anda tahu bagaimana menyelesaikannya. Dan Anda membuat kesalahan dalam asumsi awal Anda.

- * Suara 1 * Ini bukan aku! Saya membuat pilihan secara intuitif, Anda tahu cara kerjanya!

- * Suara 2 * Dan Anda tahu bahwa ini sering tidak berfungsi dengan benar. Dan inilah bukti lain untuk Anda.

- * Suara 1 * Dan bagaimana dengan argumen terakhir saya? Bagaimanapun, ini memang perkiraan, dan dalam kenyataannya semuanya akan berbeda.

- * Suara 2 * Argumen ini benar. Pada kenyataannya, semuanya akan berbeda. Hanya dari situ tidak berarti Anda benar.

Bayangkan: Anda mulai membawa contoh lebih dekat dengan kenyataan. Anda dengan jujur ​​mempertimbangkan hubungan kompleksitas tindakan untuk “menyodok” dan “membaca”, Anda melakukan penelitian tentang bagaimana orang melihat layar, bagian mana dari nama dalam daftar ini yang cukup bagi mereka untuk memahami bahwa ini bukan intinya.
Anda melengkapi contoh ini dengan sejumlah besar kondisi, menjadi ratusan kali lebih rumit.
Maaf, tetapi dalam kasus ini, probabilitas bahwa Anda mendapatkan jawaban yang benar "karena intuisi" jauh lebih rendah daripada ~ 50% yang dimiliki oleh pilihan acak.
Apakah Anda begitu yakin bahwa kenyataan akan berdiri di sisi Anda? Mengapa Buktikan itu.

- * Suara 1 * Ya, saya tidak yakin! Hanya ...

- * Suara 2 * Sulit. Sulit untuk mengakui bahwa Anda salah, saya tahu. Tapi Anda mengerti mengapa kami membutuhkannya. Fakta bahwa situasi ini telah terjadi hanya menunjukkan bahwa kita adalah rem dan belajar lebih lambat dari yang kita inginkan. Tapi kami tahu apa yang harus dilakukan.

- * Suara 1 * Kebenaran sederhana dibaca kembali, atau apa?

- * Suara 2 * Pilihan yang sangat bagus. Itu selalu meyakinkan kita dalam situasi seperti itu. Anda juga bisa bernafas dalam. Dan ya, kami menemukan situasi ini dalam waktu kurang dari 1,5 menit. Saya melihat seberapa cepat sistem deteksi kesalahan bekerja? Saya pikir kita layak mendapatkan kue. Dia tidak ada di rak, ada Potensi Bucket sialan, tetapi kita akan membelinya untuk diri kita sendiri.

- * Suara 1 * Namun menarik apa yang akan terjadi dalam kenyataan ...

- * Suara 2 * Apakah Anda lupa mengapa kami menulis artikel ?!

...
...
...

Saya minta maaf atas penyimpangan dan contoh yang begitu banyak. Mungkin Anda belum siap untuk membaca lebih lanjut, dan Anda ingin memikirkannya lagi. Dan itu pilihan yang bagus.

Pada awalnya ada daftar isi, Anda dapat membookmark artikel dan dengan cepat kembali ke tempat ini.

Sudahkah Anda memutuskan untuk melanjutkan? Kemudian, kita memiliki topik terakhir dari yang ingin saya sampaikan.

1.6 Blade Runner


Secara singkat
Pisau cukur Occam dan kemungkinan hipotesis.

Pisau cukur Occam dalam hal kesederhanaan sistem.
Nyatakan kompleksitas perubahan dalam Cdan kompleksitas sistem sampai berapa C dan setelah itu bagaimana C$ .
k=(CC)/Cand .
Jika k lebih dari 1 adalah perubahan yang baik.
Jika k kurang dari 1 adalah dapat diterima, tetapi tidak membayar perubahan.
Jika k kurang dari 0 adalah perubahan yang sangat buruk.

Jika kita mengasumsikan bahwa kompleksitas meningkat dengan jumlah objek dalam model, dan bahwa kita sudah memiliki seperangkat model tertentu, kita mendapatkan bahwa opsi terbaik adalah model dengan jumlah objek minimum, yang sangat mirip dengan kata-kata dari Occam's Razor.

Kemungkinan besar Anda tahu Occam's Razor, tetapi untuk berjaga-jaga, saya akan mengingatkan Anda:
"Entitas baru tidak boleh ditarik kecuali benar-benar diperlukan."

Secara umum, prinsip ini ditafsirkan sebagai berikut: dari semua hipotesis, yang paling mungkin adalah yang dijelaskan oleh subprogram terpendek (atau, lebih sederhana, yang lebih pendek) ( ru , en1 , en2 ) .

Seperti apa kehidupan nyata:
Jika Anda menyalakan lampu dan lampu menyala, maka hipotesisnya adalah sebagai berikut:

  1. Saklar menutup sirkuit listrik dan arus melewati bohlam.
  2. Switch menendang gnome kecil, yang menghubungkan kabel, sebagai akibatnya sirkuit ditutup dan arus melewati bola lampu.
  3. Saklar menendang gnome kecil, yang mendorong troli tempat naga kecil itu duduk, yang ketakutan oleh nyala api, yang melelehkan solder, yang menghubungkan kabel-kabel, sebagai akibatnya sirkuit ditutup dan arus melewati bola lampu.

Dari hipotesis ini, yang mengandung lebih sedikit entitas tanpa gnome lebih disukai. Namun, jika ketika Anda menyalakan bola lampu, Anda mendengar diam-diam bersumpah dari saklar, hipotesis kedua lebih disukai, karena yang pertama tidak menjelaskan mengapa saklar bersumpah, dan yang terakhir berisi entitas yang berlebihan.

Saya akan jujur. Ketika saya pertama kali mendengar Razor Occam, saya tidak memikirkan hipotesis. Dan kata-katanya yang tidak jelas dalam bentuk verbal membawa saya pada gagasan bahwa ini adalah prinsip umum - kurangi jumlah entitas yang ada di sistem Anda dan semuanya akan menjadi keren.

Saya sangat keliru .

Tetapi ketika saya memiliki deskripsi tentang kesederhanaan sistem, saya menyadari bagaimana memperbaiki interpretasi saya yang salah tentang prinsip ini. Dan buatlah sesuatu yang bermanfaat darinya.

Kami memiliki sistem Sebelum dan Setelah beberapa perubahan.

Jika perbedaan dalam kompleksitas Sebelum dan Setelah lebih besar dari kompleksitas proses pembuatan perubahan, perubahan ini dibenarkan. Dipahami bahwa perubahan tidak mempengaruhi hasil (setidaknya bagian yang kita butuhkan). Sebut saja ... Kondisi yang diperlukan untuk penyederhanaan.

Sekali lagi:

Penyederhanaan yang diharapkan dari sistem setelah perubahan harus lebih besar daripada kompleksitas perubahan itu sendiri.

Jika kami menunjukkan kompleksitas perubahan untukC kompleksitas sistem sampai berapa C dan setelah itu bagaimana C lalu kita dapatkan:

CC>C .
Kami juga dapat mengungkapkan analog efisiensi untuk perubahan kami.
k=(CC)/C .
Jika klebih dari satu adalah perubahan yang baik dan halal yang memenuhi kondisi penyederhanaan yang diperlukan.
Jikakkurang dari 1, tetapi lebih dari 0 - ini berarti Anda menyederhanakan sistem, tetapi menghabiskan lebih banyak upaya untuk itu daripada mendapatkan keuntungan.
Jikakkurang dari 0, maka ini memberitahu Anda bahwa perubahan seperti itu tidak layak dilakukan. Anda menyulitkan.

Mengapa itu dibutuhkan? Misalnya, Anda bertindak dalam kondisi di mana Anda memiliki waktu terbatas, dan Anda ingin memprioritaskan perubahan yang ingin Anda buat. Perubahan dengan besarkharus dipertimbangkan terlebih dahulu.

Contoh:

Kami memiliki dua teks, satu dengan yang lain tanpa.

Di satu sisi, kami meningkatkan volume teks, sehingga menyulitkannya. Tetapi di sisi lain, berkat ini, beberapa pembaca tidak akan Google "contoh pisau cukur Occam," yang merupakan tindakan yang lebih rumit daripada hanya membaca. Jika dalam perkiraan kami akan ada banyak pembaca seperti itu, maka pengenalan contoh akan menyederhanakan artikel kami.

Kita tidak boleh lupa bahwa kita juga mengambil beberapa tindakan untuk menggambarkannya, dan mereka memiliki kompleksitasnya sendiri. Jika kita menghabiskan terlalu banyak tindakan, dan penyederhanaan tidak cukup - pengenalan esensi kita “tidak membuahkan hasil”.

Hmm, bagaimana semua ini terhubung dengan Occam's Razor?

Mari kita asumsikan bahwa kita sudah memiliki beberapa sistem. Dan kerumitan mereka secara langsung tergantung pada jumlah entitas (di dunia nyata ini tidak selalu benar, seperti yang sudah kita ketahui). Hasil tindakan dengan sistem ini cocok untuk kita.

Karena sistem sudah ada, makaC0(Anda tidak perlu melakukan apa pun untuk membuat perubahan pada sistem). Mari kita ambil sistem dengan jumlah minimum entitas, dan hitungkrelatif terhadap sistem lain. Kami mengertikakan sama dengan minus tak terhingga. Dari sudut pandang kesederhanaan, dalam kondisi seperti itu, untuk memilih sistem yang berbeda dari yang mengandung paling sedikit objek adalah solusi yang sangat bodoh. Ini memberitahu kita bahwa dari semua sistem, kita harus memilih salah satu yang berisi paling sedikit objek. HmCuriga mirip dengan Occam's Razor.

Apa lagi yang bisa dijelaskan menggunakan kondisi ini?
Misalnya, Anda dapat mengevaluasi kapan layak menerapkan berbagai praktik peningkatan kode, dan ketika tidak ada gunanya.

Bahkan, jika Anda menulis tugas di universitas, kode yang akan dibaca sekali (atau tidak dibaca sama sekali, tetapi hanya melihat cara kerjanya), maka Anda tidak perlu khawatir tentang itu dibaca dengan baik.

Tetapi jika Anda menulis untuk proyek OpenSource, dan ratusan orang akan bekerja dengan kode Anda, atau menulis proyek yang Anda rencanakan untuk dikembangkan, Anda harus menjaga kualitasnya.

Jika Anda menulis ringkasan, Anda harus mengevaluasi apakah Anda akan membutuhkannya di masa depan. Jika guru hanya akan memeriksa ketersediaannya, dan semua informasi lebih mudah ditemukan di Google, lalu mengapa menyulitkannya?

Jika Anda menulis artikel, tentukan bagaimana Anda melihat interaksi dengannya. Misalnya, artikel ini tidak dimaksudkan untuk dibaca hanya sekali. Saya mencoba mengoptimalkannya untuk pencarian cepat. Itu sebabnya di bawah setiap bagian ada spoiler "Singkat" dan daftar isi di awal.

Oh, jika kita punya cara untuk menggambarkan bagaimana seseorang akan membaca model kita, dan temukan kompleksitas model ini untuk dibaca. Kita dapat mengatakan dengan pasti bagaimana tindakan kita akan memengaruhi kerumitan proses ini dan menerapkan teori kita dalam sejumlah besar masalah praktis.

Sayangnya, untuk ini, Anda perlu membuat algoritma umum untuk membaca orang dari model apa pun. Jika menurut Anda ini adalah tugas yang sangat sulit - Anda benar.

Untungnya, saya sudah melakukan bagian dari pekerjaan ini.

Dalam bab selanjutnya, yang akan disebut Machine Ex Homo, kita akan melihat bagaimana otak kita bekerja dengan informasi. Kita akan berbicara tentang pemahaman dan bagaimana informasi yang sudah kita ketahui memengaruhi persepsi yang baru. Mari kita lihat studi psikolog dan ahli neurobiologi di bidang mempelajari memori manusia dan membuat atas dasar mereka model memori kita sendiri. Dengan bantuannya, kami akan menjelaskan beberapa efek psikologis yang menarik, seperti efek frekuensi kata, efek tepi, ilusi optik. Dan akan ada lebih banyak gambar.

Singkatnya - itu akan menarik, saya janji.

PS
.

, — . , , .

.

: , . , , - .

, , . .

, , . .
, , . , , .
, , simple.explanation.of.simple@gmail.com . , , . , , -, .

Lisensi:
CC BY-NC-SA 4.0

Source: https://habr.com/ru/post/id432460/


All Articles