Kriteria Efisien Pada Sebuah Algoritma Pada Umumnya Berhubungan Dengan

By | 15 Agustus 2022

Kriteria Efisien Pada Sebuah Algoritma Pada Umumnya Berhubungan Dengan.

Prolog Desain dan Kajian Algoritma¶

Bak pelecok suatu bawah dari ilmu komputer, algoritma ialah hal yang dahulu penting lakukan dikuasai oleh insan-anak adam yang berkecimpung di mayapada ilmu komputer, dari peneliti menyentuh praktisi. Tentunya penaklukan akan algoritma bukan memadai saja setakat puas tahap memafhumi dan menggunakan algoritma nan tepat lakukan membereskan keburukan. Sendiri nan mencerna ilmu komputer harus juga mampu
merancang dan mengembangkan

sebuah algoritma berdasarkan masalah-masalah yang ditemui. Catatan ini bertujuan cak bagi memberikan pengertian mendasar akan halnya perancangan (desain) dan pengembangan algoritma, agar pembaca bisa tak hanya menunggangi algoritma nan telah terserah, saja sekali lagi merancang dan meluaskan algoritma sesuai dengan portal kesulitan yang akan diolah.

Selain menyerahkan dasar perancangan, catatan ini juga menggosipkan jenis-tipe algoritma yang ada, cak bagi kemudian mengerjakan analisa terhadap sejumlah algoritma untuk setiap jenisnya. Analisis algoritma dilakukan dengan tujuan utama kiranya pembaca boleh mencekit keputusan yang tepat internal melembarkan algoritma untuk solusi.

Apa itu Algoritma?¶

Sebelum membicarakan adapun perancangan atau amatan algoritma, tentunya kita terlebih dahulu harus mendefinisikan fungsi semenjak “Algoritma”. Apa itu algoritma?

Algoritma yakni persiapan-awalan (prosedur) yang harus dilakukan lakukan tanggulang sebuah masalah.

Program komputer jinjing kebanyakan dibangun dengan menggunakan beberapa algoritma kongkalikong bakal menyelesaikan sebuah permasalahan. Misalnya sebuah acara pencarian referensi seperti


grep



akan memerlukan algoritma khusus cak bagi mengaji dan menelusuri file, algoritma lain untuk mencari wacana yang tepat di n domestik file, dan satu algoritma pun lakukan menampilkan hasil pencarian ke konsumen.

Dalam mendefinisikan algoritma, kita harus bisa mendefinisikan tiga hal utama dengan jelas, yaitu:

  1. Masalah, ialah sebuah permasalahan nan mau terjamah makanya sebuah algoritma.
  2. Masukan, ialah hipotetis data alias keadaan yang menjadi permasalahan.
  3. Tamatan, yakni kerangka penghabisan dari data atau hal sehabis algoritma diimplementasikan ke masukan. Keluaran merupakan hasil ideal nan diinginkan dan dianggap mutakadim memecahkan keburukan.

Teladan (dan Solusi) Algoritma¶

Contoh berpangkal sebuah definisi algoritma nan etis yakni laksana berikut:

Problem
Pengurutan sekumpulan kredit nan bernilai arbitrer.
Masukan
Serangkaian data berukuran $ufuk$.
Eks
Serangkaian data bertakaran $tepi langit$, dengan urutan
\(a_1 \leq a_2 \leq a_3 \leq … \leq a_{lengkung langit-1} \leq a_{kaki langit}\), di mana
\(a_x\)

merupakan data pada posisi
\(x\)

kerumahtanggaan perantaraan.

Data masukan nan diinginkan merupakan koneksi data, sonder memperdulikan keberagaman data (skor, aksara, bacaan, dan lainnya). Contoh berusul poin pemerolehan yakni


[2,

5,

1,

3,

4]



ataupun


["Doni",

"Andi",

"Budi",

"Clara"]

. Data keluaran nan diinginkan, tentunya merupakan data masukan nan sudah lalu terurut:


[1,

2,

3,

4,

5]



dan


["Andi",

"Budi",

"Clara",

"Doni"]

.

Untuk menguasai penyakit yang diberikan di atas, kita boleh menggunakan algoritma


insertion

sort

. Kode di radiks menunjukkan implementasi


insertion

sort



pada bahasa pemrograman


python

:

              def
              insertion_sort
              (
              data
              ):
              for
              i
              in
              range
              (
              
              ,
              len
              (
              data
              )):
              insert_val
              =
              data
              [
              i
              ]
              hole_pos
              =
              i
              while
              hole_pos
              >
              
              and
              insert_val
              <
              data
              [
              hole_pos
              -
              1
              ]:
              data
              [
              hole_pos
              ]
              =
              data
              [
              hole_pos
              -
              1
              ]
              hole_pos
              =
              hole_pos
              -
              1
              data
              [
              hole_pos
              ]
              =
              insert_val
            

Implementasi


insertion

sort



nan diberikan di atas menunjukkan bahwa pada dasarnya sebuah prosedur yang harus dijalankan bakal mengubah data perolehan menjadi data mantan, sehingga borek aib bisa terselesaikan.

Algoritma yang Baik¶

Kita telah mengetahui dengan jelas makna berpokok algoritma, sehingga pertanyaan lebih lanjut merupakan
algoritma seperti apa yang boleh dikatakan sebagai algoritma nan baik?

Sreg kebanyakan kita bukan ingin menunggangi algoritma yang riuk untuk menyelesaikan keburukan karena peristiwa ini boleh menyebabkan ki aib bukan diselesaikan dengan optimal, maupun kian buruknya,
tidak tergarap sekufu sekali.

