border=0

Stappen fan it probearjen fan in probleem mei in kompjûter

Lit it probleem oersetten yn in praktysk fleantúch en besykje oft it mooglik is in sesje fan aksjes oan te jaan, dy't mienskiplik is foar ferskate taken, as in kompjûter brûkt wurdt om har op te lossen?

Earder (sjoch alinea 8.2 en fig 8.1.) Wy hawwe twa groepen algoritme identifisearre dy't ferskille yn it nivo fan formalisearring: natuerlik en formele. Guon soarten linen opnimme en grafyske foarm waarden oandien oan 'e groep natuerlike represintaasje, en teoretyske algoritmyske modellen en formele taalkonstruksjes waarden oan' e formele groep taheare. Op grûn fan dizze klassifikaasje, lykas de begrippen yn dit haadstik kinne wy ​​de folgjende algemiene proseduere foar it oplossen fan in probleem mei in kompjuter meitsje:

(1) Isolaasje fan it boarne-systeem. It probleem yn in natuerlike foarm ynstelle.

(2) taak formalisaasje; it bouwen fan in ynformaasjemodel (projekt).

(3) Bewust fan 'e mooglikheid om it probleem op te lossen.

(4) Algoritmestruktuering; presintearret it yn in natuerlike foarm.

(5) Seleksje fan it arkomjouum.

(6) Konstruksje fan in data ferwurkingssysteem.

(7) Formale fertsjintwurdiging fan it ferwurkingssysteem yn 'e taal fan' e keunstner.

(8) Testen it model, korrigearje flater.

(9) Operaasje fan it model.

Wat de opjûne folchoarder is, is it nedich om in oantal observaasjes te meitsjen:

1) Stapel (1) - ferklearring fan it probleem - is ûnformalisearre. It begjin is de ferfanging fan 'e prototyp, wêrfan it gedrach neffens in beskate systeem ûndersocht wurdt of beskreau is, dat op himsels in ferieniging fan' e echte situaasje is, d. troch modeling. Mei oare wurden, yn kompjûterisearre problevellieding, wurdt modelearring net begjin mei de bou fan in ynformaasjemodel op poadium (2), mar mei de definysje fan in list fan dy komponinten. dy't wurde yn it systeem ynnommen en de ynteraksje dy't rekken holden wurde moat. Elke saakbou liedt ta ferskillen tusken de prototype en it systeem dat it fertsjintwurdiget. Dizze ferskillen soene ferskillen yn 'e resultaten fan de kompjûterproseduere en natuerlike fenomenen (prosessen), sels as alle oare stappen krekt krekt útfierd waarden. Sa is it "boarne systeem" in model; Op dizze poadium kin it lykwols net ynformele wurde, bygelyks beskreaun yn natueraal.

2) Stapel (2) - de formalisearring fan 'e opdracht is yn essinsje de bou fan in formele systeem dat it earste ynformele is en it ynformaasjemodel hat. In privee (mienskiplike, alhiel net de ienige mooglike) ferzje fan 'e beskriuwing fan sa'n model is in wiskundige. Ut it boppesteande is it be>

3) Stapel (3) befettet twa posysjes: earst is dit bewiis fan 'e wichtige algoritmyske solvabiliteit fan' e problemen (sjoch § 7.7.); en tweintich, in beoardieling fan de kompleksiteit fan 'e algoritme (sjoch § 7.6.) en bewiis dat de beskikbere technyske boarnen genôch binne om it probleem op te lossen fan it fereaske nivo fan kompleksiteit.

4) Nei it formalisearjen is útfierd en de lestigens fan 'e problemen is bewiisd, begjint it spesifisearjen fan algoritme: it is strukturearre, i. De algemiene taak is ferdield yn modules, de oarder fan tagong ta de modules, har ynterkommunikaasje wurdt bepaald De beskriuwing fan de struktuer kin net-formalisearre wêze - yn natueraal of brûke grafyske foarmen.

