Kompüter, Proqramlaşdırma
Dinamik proqramlaşdırma, əsas prinsipləri
proqramlaşdırma vəzifələri bəzən şəxsi kompüter yaddaş yükləyir data birləşməsi böyük həcmdə düzmək üçün tələb olunur həyata zaman optimal həll seçin. Belə metodlar, misal üçün, "parçala və qayda" proqramlaşdırma metodu daxildir. Bu halda alqoritm ayrı-ayrı kiçik subtasks daxil ayrılması problem təmin edir. Bu üsul yalnız kiçik subtasks qarşılıqlı müstəqil olan hallarda tətbiq edilir. birindən sub-vəzifələri əgər lazımsız iş yerinə qarşısını almaq üçün, 50-ci illərində Amerika R.Bellmanom təklif dinamik proqramlaşdırma metodu istifadə edir.
üsul
Dinamik proqramlaşdırma onun n ayrı mərhələləri mübadiləsi, optimal həlli n-ölçülü problem müəyyən etməkdir. Onların hər biri bir dəyişən ilə bağlı bir alt vəzifədir.
Bu yanaşma əsas üstünlüyü bir ölçülü optimallaşdırılması problemi ilə məşğul olan developers əvəzinə n-ölçülü problem subtasks və bizim əsas məqsədi "alt-up" gedir ki, hesab edilə bilər.
Yəni sub-vəzifələri qarşılıqlı olan hallarda, dinamik proqramlaşdırma müraciət etmək məsləhətdir ümumi modulları bölüşürlər. alqoritm dəfə subtasks hər qərarını verir və qənaət cavab xüsusi masa keçirilir. Bu eyni sub-məsələ ilə yenidən görüşüb cavab hesablamaq üçün imkan verir.
Dinamik proqramlaşdırma vəzifəsi problemi həll optimallaşdırılması. Bu metodun müəllifi R. Bellman optimallıq prinsipi ilə tərtib edilmişdir: addımlar və bu addım müəyyən həlli hər ilkin dövlət nə bütün addım sonunda sistemi alır dövlət ilə bağlı optimal seçmək üçün aşağıdakı.
metodu variantlar, və ya recursion vasitəsilə həll vəzifələri performansı artırır.
Building tapşırıq alqoritm
Dinamik proqramlaşdırma alqoritm belə ki, onun həlli üçün iki və ya daha çox subtasks bölünüb Task bütün subtasks üçün optimal həll ibarətdir belə vəzifələrin tikintisini nəzərdə tutur, bu daxildir. Bundan əlavə, bir təkrarlanma əlaqəsi yazmaq, və bütövlükdə vəzifə üçün optimal parametr dəyərlər hesablanması lazımdır.
Bəzən 3-cü addım hər vəzifə tərəqqi bəzi əlavə fon məlumat alarkən etməkdir. Bu geri stroke adlanır.
Application üsul
iki xarakterik xüsusiyyətləri var zaman Dinamik proqramlaşdırma tətbiq edilir:
- subtasks üçün optimal;
- subproblems üst-üstə problemi iştirakı.
dinamik proqramlaşdırma optimallaşdırma problem həll, ilk həll strukturu təsvir etmək lazımdır. məsələ həll onun subtasks ən yaxşı qərarlar ibarətdir əgər optimal olmalıdır. Bu halda, bu, dinamik proqramlaşdırma istifadə etmək məsləhətdir.
bu metodu əsas problemin ikinci əmlak, - sub-vəzifələri kiçik bir sayı. Eyni üst-üstə düşən sub-problemləri istifadə problemin recursive həlli sayı ilkin məlumatların ölçüsündən asılıdır. Cavab xüsusi masa saxlanılır, proqram bu məlumatları istifadə edərək, zaman saxlayır.
Xüsusilə təsirli vəzifə mahiyyətcə mərhələdə qərarlar qəbul etmək üçün lazım olan dinamik proqramlaşdırma istifadə edir. Məsələn, dəyişdirilməsi və avadanlıqların təmiri problemin sadə bir nümunə hesab edir. iki müxtəlif formalarda şin etmək, eyni zamanda şinlər istehsalı üçün tökmə maşın zavodunda deyirlər. formalarından biri uğursuz ki, tədbirdə, bu maşın sökmək lazımdır. Bəzən daha sərfəli əvəz və halda maşın sökmək üçün ikinci forma və bu forma növbəti mərhələdə işləməz olacaq ki, başa düşüləndir. Xüsusilə onlar uğursuz başlamaq əvvəl, həm də iş forma əvəz asandır bəri. davam istismar formaları, maşın kesintiler, atılır şinlər və daha dəyərinin itirilməsi üstünlükləri: Dinamik proqramlaşdırma metodu nəzərə bütün amillər nəzərə alınmaqla, bu formaları dəyişdirilməsi məsələsində ən yaxşı strategiya müəyyən edir.
Similar articles
Trending Now