Sebuah algoritma nan baik memiliki sifat-rasam berikut:

  1. Bermoral, di mana algoritma menguasai masalah dengan tepat, sesuai dengan definisi masukan / alumnus algoritma yang diberikan.
  2. Efisien, berarti algoritma menyelesaikan problem tanpa memberatkan bagian tak berpokok apliikasi. Sebuah algoritma nan tidak efisien akan menggunakan sumber resep (rekaman, CPU) nan raksasa dan memberatkan permohonan yang mengimplementasikan algoritma tersebut.
  3. Mudah diimplementasikan, artinya sebuah algoritma yang baik harus dapat dimengerti dengan mudah sehingga implementasi algoritma dapat dilakukan siapapun dengan pendidikan yang tepat, intern waktu nan masuk akal bulus.

Pada prakteknya, tentunya ketiga peristiwa tersebut tidak dapat bosor makan tercapai. Validitas dari sebuah algoritma biasanya selalu bisa dicapai, sedikitnya kongkalikong buat nilai-biji pemerolehan awam, tetapi siasat kemujaraban dan kemudahan implementasi lain pelalah didapatkan. Begitupun, tentunya kita harus setia berusaha sampai ke ketiga kejadian tersebut dalam menciptaan sebuah algoritma.

Pembuktian Kebenaran Algoritma¶

Kita telah memaklumi bahwa sebuah algoritma nan baik adalah algoritma nan etis, efisien, dan mudah diimplementasikan. Pertanyaan berikutnya tentunya ialah, bagaimana kita mengetahui bahwa sebuah algoritma mutakadim benar? Algoritma yang efisien itu seperti mana segala? Bagaimana kita mengukur kemudahan implementasi sebuah algoritma?

Bagian ini akan meributkan akan halnya tanya pertama, yaitu bagaimana kita bisa mengetahui validitas sebuah algoritma. Tentunya sosi keefektifan dan akomodasi implementasi sebuah algoritma menjadi bukan utama sekiranya algoritma tersebut tidak bisa memberikan hasil yang sopan.

Definisi berpunca kebenaran algoritma yang digunakan pada goresan ini yakni sebagai berikut:

Sebuah algoritma dikatakan mutakadim benar jika algoritma tersebut bisa
mengasihkan keluaran nan benar

takdirnya menerima perolehan sesuai dengan definisi algoritma tersebut, dan algoritma tersebut mujarab akan
kerap dapat diterminasi (berjarak).

Validasi kebenaran sebuah algoritma sendiri dapat dilakukan dengan beberapa kaidah, misalnya:

  1. Induksi Ilmu hitung,
  2. Pembuktian kontradiktif,
  3. Pembuktian kontrapositif, dan
  4. Metode Seremonial.

Masing-masing gawai pembuktian nan disebutkan punya kepentingan dan kesuntukan tiap-tiap, serta kasus pengunaan nan berlainan-selisih. Teristiadat diingat kembali bahwa masih terdapat suntuk banyak alat-alat pembuktikan lainnya nan dapat digunakan, tetapi kita tetapi membicarakan suatu mandu pembuktian (induksi matematika) cuma perumpamaan pembukaan mandu membuktikan algoritma. Jika dibutuhkan, metode dan radas verifikasi enggak akan dijelaskan lagi sreg babak yang relevan.

Sekarang mari kita tatap penggunaan masing-masing perangkat tersebut bagi membuktikan algoritma!

Induksi Ilmu hitung¶

Induksi matematika merupakan peranti validasi matematis yang digunakan untuk membuktikan pernyataan maupun proses nan mengikutsertakan ancangan bilangan steril nan berulang. Contoh pecah rumus matematis yang boleh dibuktikan dengan menggunakan induksi matematika adalah anggaran jejer aritmatika, ririt geometris, alias sigma suratan.

Pengecekan menggunakan induksi matematika dilakukan dengan dua langkah, merupakan:

  1. Melakukan pemeriksaan ulang kasus dasar (base case), adalah membuktikan bahwa sebuah pernyataan (kemujaraban) matematika alias algoritma bernilai benar jika diaplikasikan puas ketentuan pertama nan sah sesuai dengan spesifikasi fungsi ataupun algoritma tersebut.
  2. Melakukan induksi, ialah membuktikan bahwa legalitas dari arti
    \(P(k+1)\)

    seandainya validitas kebaikan
    \(P(k)\)

    diketahui.

Dengan membuktikan kedua hal tersebut, kita boleh menjeput kesimpulan bahwa sebuah fungsi matematika maupun algoritma bernilai bermartabat cak bagi semua ketentuan asli. Jika diimplementasikan dengan tepat, induksi ilmu hitung boleh sekali lagi digunakan kerjakan membuktikan kebenaran algoritma rekursif sebagaimana penelusuran pohon (tree).

Lakukan kian jelasnya, yuk kita lihat bilang sempurna cara pembenaran yang dilakukan dengan menggunakan induksi matematika.

Contoh 1: Leret Aritmatika¶

Misalkan kita diminta cak bagi membuktikan bahwa pernyataan matematika buat ancangan baris aritmatika berikut:

\[1 + 2 + 3 + … + kaki langit = \frac{n(tepi langit + 1)}{2}\]

adalah benar untuk semua ganjaran melingkar
\(cakrawala \geq 1\).

Bikin membuktikan pernyataan matematika di atas, malar-malar habis kita harus mengingkari pernyataan matematika tersebut menjadi sebuah kurnia matematika:

\[P(k) = 1 + 2 + 3 + … + n = \frac{k(k + 1)}{2}\]

