KomputerPengaturcaraan

Pengaturcaraan dinamik, prinsip-prinsip asas

Untuk memilih penyelesaian yang optimum apabila melakukan tugas-tugas pengaturcaraan kadang-kadang diperlukan untuk menyusun sejumlah besar kombinasi data yang memuatkan memori komputer peribadi. kaedah itu termasuk, sebagai contoh, kaedah pengaturcaraan "pecah dan perintah". Dalam kes ini algoritma menyediakan masalah pemisahan ke dalam tugasan kecil yang lebih kecil yang berasingan. Kaedah ini boleh digunakan hanya dalam kes-kes di mana tugasan kecil kecil saling bebas. Untuk mengelakkan melakukan kerja yang tidak perlu jika saling bergantung sub-tugas, menggunakan kaedah pengaturcaraan dinamik dicadangkan American R.Bellmanom dalam 50-an.

kaedah ini

pengaturcaraan dinamik adalah untuk menentukan penyelesaian optimum masalah n-dimensi, berkongsi n peringkat berasingan beliau. Setiap daripada mereka adalah sub-tugas berkenaan dengan satu pembolehubah.

Kelebihan utama pendekatan ini boleh dianggap bahawa pemaju yang terlibat dalam masalah pengoptimuman satu dimensi tugasan kecil dan bukannya masalah n-dimensi, dan objektif utama kami akan "bottom-up".

Ia adalah dinasihatkan untuk memohon pengaturcaraan dinamik dalam kes-kes di mana sub-tugas adalah saling berkaitan, iaitu berkongsi modul yang sama. algoritma ini menyediakan akses kepada keputusan setiap tugasan kecil sekali, dan jawapan penjimatan dilakukan dalam jadual khas. Ini menjadikan ia mungkin untuk tidak mengira jawapan apabila mereka bertemu sekali lagi dengan sub-tugas yang sama.

tugas pengaturcaraan dinamik menyelesaikan masalah pengoptimuman. Pengarang kaedah ini digubal oleh R. Bellman optimaliti prinsip apa yang ada keadaan awal setiap langkah-langkah dan penyelesaian yang ditakrifkan dalam langkah ini, semua yang berikut untuk memilih optimum berhubung dengan keadaan, yang menerima sistem pada akhir langkah.

Kaedah ini meningkatkan prestasi tugas yang diselesaikan dengan cara varian, atau rekursi.

Bangunan algoritma tugas

algoritma pengaturcaraan dinamik melibatkan pembinaan tugas-tugas seperti yang tugas supaya berpecah kepada dua atau lebih tugasan kecil untuk penyelesaiannya terdiri daripada satu penyelesaian yang optimum untuk semua tugasan kecil, ia termasuk. Selain itu, ia adalah perlu untuk menulis hubungan jadi semula, dan mengira nilai-nilai parameter optimum untuk tugas itu secara keseluruhannya.

Kadang-kadang, pada langkah ke-3 adalah untuk menghafal beberapa maklumat latar belakang tambahan mengenai kemajuan setiap tugas. Ini dipanggil lejang kembali.

kaedah permohonan

pengaturcaraan dinamik digunakan apabila terdapat dua ciri-ciri:

  • optimum bagi tugasan kecil;
  • kehadiran dalam masalah pertindihan subproblems.

Menyelesaikan masalah pengoptimuman oleh pengaturcaraan dinamik, anda perlu untuk menggambarkan struktur penyelesaian. Tugas ini telah menjadi optimum jika penyelesaian adalah terdiri daripada keputusan yang terbaik dalam tugasan kecil itu. Dalam kes ini, ia adalah dinasihatkan untuk menggunakan pengaturcaraan dinamik.

Harta kedua masalah ini, yang penting dalam kaedah ini, - sebilangan kecil sub-tugas. penyelesaian rekursi masalah menggunakan yang sama bertindih sub-masalah, jumlah yang bergantung kepada saiz maklumat awal. Jawapannya disimpan dalam jadual khas, program ini menjimatkan masa dengan menggunakan data ini.

Terutamanya berkesan ialah penggunaan pengaturcaraan dinamik apabila tugas itu pada dasarnya diperlukan untuk membuat keputusan secara berperingkat. Sebagai contoh, pertimbangkan contoh mudah dari masalah penggantian dan pembaikan peralatan. Katakan pada mesin kilang pemutus untuk pengeluaran tayar pada masa yang sama membuat tayar yang dalam dua bentuk yang berbeza. Sekiranya salah satu bentuk yang gagal, ia adalah perlu untuk membuka mesin. Ia dapat difahami bahawa kadang-kadang lebih menguntungkan untuk menggantikan dan satu bentuk kedua untuk membuka mesin dalam kes dan borang ini tidak akan dapat dijalankan di peringkat seterusnya. Terutamanya kerana ia lebih mudah untuk menggantikan kedua-dua bentuk bekerja sebelum mereka mula untuk gagal. kaedah pengaturcaraan dinamik menentukan strategi yang terbaik dalam hal penggantian bentuk-bentuk ini, dengan mengambil kira semua faktor-faktor: manfaat bentuk berterusan eksploitasi, kehilangan downtime mesin, kos tayar dibuang dan banyak lagi.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ms.delachieve.com. Theme powered by WordPress.