ComputersProgrammering

Dynamische programmering, de basisprincipes

Om de optimale oplossing te kiezen bij het uitvoeren van de programmering taken zijn soms nodig om grote hoeveelheden gegevens combinaties die het geheugen van de personal computer laadt sorteren. Dergelijke werkwijzen omvatten bijvoorbeeld het programmeren van een "verdeel en heers". In dit geval is het algoritme verschaft scheidingsprobleem in afzonderlijke kleinere deeltaken. Deze methode is alleen in de gevallen waarin kleine deeltaken onderling onafhankelijk zijn van toepassing. Om te voorkomen dat het uitvoeren van onnodig werk als onderling afhankelijke sub-taken, maakt gebruik van dynamische voorgestelde Amerikaanse R.Bellmanom in de jaren '50 programmering methode.

de methode

Dynamische programmering is om de optimale oplossing te bepalen de n-dimensionale probleem, het delen van haar n afzonderlijke fasen. Elk van hen is een sub-taak met betrekking tot één variabele.

Het belangrijkste voordeel van deze aanpak kan worden gesteld dat de bij de één-dimensionale optimalisatie probleem ontwikkelaars subtaken in plaats van een n-dimensionale probleem, en onze primaire doelstelling is van plan om "bottom-up".

Het is raadzaam om dynamische programmering toe te passen in die gevallen waarin de sub-taken zijn met elkaar verbonden, dat wil zeggen delen gemeenschappelijke modules. Het algoritme zorgt voor de beslissing van elk van de subtaken een keer, en besparing reacties wordt uitgevoerd in een speciale tafel. Dit maakt het mogelijk een antwoord te berekenen wanneer ze weer een ontmoeting met de dezelfde sub-taak.

Dynamische programmering taak lost het probleem van de optimalisatie. De auteur van deze werkwijze werd geformuleerd door R. Bellman optimaliteit principe: wat is de begintoestand van elke stap en de in deze stap oplossing, alle volgende de optimale keuze met betrekking tot de staat, waarin het systeem aan het eind van stap ontvangt.

De methode verbetert de prestaties van de taken opgelost door middel van varianten of recursie.

Bouwopgave algoritme

Dynamisch programmeren algoritme omvat de constructie van dergelijke taken die de taak zo wordt gesplitst in twee of meer subtaken om de oplossing bestaat uit een optimale oplossing voor alle subtaken, omvat. Verder is het noodzakelijk een recursierelatie schrijven, en het berekenen van de optimale parameterwaarden voor de taak als geheel.

Soms, op de 3e stap is om wat extra achtergrondinformatie over de voortgang van elke taak onthouden. Dit heet de teruggaande slag.

toepassingsmethode

Dynamische programmering wordt toegepast wanneer er twee kenmerken:

  • optimaal voor subtaken;
  • aanwezigheid in het probleem van overlappende deelproblemen.

Het oplossen van de optimalisatie probleem op door dynamisch programmeren, moet u eerst de structuur van de oplossing te beschrijven. De taak optimaal moet zijn als de oplossing is samengesteld uit de beste beslissingen van de subtaken. In dit geval is het raadzaam om dynamisch programmeren gebruiken.

De tweede eigenschap van het probleem, essentieel werkwijze - een klein aantal deeltaken. Recursieve oplossing van het probleem met dezelfde overlappende deelproblemen, waarvan het aantal afhangt van de grootte van de oorspronkelijke gegevens. Het antwoord wordt opgeslagen in een speciale tafel, het programma bespaart tijd door het gebruik van deze gegevens.

Vooral effectief is het gebruik van dynamisch programmeren wanneer de taak in wezen nodig is om beslissingen te nemen in fasen. Denk bijvoorbeeld aan een eenvoudig voorbeeld van het probleem van de vervanging en reparatie van apparatuur. Laten we zeggen dat op de casting machine fabriek voor de productie van banden op hetzelfde moment maken de band in twee verschillende vormen. Indien een van de vormen faalt, moet het apparaat te demonteren. Het is begrijpelijk dat soms voordeliger te vervangen en een tweede vorm om de machine te demonteren en indien dit formulier onwerkbaar in de volgende trap worden. Vooral omdat het makkelijker is om zowel te werken vorm te vervangen voordat ze beginnen te mislukken. Dynamische programmering methode bepaalt de beste strategie op het gebied van de vervanging van deze vormen, rekening houdend met alle factoren: de voordelen van de voortzetting vormen van uitbuiting, verlies van stilstand van de machine, de kosten van afgedankte banden en nog veel meer.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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