dan kemudian membuktikan kebenarannya menunggangi induksi ilmu hitung. Seperti nan telah dijelaskan sebelumnya, kita harus menjalankan dua langkah bikin melakukan pembuktian dengan induksi:

  1. Testimoni Kasus Pangkal

    Karena pernyataan guna-guna hitung plong soal menyatakan bahwa pernyataan bermartabat lakukan semua kadar melingkar
    \(k \geq 1\), maka buat verifikasi kasus asal kita harus membuktikan bahwa
    \(P(1)\)

    merupakan etis bikin ruas kidal atau ruas kanan mulai sejak
    \(P(k)\).

    \[\begin{split}P(1)= 1 & = \frac{1(1+1)}{2} \\ 1 & = \frac{1(2)}{2} \\ 1 & = \frac{2}{2} \\ 1 & = 1\end{split}\]

    karena hasil akhir berusul ruas kanan dan ruas kidal yaitu seimbang (\(1\)), maka dapat dikatakan bahwa kasus sumber akar mutakadim terbukti.

  2. Induksi

    Lakukan validasi induksi, kita harus membuktikan bahwa
    \(P(k) \rightarrow P(k + 1)\)

    bernilai bermartabat.

    Persiapan mula-mula yang dapat kita bakal merupakan menuliskan arti matematis dari
    \(P(k + 1)\)

    lebih lagi tinggal:

    \[P(k + 1) = 1 + 2 + … + k + (k + 1) = \frac{(k + 1)((k + 1) + 1)}{2}\]

    dan kemudian kita harus membuktikan bahwa ruas kidal dan ruas kanan mulai sejak
    \(P(k + 1)\)

    adalah sama. Pembuktian akan kita bagi dengan berbuat penjatuhan pada ruas kiri agar menjadi sama dengan ruas kanan:

    \[\begin{split}1 + 2 + … + k + (k + 1) & = (1 + 2 + … + k) + (k + 1) \\ & = \frac{k(k + 1)}{2} + (k + 1) \\ & = \frac{k(k + 1) + 2(k + 1)}{2} \\ & = \frac{k^2 + 3k + 2}{2} \\ & = \frac{(k + 1)(k + 2)}{2} \\ & = \frac{(k + 1)((k + 1) + 2)}{2}\end{split}\]

    dan seperti mana yang boleh dilihat, ruas kidal berpunca
    \(P(k + 1)\)

    telah menjadi seperti ruas kanannya, sehingga bisa dikatakan bahwa tahap induksi telah berakibat dibuktikan moralistis.

Baca juga:   Berikut Bahan Kerajinan Yang Tidak Berasal Dari Alam Adalah

Dengan pemeriksaan ulang kasus dasar dan induksi nan bernilai benar, kita bisa mengikhtisarkan bahwa
\(P(kaki langit)\)

bernilai bermartabat buat
\(falak \geq 1\).

Ideal 2: Validasi Hipotesa¶

Dia diminta untuk membuktikan hipotesa bahwa fungsi ilmu hitung
\(n^3-tepi langit\)

lewat dibagi 6 bakal semua kadar bulat
\(n \geq 2\).

Persiapan lakukan membuktikan pernyataan tersebut sama dengan sebelumnya. Mulai bersumber definisi ulang fungsi matematikanya:

\[P(k) = k^3 – k\]

Dan kemudian untuk induksi matematika, persiapan demi awalan:

  1. Tes Kasus Sumber akar

    Cak bagi taksiran
    \(P(2)\)

    (karena angka
    \(k\)

    minimal 2) dan pastikan alhasil dahulu dibagi 6:

    \[\begin{split}P(1) & = 2^3 – 2 \\ & = 8 – 2 \\ & = 6\end{split}\]

    karena
    \(6 \bmod 6 = 0\)

    maka telah lalu dapat dibuktikan bahwa kasus dasar bernilai benar.

  2. Induksi

    Sekiranya
    \(P(k)\)

    sopan habis dibagi 6, maka
    \(P(k + 1)\), ataupun
    \((k + 1)^3 – (k + 1)\)

    harus pula dahulu dibagi 6. Marilah kita buat pembuktiannya:

    \[\begin{split}P(k + 1) & = (k + 1)^3 – (k + 1) \\ & = (k^3 + 3k^2 + 3k + 1) – k – 1 \\ & = k^3 – 3k^2 + 2k \\ & = k^3 – 3k^2 + 2k + k – k \\ & = k^3 – 3k^2 + 3k – k \\ & = k^3 – k + 3k^2 + 3k \\ & = (k^3 – k) + 3k(k + 1)\end{split}\]

    dan boleh dilihat bagaimana
    \(P(k + 1)\)

    sudah terbukti terlampau dibagi 6 karena:

    1. \(k^3 – k\)

      adv amat dibagi 6, sesuai dengan hipotesa
      \(P(k)\), dan
    2. \(3k(k + 1)\)

      lewat dibagi 6 karena pelecok satu nikai berpokok
      \(k\)

      atau
      \(k + 1\)

      tentu ialah garis hidup genap, yang jika dikalikan dengan 3 akan lalu dibagi 6.

    Setelah berhasil tanggulang dua persiapan induksi, kita boleh menyadur bahwa
    \(P(k) = k^3 – k\)

    lewat dibagi 6 buat
    \(k \geq 2\).

Induksi Ilmu hitung untuk Validasi Algoritma¶

Begitu juga nan dapat dilihat pecah apa yang sudah kita pelajari lega penggalan sebelumnya, induksi matematika jelas sangat berarti untuk membuktikan kebenaran sebuah teorema atau keefektifan yang melibatkan runding bilangan bulat nan berulang. Tetapi barang apa kepentingan induksi matematika kerjakan membuktikan kebenaran sebuah algoritma?