5) By it poadium (5) wurdt de kar foar it optimale tool foar it oplossen fan dit probleem makke. De optimaliteitskriter kin de ienfâldigens wêze fan it resultaat, de brûkbere ynterfaceferbining, de kwaliteit en de ferwurkingsnivo ensfh. De kar is makke yn twa stappen: it earste is de fraach oft it besteande softwareysteem brûkt wurdt (litte dizze oanpak in diskusje neame ) of it programma wurde ûntwikkele ( programmatyske oanpak). De ferskaat en noflikheid fan moderne standert komputer software is sa grut dat it makket om in protte tige komplekte modelingproblemen te ûntwikkeljen sûnder programma's te ûntwikkeljen. Dit útwreidet de sirkel fan brûkers útwreide, elkoar de needsaak om in software-ynterface te organisearjen en makket in soad taken flugger as it troch programmjen te behearskjen. Foar dizze redenen moat it pakket oanpak fan 'e programma ien fan' e software foarkomme as it kiezen fan in tool-omjouwing; Ynspannings om it orizjinele programma te ûntwikkeljen kinne allinich yn gefal beskôge wurde as der gjin standert analogs binne of se it problem net oplosse. De twadde stap fan 'e ynstrumintale keuze yn' e batchapassing is om it applikaasjeprogramma te befetsjen dy't meast gaadlik is foar de taak. Bygelyks foar it wiskundige modeling, MS Excel, MathCAD, MathLab, Matematica, Derive, Maple V, en oare pakketten kinne fergelike wurde. Yn 'e programma oanpak is de twadde stap om de programmingtaal meast te passearjen te selektearjen foar de natuer fan dizze taak. Yn dit gefal kinne de seleksjerkrêften it maklik wêze om it orizjinele model yn 'e gegevens te beskriuwen, de effektiviteit fan programmingtechnology, en fansels de effektiviteit fan' e finale programma-koade.

6) Stapel (6) is ferbûn oan 'e seleksje of oanbou fan sequences fan algoritmyske dataferwurking yn' e modules fan 'e haad algoritme. Faaks wurdt itselde formele representaasje jilde foar ferskate farianten fan direkte ferwurking. Bygelyks, it probleem fan 'e moasje fan in materiaal punt ûnder de aksje fan in willekeurige krêft wurdt beskreaun troch in differinsjaal lykweardige twadde bestelling, dy't besparre wurde kin mei ferskate numerike metoades: Euler, tangents, akten, Runge-Kutta, ensfh. Ien fan' e faktueren dy't de kar meitsje fan de metoade is de krekte rjochting fan 'e orizjinele simulaasje .

De ferklearring is earder foarsichtich: de databesferwurking kin har krewearjen net ferbetterje. It punt is dat de flater dy't ûntstiet yn 'e earste hypnosjes by it formalisearjenstafel kin net kompensearre wurde troch de folgjende arbitrêre soarch en krekte databesferwurking. Bygelyks, yn in model dy't de beweging fan in ferlitten orgaan beskriuwt sûnder rekken fan luchtbestriding, is it grûnslach ûnmooglik om de krekte wearde foar it fleanfjild te krijen, lykas hoe krekt de berekkening is. Lykwols kin de kwaliteit fan 'e berekkeningen net kompensearje of de relative flater fan' e mjitting-resultaten beheine as de earste data fan it probleem. Foar dy redenen, it kiezen fan in data ferwurkingsregeling, makket gjin sin foar altyd besykje it genoegste regeling mooglik te brûken - as regel ferheegje se de kompleksiteit fan 'e algoritme signifikant fergrutsje en freegje dan folle mear technyske boarnen of ferwurkjen. Foar komputative algoritme is de kar foar in kompjûterskema dêr't de kwaliteit fan berekkeningen (intermediate data) allinich 1-2 oardielen fan grutter heger as de justysje fan 'e earste data (dit is ferplicht troch de teory fan ungewoane berekkeningen) is optimaal foar effektyf komputer gebrûk. De beheining fan 'e justysje fan' e earste ynformaasje moat rekken holden wurde by it beskriuwen fan datatypen yn programma's. Bygelyks by programmearjen yn PASCAL, it makket gjin sin foar it brûken fan 'e Dûbele type (15 desimale plakken) of sels Real (12 bits) om echte nûmers te behertigjen mei in accuracy fan 0,1% (relative flater 10 " 3 ) - de Ienige type (7 ôfslach), bepleite yn RAM twa kear minder romte as Dûbele.

It ferwurkingssysteem wurdt ek bepaald troch it selektearre seleksje op 'e foargeande poadium. Bygelyks by it modellen fan MS Excel (lykas yn in oare pakket), rjochtsje wy ús op har mooglikheden en har ynterne taal foar presintearjen fan kommando's (ynstruksje ynstruksjes); Hjirmei sil it ferwurkingssysteem oars as sizze, yn it MathCAD-pakket of by it oplossen fan in probleem mei programmearrings.

7) De betsjutting fan 'e poadium (7) is fanselssprekkend - de fertsjintwurdiging fan it algoritmyske ferwurkingssysteem yn' e foarm fan in folchoarder fan jildige kommando's fan 'e kontraktor. Yn 'e batchferzje kin dit gewoan in ketting fan aksjes wêze dy't troch de brûker trochfierd wurdt, of har opnimmen yn' e ynterne taal fan it programma systeem (makro). Yn 'e programma oanpak wurdt it algoritme skreaun mei de selektearre programmierspraat.