Sebuah algoritma setiap kali akan punya putaran yang melakukan perkiraan bilangan maupun data secara berulang. Kita dapat menggunakan konsep iterasi puas pemrograman bakal menerapkan rekaan garis hidup alias data secara berulang. Misalnya, algoritma berikut menotal hasil mana senggang bermula dua biji zakar takdir bulat:

              def
              boleh jadi
              (
              m
              ,
              n
              ):
              if
              m
              <
              
              :
              return
              -
              1
              # error
              else
              :
              i
              =
              
              result
              =
              
              while
              (
              m
              !=
              i
              ):
              result
              =
              result
              +
              ufuk
              i
              =
              i
              +
              1
              return
              result
            

yang secara matematis dapat dituliskan misal fungsi berikut:

\[f(m, n) = \sum_{i=1}^{falak} m; tepi langit \geq 0\]

alias makin sederhananya:

\[m \times horizon = \underbrace{m + m + m + … + m}_{\text{cakrawala boleh jadi}}\]

dan secara kodrati tentunya pernyataan matematis tersebut boleh kita buktikan dengan menunggangi induksi ilmu hitung. Tes repetisi nan lebih kegandrungan seorang bisa dilakukan dengan teknik yang dikenal dengan label loop invariant, nan enggak akan dijelaskan plong garitan ini.

Pemodelan Komplikasi¶

Puas bagian sebelumnya kita sudah silam mengaram bagaimana sebuah algoritma dituliskan menjadi fungsi mantra hitung. Baik algoritma ataupun fungsi matematika yaitu sebuah
kamil, nan digunakan lakukan mengilustrasikan kelainan yang ditemui pada dunia nyata, dan mau diselesaikan, baik dengan menggunakan ilmu hitung maupun programa komputer jinjing. Dengan tepi langit kepunyaan komplet problem kita bisa kian mudah mengarifi masalah yang akan diselesaikan, yang akan menyebabkan solusi yang ditawarkan menjadi kian baik.

Sahaja pertanyaannya tentunya adalah, bagaimana kita membuat model nan benar berpangkal ki kesulitan-penyakit nan cak semau? Bagian ini akan mengklarifikasi mengenai prinsip pembangunan model, baik secara matematis alias algoritmik, nan benar.

Keberagaman-Diversifikasi Contoh¶

Sebelum mulai membangun hipotetis persoalan, tentunya kita terlebih dahulu harus mengetahui keberagaman-tipe model yang ada. Terletak enam variasi sempurna yang awam digunakan bagi memvisualkan keburukan dalam marcapada algoritma / pemrograman, adalah:

  1. Model Numerik

    Cermin numerik merupakan model matematis yang paling tersisa, nan dibuat cak bagi mendeskripsikan jumlah maupun dimensi dari sesuatu. Model numerik menunggangi poin (1, 2, 3, dst) untuk mendeskripsikan suatu peristiwa. Misalkan rang di radiks:

    Teladan Numerik Sapi

    memberikan siaran sejumlah sapi nan ada di n domestik peti. Contoh numerik paling kecil terlambat dan informatif nan boleh kita renggut bermula rencana tersebut adalah ‘Lima ekor Sapi’ alias ‘Lima Sapi’.

  2. Model Simbolik

    Jika kita mengembangkan paradigma numerik makin jauh, kita kemudian dapat menambahkan simbol-simbol baru buat melakukan
    pemrosesan

    terhadap poin-poin nan cak semau lega teoretis numerik. Terdapat catur biji kemaluan tanda baca bawah lakukan pemrosesan poin, yakni
    \(+, -, \times, \text{dan} \div\). Tanda baca
    \(=\)

    juga digunakan kerjakan melambangkan kesamaan nilai antara ruas kidal dan ruas kanan berusul
    \(=\).

    Note

    Huruf angka
    \(\times \text{dan} \div\)

    akan dituliskan sebagai
    \(*\)

    dan
    \(/\)

    puas coretan ini, karena kedua stempel baca tersebut kian masyarakat digunakan pada lingkungan aji-aji komputer jinjing.

    Jadi, sebuah ekspresi matematika demikian ini:

    \[10 = 5 * 2\]

    dapat dikatakan adalah sebuah kamil simbolik. Tentunya teknisi-teknikus numerik nan disebutkan sebelumnya memiliki resan tertentu bagi beropearsi. Rasam-rasam umum yang kita temui kerjakan operator numerik adalah:

    1. Syariat Kumulatif, di mana
      \(a + b = b + a\)

      dan
      \(a * b = b * a\).
    2. Syariat Konotatif, di mana
      \(a + (b + c) = (a + b) + c\)

      dan
      \(a * (b * c) = (a * b) * c\).
    3. Hukum Aliran, di mana
      \(a * (b + c) = (a * b) + (a * c)\).
    4. Syariat Invers, merupakan
      \(a + (-a) = 0\)

      dan
      a * frac{1}{a} = 1.
    5. Syariat Identitas, yaitu
      \(a + 0 = a$ dan $a * 1 = a\).
    6. Pergandaan dengan 0, adalah
      \(a * 0 = 0\).

    Penjelasan mengenai kegunaan dan cara kerja dari hukum-hukum tersebut tidak akan dibahas pula, karena dianggap telah diketahui oleh pembaca. Nan terbiasa diperhatikan adalah bagaimana kita menuliskan tanda baca-huruf angka sama dengan $a$ dan $b$, buat melambangkan semua bilangan-suratan yang mengajuk hukum-syariat di atas. Bunyi bahasa-fon yang dapat menandakan ganjaran atau poin enggak secara generik begitu juga ini dikenal dengan tera
    plastis.

    Sebuah laur ialah simbol yang digunakan cak bagi merepresentasikan nilai nan boleh berubah kapanpun, tersampir berasal kredit yang kita berikan kepada luwes tersebut. Plastis digunakan n domestik maya simbolik bikin mewakili kredit-poin nan boleh berubah serta merta-waktu, misalnya nilai nan harus dibaca dari perolehan pemakai alias nilai nan diambil secara serampangan. Sebuah model bahkan dapat terdiri berasal hanya plastis belaka, misalnya hipotetis matematika kerjakan menghitung luas sebuah persegi panjang dapat dituliskan seperti mana berikut:

    \[L = p * l\]

    di mana
    \(p\)

    dan
    \(l\)

    mengambil alih tinggi dan tumpul pisau persegi janjang, yang nilainya cangap berbeda-selisih, tergantung dengan persegi tahapan yang akan dihitung luasnya. Skor
    \(L\), yang merepersentasikan luas persegi pangkat, koteng mengelepai kepada nilai
    \(p\)

    dan
    \(l\), sehingga kita tak akan mendapatkan biji
    \(L\)

    yang konstan.

    Makrifat variabel sendiri dilakukan dengan memperalat perintah $let$, seperti mana berikut:

    \[\text{let }L = \text{Luas Persegi}\]

    Selain khayali-transendental dengan fleksibel, tentunya kita juga n kepunyaan hipotetis-kamil yang mempunyai kadar tetap nan lain berubah, misalnya untuk menghitung luas segitiga sama:

    \[L = \frac{1}{2} * a * falak\]

    atau sempurna kerjakan menotal berkeliling dok:

    \[K = 2 * \pi * r\]

    Nilai-angka yang tidak pernah berubah lega kedua lengkap di atas (begitu juga
    \(2\),
    \(\frac{1}{2}\), dan
    \(\pi\)) dikenal dengan nama
    konstanta. Perhatikan bahwa konstanta dapat mencakup angka “hijau” seperti
    \(2\)

    alias simbol yang dikenal secara luas sebagai halnya
    \(\pi\). Konstanta galibnya dideklarasikan pada awal acuan alias kamus data programa, dan bukan gabungan berubah nilainya sepanjang model tersebut digunakan.

    Terbit beraneka ragam onderdil dan arketipe arketipe simbolik yang sudah kita lihat, dapat disimpulkan bahwa eksemplar simbolik adalah eksemplar yang mengilustrasikan interaksi dan operasi antar suku cadang numerik secara khayali. Abstraksi dari onderdil numerik (angka) sreg model simbolik dilakukan dengan memperalat plastis dan konstanta.

  3. Ideal Spasial

    Bukan semua permasalahan yang dikerjakan maka itu matematika alias komputer pelahap berbimbing langsung dengan angka. Terkadang kita menjumpai juga keburukan-keburukan nan berbimbing dengan representasi bumi faktual seperti anggaran jarak dua bulan-bulanan atau pemburuan kempang terdekat buat sarana. Secara tradisional, konseptual bakal penyelesaian masalah begitu pula ini digambarkan dengan atlas, graph, dan susuk-bagan teknis lainnya.

    Bagi manjapada komputer, model-komplet marcapada riil rata-rata digambarkan dengan menunggangi koordinat. Sistem koordinat yang minimum tersohor digunakan dalam situasi ini adalah koordinat kartesius. Koordinat kartesius adalah sistem koordinat yang menggambarkan sebuah poin riil di dalam antologi nilai nan direpresentasikan dengan sebuah garis. Sistem kartesius dapat digambarkan privat banyak matra, sesuai dengan jumlah himpunan skor nan digambarkan. Cak bagi melicinkan konotasi, susuk di pangkal ogok kamil sistem koordinat kartesius dua dimensi:

    Sistem Koordinat Kartesius

    Sistem Koordinat Kartesius

    Untuk menyederhanakan penyakit, mayoritas algoritma dan solusi yang dikembangkan kerumahtanggaan kuliah ini akan dilakukan dengan menggunakan sistem kartesius dua format. Sistem tiga format dan satu dimensi dianggap bisa diimplementasikan menggunakan konsep yang sama dengan sistem dua dimensi.

    Data pada sistem kartesius dua matra dapat direpresentasikan kerumahtanggaan bentuk sebuah titik, ialah perantaraan antara sumbu x dan jago merah-api y:

    Titik pada Kartesius

    Tutul lega Kartesius

    ataupun sebuah garis, yang direpresentasikan dengan sebuah fungsi ilmu hitung:

    Garis pada Kartesius

    Garis pada Kartesius

    Privat prakteknya, kita lagi akan buruk perut memerlukan makrifat
    arah rayapan

    mulai sejak sebuah garis. Untuk merepresentasikan kejadian tersebut, kita dapat menambahkan sebuah keunggulan kurat plong garis:

    Garis Berarah pada Kartesius

    Garis Berarah plong Kartesius

    dan nan anak asuh bungsu, kita boleh pula merepresentasikan sebuah lembaga ataupun rataan, menggunakan kombinasi beberapa garis:

    Bidang pada Kartesius

    Bidang pada Kartesius

    Lakukan berbuat pemrosesan data-data nan ada di n domestik sistem kartesius, kita dapat mengamalkan gerakan terhadap titik-titik yang merepresentasikan data tersebut. Tutul-bintik direpresentasikan dalam tulangtulangan matriks alias array. Misalnya, segitiga sama sekelas suku yang suka-suka pada buram di atas dapat direperesentasikan misal matriks berikut:

    \[\begin{split}\begin{bmatrix} -3 & 4 & 1 \\ 1 & 3 & -2 \end{bmatrix}\end{split}\]

    Dan kemudian tentunya kita bisa melakukan gerakan-gerakan matriks bagi melakukan majemuk peristiwa terhadap segitiga tersebut.

  4. Cermin Mantiki

    Hipotetis mantiki yaitu kaidah memodelkan masalah berlandaskan akal segak matematika. Terletak catur cabang utama dari akal sehat matematika, yaitu teori koleksi, teori model, teori rekursif, dan teori pembenaran. Masing-masing teori memiliki kaidah pemodelan yang berbeda-selisih, lakukan merepresentasikan kelainan yang berbeda. Tulisan ini hanya akan membincangkan pemodelan rasional pada bidang himpunan, dan relevansinya dengan salah suatu sistem nan paling populer di marcapada komputer: basis data.

    Kumpulan, seperti mana namanya, memodelkan sekumpulan entitas yang memiliki atribut (ciri individual) tertentu. Privat menentukan atribut
    maksud

    berpunca pengunaan himpunan makin utama daripada kesamaan ciri tersendiri dari entitas, sehingga kadang kala atribut bermula molekul-zarah intern kompilasi tidak selalu dapat dilihat dengan mudah. Misalnya, kita dapat mendeklarasikan sebuah pusparagam dengan tanda “Himpunan Barang n lokal Handbag” dengan isi berupa “handphone, gunting ceker, perkakas make-up, tissue, kantong, radas tulis, dan karet kerokot”. Secara sejemang semua entitas yang cak semau di privat kompilasi tidak tertentang n properti atribut nan jelas, meskipun himpunan ini merupakan antologi nan valid.

    Terletak dua adat tunggal yang harus dipenuhi maka itu sebuah pusparagam, yaitu:

    1. Koleksi harus didefinisikan dengan tepat. Sebuah entitas yang terserah di marcapada sekadar dapat n kepunyaan dua martabat berkaitan dengan himpunan yang didefinisikan:
      Tertera

      dalam himpunan atau
      Lain Termuat. Tidak dapat suka-suka partikel nan bersifat samar, privat kemujaraban tidak jelas masuk ke privat kompilasi ataupun tidak. Misalnya, kita tak dapat mendefinisikan sebuah kumpulan nan mandraguna “Hamba allah Hierarki” karena tak terwalak definisi dari “strata” nan jelas. Apakah 170 cm teragendakan tinggi? 180?

      Nan dapat kita definisikan merupakan kumpulan yang berisi “Anak laki-laki adam dengan tinggi bodi di atas 175 cm”, sehingga enggak terdapat perdebatan mengenai apakah 170 cm termuat tangga atau tak.

    2. Setiap zarah intern pusparagam harus solo. Sebuah kumpulan lain boleh memiliki nilai ganda. Adat ini menyebabkan banyak himpunan yang terserah di mayapada nyata bukan boleh direpresentasikan dengan antologi matematika. Misalnya, kita boleh doang memiliki koleksi sendok yang terdiri mulai sejak banyak sendok identik. Internal himpunan matematis, hal ini lain diperbolehkan. Adat ini juga menyebabkan penyatuan kompilasi menjadi sedikit berlainan. Kumpulan berisi kredit 1, 2, 3, 4 jika digabungkan dengan antologi 3, 4, 5, 6 akan menghasilkan kumpulan 1, 2, 3, 4, 5, 6. Ide “nilai khas” lakukan setiap molekul kerumahtanggaan kumpulan ini lah yang menjadi mata air akar tunjang dari pengindeksan dan
      primary key

      berbunga basis data relasional.

    Pemodelan koleksi sendiri rata-rata dilakukan dengan menggunakan grafik Venn. Rang di asal menyerahkan contoh sebuah tabulasi Venn, yang melukiskan pusparagam berpokok segi empat:

    Contoh Diagram Venn

    Paradigma Diagram Venn

    Berusul tulang beragangan diagram Venn di atas, kita bisa meluluk bagaimana seluruh persegi merupakan juga persegi pangkat, dan baik persegi ataupun persegi hierarki merupakan merupakan segi empat. Jika kita menambahkan keberagaman segi empat lainnya, misalnya trapesium, dapatkah kamu mencitrakan diagram Venn-nya?

  5. Kamil Statistik

    Terdapat banyak persoalan di manjapada maujud yang bukan dapat dimodelkan dengan mudah menggunakan keempat hipotetis matematis yang sudah lalu kita telaah sebelumnya. Terkadang kita dihadapkan dengan persoalan yang terlampau obsesi, sampai-setakat memodelkan dan menganalisa setiap kejadian yang mempengaruhi masalah tersebut akan menjadi tinggal mahal, memerlukan banyak makhluk, dan banyak masa.

    Bagaikan paradigma, bayangkan kalau kita diminta cak bagi melakukan prakiraan semarak. Dengan menggunakan kamil matematis nan suka-suka, kita akan memerlukan
    sangat banyak

    perkiraan, yang silih mempengaruhi satu proporsional lainnya. Praktisnya, kita harus subur
    melakukan simulasi terhadap seluruh molekul yang terserah di bumi

    untuk mengamalkan prakiraan cuaca dengan tepat. Hal ini tentunya adv amat tidak efektif untuk dilakukan. Terlampau bagaimana para tukang saat ini mengamalkan prakiraan sorot?

    Jawabannya ialah eksemplar statistik. Dengan mengumpulkan percontoh data terang plong perian lepas, kita bisa mengaram
    mode

    atau
    tendensi

    seri yang akan terjadi sesuai dengan keadaan cerah kita waktu ini. Pada dasarnya, sebuah arketipe statistik melakukan analisa tren terhadap sampel data nan relevan untuk meniadakan ketidak pastian atau peristiwa tersendiri. Dengan menjumut keadaan rata-rata dari sekumpulan data, kita akan mendapatkan
    kecenderungan

    terbit sebuah keadaan jikalau dihadapkan dengan keadaan umumnya.

    Contoh Model Statistik

    Hipotetis Arketipe Perangkaan

    Gambar di atas menunjukkan ideal semenjak paradigma perangkaan. Ingat, bahwa inferensi yang bisa diambil berbunga sebuah transendental perangkaan hanyalah positif
    mode

    ataupun
    gaya. Kita lain boleh
    membuktikan

    sesuatu atau mengasihkan hasil nan pasti memperalat statistik. Boleh dikatakan bahwa kalimat seperti “perangkaan membuktikan …” lega tulisan ilmiah tenar tekor tepat.

  6. Pseudocode

    Semua khayali matematis nan telah dijelaskan sebelumnya yakni paradigma matematika nan digunakan dan dimengerti oleh makhluk. Jikalau cak hendak menggunakan model matematis tersebut di komputer, malar-malar terlampau kita harus mengamalkan transmutasi menjadi kode program nan dapat dibaca dan dimengerti oleh komputer. Kode programa koteng dimodelkan dengan banyak mandu, dan yang paling kecil relevan dengan algoritma ialah pseudocode.

    Pseudocode memberikan anju-langkah penyelesaian keburukan dengan menggunakan bahasa manusia, dengan terbatas batasan sesuai dengan konstruk aji-aji mantik komputer. Pseudocode tak memiliki konstruk untuk bahasa pemrograman tertentu, sehingga pseudocode harus bisa diimplementasikan dengan bahasa pemrograman apapun. Berikut merupakan ideal pseudocode tercecer:

    for i = 1 to 5 do     print i end for
                    

    Untuk penjelasan lebih mendetail akan halnya pseudocode, silahkan baca juga target orasi untuk Pemrograman Bawah.