8) Stapel (8) bestiet út it pleatsen en ferbetterjen fan mooglike fouten. Der binne ferskate boarnen en, neffens, de typen fan flater. De meast ienfâldige en maklik befêstige binne syntaksisfragers, d. Verlichting fan 'e regels foar it bouwen fan ynstruksjes foar aksjes dy't dizze útfierd hawwe. As de regel is, wurdt de syntaksis-analyse útfierd troch it software-systeem sels - it rapportearret de brûker oer flaters en jout gjin fierdere ferwurking fan de data, as beskikber. De twadde klasse fan 'e fouten is semantysk, dy't himsels yn' e feiligens ferskynt dat mei bepaalde kombinaasjes fan ynputgegevens falsk ferwurke wurde.

Lokaasje fan sokke fouten wurdt útfierd troch testen, d. mei it konstruearre oplossingsprogramma foar problemen (situaasjes) mei bekende resultaten en ferliking mei har. It is needsaaklik te hergenearjen (sjoch klausel 7.6.) Dat testen, yn 't algemien, net foar it fuortsterkjen fan alle mooglike fouten. De folgjende klasse moat ferkearingen wêze yn 'e kar foar it ferwurkjen fan skema (by stap (6)). Se wurde manifestearre yn it feit dat it skema de needsaaklike kwaliteit fan 'e resultaten net leveret of de snelheid fan har ûntfangst - yn dat gefal moat de ferwurkingskoalle of de útfierer ferfongen wurde. Uteinlik binne modeljende fouten de measte wurklikheid om te foarkommen . Se kinne op 'e begjinstêden (1) en (2) foarkomme en wurde ferbûn mei de koarensens fan' e seleksje fan it systeem of de oanlis fan har model (dat is it mislearjen fan guon essensjele komponinten en ferbiningen foar de taak). De ôfwizing fan sa'n gefoel bestiet út it feroarjen fan it model en, as gefolch, de needsaak om it probleem hielendal opnij te meitsjen.

9) Stap (9) - operaasje fan it model - is basisk fanút it punt fan de ein fan 'e brûker. Yn 'e overweldende mearderheid fan' e gefallen is de ûntwikkeling fan in kompjûtermodel dat in oplossing foar in tapastige probleem leveret, en har praktyske operaasje wurdt troch ferskillende minsken útfierd. Op dit stuit is it wêzentlik om kommentaar tusken de brûker en de ûntwikkelder te hawwen, wêrtroch't mislearre flater by it funksjonearjen en it ferbetterjen fan it model mooglik makket.

10) Yn 'e bepaalde folchoarder fan it probleem lûke sommige zyklike karakter fan' e etapanen mei in natuerlike en formele presintaasje omtinken: op poadium (1) kin de taak beskreaun wurde yn in natueraal; Stapel (2) befettet de oanlis fan in formalisearre ynformaasjemodel; Op it poadium (3) wurde ek formele metoaden foar bewuste ferwidering brûkt; stappen (4, 6) fertsjinwurdigje de struktuerearring fan 'e algoritme en de presintaasje fan har yndividuele fragminten yn har natuerlike foarm (rekkening mei it systeem fan kommando's fan' e selektearre útfierer); Stap (7) is wer in formele beskriuwing (yn in programmearjende taal). Sa is de oplossing fan in probleem op in kompjûter de mooglikheid om sawol formele en natuerlike metoaden te brûken foar it werjaan fan algoritmen.

It boppeste is in algemiene folchoarder fan aksjes by it oplossen fan in oanpast probleem mei help fan komputer-ark. Fansels kinne de yndividuele stappen fan 'e sesje yn guon spesifike taken as fermidden of presintearre wurde yn in oare foarm.





Sjoch ek:

Value formalisaasje

De entropy fan in kompleks eksperimint besteande út ferskate ûnôfhinklike is lyk oan 'e sum fan' e entropy fan yndividuele eksperiminten.

Konvertearje normalisearre nûmers

Haadstik 10. Models en systeem

By it ûntbrekken fan ynterferinsje is in fariant fan it kodearjen fan in berjocht altyd mooglik, wêryn de redundancy fan 'e koade willkiedich nul is.

Gean werom nei Tafel Ynhâld: Teoretyske Stiftingen fan Computer Science

2019 @ bibinar.info