Baca juga:   Arrange These Jumbled Words Into a Good Sentence

Kita mutakadim melihat model matematis yang umum digunakan kongkalikong bagi mengatasi masalah. Kongkalikong bertanya lebih jauh tentunya merupakan: kapan kita menunggangi teoretis A dan kapan memperalat model B? Bagaimana takhlik sempurna A menjadi kode programa nan boleh dijalankan oleh komputer?

Ekspansi Ideal¶

Proses pengembangan eksemplar dapat dilakukan dengan bilang anju nan telah dibangun maka itu para ahli matematika. Seandainya proses peluasan kamil dilakukan mengimak langkah-langkah nan ada, idealnya kita akan mendapatkan konseptual yang tepat untuk permasalahan yang akan diolah. Adapun langkah-anju yang harus diambil cak bagi membangun sebuah model merupakan:

  1. Apakah masalah nan dihadapi merupakan masalah yang memerlukan solusi matematis? Jika masalahnya yaitu komplikasi numerik (perhitungan biji) alias makul, maka jawabannya sudah karuan “ya”. Sekiranya solusi dari masalah nyata
    pendapat, maka kebolehjadian jawabannya merupakan “bukan”.
  2. Fakta-fakta relevan segala doang yang diketahui? Masalah umum yang dihadapi ketika akan membangun solusi ialah embaran nan
    bersisa banyak, yang sama sekali maling titik api kita berusul akar masalah. Pisahkan antara fakta (kenyataan) yang relevan dari keseluruhan informasi nan didapatkan.
  3. Fakta atau keterangan pelengkap barang apa yang kita perlukan bagi menyelesaikan gapura kesulitan? Di mana atau bagaimana mandu kiranya kita mendapatkan fakta-fakta tersebut?
  4. Adakah awalan atau metode
    alami

    cak bagi menyelesaikan masalahnya? Metode alami artinya metode yang biasanya digunakan makanya khalayak. Misalnya, bikin cak menjumlah kuantitas berpunca sekumpulan poin kita dapat menambahkan seluruh kodrat yang terserah di privat antologi biji tersebut.
  5. Apakah fakta-fakta yang suka-suka boleh direpresentasikan makanya huruf angka matematis dan dikategorikan menjadi fakta nan “diketahui” dan “lain diketahui”?
  6. Apakah terletak model
    lama

    yang bisa digunakan atau disesuaikan untuk menyelesaikan keburukan kita?
  7. Jika terdapat model yang telah dikembangkan sebelumnya bagi masalah kita, apakah lengkap tersebut boleh diaplikasikan lega komputer?
  8. Bagaimana kita boleh mengaplikasikan model bersumber solusi kita sehingga hipotetis tersebut dapat dibuat menjadi program komputer jinjing jinjing dengan mudah?
Baca juga:   Banjir Dan Kekeringan Merupakan Fenomena Alam Yang Terjadi Pada Tingkat

Dengan menjalankan ancang-awalan di atas, idealnya kita akan mendapatkan sebuah pola solusi yang tepat bagi permasalahan kita. Untuk lebih jelasnya, silakan kita aplikasikan model kelainan nan ada ke konseptual sebuah kasus!

Konseptual: Perhitungan Bunga Pinjaman¶

Kita diminta kerjakan mengembangkan sebuah acara komputer buat sebuah firma angka ACME. Acara nan akan kita kembangkan merupakan sistem untuk menghitung total jumlah yang harus dibayar makanya debitor tip saban tahunnya. Anak uang pinjaman nan diberikan ACME yakni sebesar 15% per tahunnya.

Untuk membangun sistem perhitungan yang diminta, tentunya terlebih habis kita harus membangun modal solusi cak bagi perincian bunganya. Mari kita ikuti anju-anju kerjakan membangun model yang mutakadim dijelaskan sebelumnya:

  1. Apakah masalah yang dihadapi ialah penyakit nan memerlukan solusi matematis?

    Ya. Ancangan total anak uang bunga jelas akan mengikutsertakan matematika.

  2. Fakta-fakta relevan segala doang nan diketahui?

    Anak uang pinjaman sebesar 15% masing-masing tahun.

  3. Fakta maupun informasi lampiran segala yang kita perlukan kerjakan memintasi ki aib?

    Beberapa fakta tambahan yang
    harus cak semau

    tetapi lain disebutkan secara eksplisit lega deskripsi problem:

    1. Total pinjaman tadinya. Untuk cak menjumlah kuantitas pinjaman dengan bunganya jelas kita harus mengetahui jumlah pinjaman awal terlebih lalu.
    2. Lama pinjaman. Tanpa adanya lama pinjaman, kita tak dapat mengetahui dengan pasti jumlah rente nan harus ditambahkan.
  4. Adakah langkah atau metode alami buat menyelesaikan masalahnya?

    Ya, bikin perkiraan bunga tiap tahunnya, dan tambahkan hasil rekaan tersebut sampai hari pinjaman bungsu.

  5. Apakah fakta-fakta yang ada boleh direpresentasikan oleh tanda baca matematis?

    Bersumber fakta-fakta yang kita dapatkan pada langkah kedua dan ketiga, kita dapat mendefinisikan bunyi bahasa matematis sebagaimana berikut:

    \[\begin{split}\text{let }b & = \text{anakan} \\ \text{let }p & = \text{jumlah pinjaman} \\ \text{let }t & = \text{musim pinjaman (sendirisendiri tahun)} \\ \text{let }T & = \text{besaran pinjaman}\end{split}\]

  6. Apakah terwalak ideal lama nan boleh digunakan buat mengatasi kelainan kita?

    Ya, perhitungan anakan berbagai ragam yang dimodelkan dengan rumus:
    \(Ufuk = p(1 + b)^n\).

  7. Apakah model nan ada sebelumnya lega langkah 6 boleh diaplikasikan lega komputer?

    Kebolehjadian tidak, karena estimasi anak uang majemuk yakni ancangan nan lain banyak diketahui turunan (terutama pada bidang
    pemrograman), dan pula memiliki banyak aturan kompleks yang harus dimengerti terlebih dahulu.

    Karena kasus nan sederhana, kita akan makin mudah mengimplementasikan algoritma kita koteng, nan cukup mengamalkan kemubaziran dan menambahkan total pinjaman setiap tahunnya. Silakan kita coba kembangkan model kelewahan yang dapat digunakan.

    Cak bagi masa permulaan, tertagih akan berhutang sebanyak:

    \[Ufuk = p + (15\% * p)\]

    lebih lanjut, bagi tahun kedua hutangnya akan kian menjadi:

    \[T’ = T + (15\% * Horizon)\]

    di mana
    \(Ufuk’\)

    merupakan nilai baru bersumber
    \(T\). Kita cukup melakukan taksiran yang sejajar terus menerus, sebanyak $kaki langit$ boleh jadi bikin mendapatkan hasil penghabisan positif
    \(Falak\)

    yang menyimpan jumlah hutang nan dipinjam. Jika dikembangkan, maka contoh matematis akhir yang kita dapatkan ialah:

    \[T = T + (\frac{15}{100} * Siring langit)\]

    yang akan dijalankan sebanyak $lengkung langit$ bisa jadi, dengan nilai $Tepi langit$ yang bertambah setiap iterasinya. Dengan keterangan ini, kita bisa mengimplementasikan pseudocode seperti mana berikut:

    b = 15 T = 0  READ p, tepi langit  T = p  for i = 1 to horizon do     T = Lengkung langit + (15 / 100 * N) end for  WRITE T
                    

    nan kemudian akan kita implementasikan bagaikan kemustajaban penghitung total pinjaman.

  8. Bagaimana kita boleh mengaplikasikan model dari solusi kita sehingga paradigma tersebut bisa dibuat menjadi program komputer jinjing dengan mudah?

    Pseudocode nan terserah telah dulu jelas, dan baris per barisnya boleh diimplementasikan secara serempak memperalat bahasa pemrograman apapun.

Setelah mendapatkan model penuntasan masalah setakat pada pseudocode-nya, kita kemudian boleh mengimplementasikan solusi yang dikembangkan menunggangi bahasa pemrograman yang diinginkan. Berikut merupakan contoh implementasi algoritma tersebut pada
python:

              b
              =
              15
              T
              =
              
              p
              =
              input
              (
              "Masukkan jumlah pinjaman: "
              )
              t
              =
              input
              (
              "Masukkan lama pinjaman: "
              )
              Horizon
              =
              int
              (
              p
              )
              for
              i
              in
              range
              (
              1
              ,
              int
              (
              n
              )):
              T
              =
              Ufuk
              +
              (
              15
              /
              100
              *
              N
              )
              print
              (
              "Kuantitas pinjaman nan harus dibayarkan adalah: "
              +
              str
              (
              Cakrawala
              ))
            

Penali¶

Lega putaran ini kita telah mempelajari adapun ciri khas algoritma nan baik, merupakan benar, efisien, dan mudah diimplementasikan. Kita juga mempelajari bagaimana membuktikan sebuah algoritma adalah sebuah algoritma yang etis, dan bagaimana berekspansi algoritma yang benar, menggunakan kamil matematis.

Terdapat enam spesies acuan matematis yang kita periksa, beserta dengan cara menggunakan transendental matematis tersebut ke kasus pada bumi maujud. Lebih lanjut kita akan mempelajari bagaimana meluaskan algoritma yang efisien, beserta definisi bersumber kesangkilan algoritma tentunya.

Kriteria Efisien Pada Sebuah Algoritma Pada Umumnya Berhubungan Dengan

Source: https://asriportal.com/kriteria-efisien-pada-sebuah-algoritma-pada-umumnya-berhubungan-dengan/