Авиационно инженерство Административно право Административно право Беларус Алгебра Архитектура Безопасност на живота Въведение в професията „психолог” Въведение в икономиката на културата Висша математика Геология Геоморфология Хидрология и хидрометрия Хидросистеми и хидравлични машини Културология Медицина Психология икономика дескриптивна геометрия Основи на икономически т Oria професионална безопасност Пожарна тактика процеси и структури на мисълта, Професионална психология Психология Психология на управлението на съвременната фундаментални и приложни изследвания в апаратура социалната психология социални и философски проблеми Социология Статистика теоретичните основи на компютъра автоматично управление теория на вероятностите транспорт Закон Turoperator Наказателно право Наказателно-процесуалния управление модерна производствена Физика Физични феномени Философски хладилни инсталации и екология Икономика История на икономиката Основи на икономиката Икономика на предприятията Икономическа история Икономическа теория Икономически анализ Развитие на икономиката на ЕС Спешни ситуации ВКонтакте Однокласници Моят свят Facebook LiveJournal Instagram
border=0

Етапи на решаване на проблем с помощта на компютър

Нека преведем проблема в практична равнина и да обсъдим дали е възможно да се посочи определена последователност от действия, която е обща за различни задачи, ако компютърът се използва за тяхното решаване?

По-рано (вж. Стр. 8.2. И Фиг. 8.1.), Идентифицирахме две групи алгоритми, които се различават по нивото на формализация: естественото и формалното. Към групата на естественото представяне бяха възложени някои типове запис и графична форма, а на формалната група бяха приписани теоретични алгоритмични модели и формални езикови конструкции. Въз основа на тази класификация, както и на концепциите, разгледани в тази глава, можем да изградим следната обща процедура за решаване на проблем с помощта на компютър:

(1) Изолиране на изходната система. Задаване на проблема в естествена форма.

(2) формализиране на задачите; изграждане на информационен модел (проект).

(3) Доказателство за възможността за решаване на проблема.

(4) структуриране на алгоритми; представяйки го в естествена форма.

(5) Избор на среда на инструмента.

(6) Изграждане на схема за обработка на данни.

(7) Официално представяне на схемата за обработка на езика на изпълнителя.

(8) Тестване на модела, коригиране на грешки.

(9) Работа на модела.

По отношение на дадената последователност е необходимо да се направят няколко коментара:

1) Етап (1) - постановка на проблема - е неформализирано. Неговото начало е заместването на прототипа, чието поведение се предполага да бъде изследвано или описано от някаква система, което само по себе си е опростяване на реалната ситуация, т.е. чрез моделиране. С други думи, при компютъризирано решаване на проблеми, моделирането не започва с изграждането на информационен модел на етап (2), а с дефинирането на списък от тези компоненти. които ще бъдат включени в системата и взаимодействието да бъде взето под внимание. Всяка такава конструкция води до различия между прототипа и системата, която го представя. Тези различия биха довели до несъответствия в резултатите от компютърната обработка и природните явления (процеси), дори и ако всички последващи стъпки са били извършени абсолютно точно. По този начин „системата източник” е модел; но на този етап той може да бъде неофициален, например да бъде описан на естествен език.

2) Етап (2) - формализирането на задачата е по същество изграждането на формална система, съответстваща на първоначалната неформална и представляваща нейния информационен модел. Една конкретна (обща, макар и не само възможна) версия на описанието на такъв модел е математическа. От гореизложеното става ясно, че значението на формализацията като етап от решаването на даден проблем на компютър става ясно: той определя принципа на разрешимостта на проблема (съществуването на алгоритъм за неговото решаване), ефективността на използване на компютърните ресурси (памет и процесорно време), точността на симулацията. Наред с това е възможно и доста разпространено, че компютърът се използва като средство за създаване на изкуствена система - документ, чертеж, база данни и др. В този случай не е необходимо да се говори за модела - няма прототип; все пак трябва да се изгради формализиран проект на крайния продукт (с изрично представяне или във въображението на потребителя).

3) Етап (3) включва две позиции: първо, това е доказателство за основната алгоритмична разрешимост на проблема (виж § 7.7.); и второ, оценка на сложността на алгоритъма (виж § 7.6.) и доказателство, че наличните технически ресурси са достатъчни за решаване на проблема с необходимото ниво на сложност.

4) След като е извършена формализацията и е доказана разрешимостта на проблема, настъпва етап в спецификацията на алгоритъма: той е структуриран, т.е. общата задача е разделена на модули, като се определя редът на достъп до модулите, техните взаимни връзки. Описанието на структурата може да бъде неформализирано - на естествен език или с помощта на графични форми.

5) На етапа (5) се избира изборът на оптимален инструмент за решаване на този проблем . Критериите за оптималност могат да бъдат простотата на получаване на резултата, удобството на потребителския интерфейс, точността и скоростта на обработка и т.н. Изборът се прави в две стъпки: първо, въпросът е дали ще се използва съществуващата софтуерна система (да наречем този подход на партида) или ще бъде разработена програмата ( програмен подход). Разнообразието и удобството на съвременния стандартен компютърен софтуер е толкова голямо, че позволява да се решават много много сложни проблеми при моделирането без разработване на програми. Това значително разширява кръга от потребители, елиминира необходимостта от организиране на софтуерен интерфейс и позволява много задачи да бъдат решени по-бързо, отколкото чрез програмиране. Поради тези причини при избора на среда на инструмента трябва да се предпочете пакетния подход пред софтуерния; усилията за разработване на оригиналната програма могат да се считат за целесъобразни само в случаите, когато няма стандартни аналози или не позволяват решаването на проблема. Втората стъпка от инструменталния избор в пакетния подход е да се определи най-подходящата за тази задача приложна програма. Например, за MS математически пакети могат да се сравняват MS Excel, MathCAD, MathLab, Matematica, Derive, Maple V и др. С подхода на програмата, втората стъпка е да изберете най-подходящия език за програмиране за тази задача. В този случай критериите за подбор могат да бъдат удобството да се опише оригиналния модел на този език, ефективността на технологията за програмиране и, разбира се, ефективността на крайния програмен код.

6) Етап (6) е свързан с избора или конструирането на последователности от алгоритмична обработка на данни в модулите на основния алгоритъм. Много често едно и също формално представяне позволява различни варианти за незабавна обработка. Например, проблемът за движението на материална точка под действието на произволна сила се описва с диференциално уравнение от втори ред, което може да бъде решено с помощта на различни числени методи: Ойлер, тангенти, хорди, Рунге-Кута и др. Един от факторите, определящи избора на метода, е точността на първоначалната симулация. ,

Изявлението е доста очевидно: обработката на данни не може да подобри тяхната точност. Въпросът е, че грешката, възникнала по време на първоначалните допускания на етапа на формализиране, не може да бъде компенсирана от последващото произволно внимателно и точно обработване на данни. Например, в модел, който описва движението на изоставено тяло, без да се вземе предвид съпротивлението на въздуха, е невъзможно да се получи правилната стойност за полетната област, без значение колко точна е изчислението. По същия начин точността на изчисленията не може да компенсира или намали относителната грешка на резултатите от измерването, използвани като първоначални данни за проблема. Поради тези причини изборът на схема за обработка на данни няма смисъл винаги да се стреми да използва възможно най-точната схема - като правило те значително увеличават сложността на алгоритъма и следователно изискват много повече технически ресурси или време за обработка. За изчислителни алгоритми изборът на изчислителна схема, при която точността на изчисленията (междинни данни) е само с 1-2 порядъка по-висока от точността на първоначалните данни (това се изисква от теорията на приблизителните изчисления), е оптимална от гледна точка на ефективното използване на компютъра. Ограничаването на точността на първоначалната информация трябва да бъде взето предвид при описанието на типовете данни в програмите. Например, когато програмирате в PASCAL, няма смисъл да използвате двойния тип (15 десетични знака) или дори Реал (12 бита) за представяне на реални числа, дефинирани с точност от 0.1% (относителна грешка 10 ” 3 ) - единичният тип ще бъде достатъчен (7). изхвърляния), заемащи в RAM два пъти по-малко пространство от Double.

Схемата за обработка също се определя от инструмента, избран на предишния етап. Например, при моделиране с MS Excel (както във всеки друг пакет), ние се фокусираме върху неговите възможности и вътрешния му език за представяне на команди (инструкции за обработка); поради тази причина схемата за обработка ще бъде различна от, да речем, в пакета MathCAD или при решаване на проблем с помощта на езици за програмиране.

7) Значението на етап (7) е съвсем очевидно - представянето на схемата на алгоритмичната обработка под формата на поредица от валидни команди на изпълнителя. В пакетната версия, това може просто да бъде верига от действия, извършени от потребителя, или техния запис на вътрешния език на програмната система (макро). В програмния подход алгоритъмът се пише с помощта на избрания език за програмиране.

8) Етап (8) се състои в локализиране и коригиране на възможни грешки. Има няколко източника и съответно видовете грешки. Най-простите и лесни за поправка са синтактичните грешки, т.е. нарушение на правилата за съставяне на инструкции за действия, предприети от този изпълнител. Като правило синтактичният анализ се извършва от самата софтуерна система - той информира потребителя за грешки и не позволява по-нататъшна обработка на данни, ако е налична. Вторият клас грешки е семантичен, което се проявява във факта, че с определени комбинации от входни данни те се обработват неправилно.

Локализирането на такива грешки се извършва чрез тестване, т.е. използване на изградената схема на решение за проблеми (ситуации) с известни резултати и сравнение с тях. Необходимо е да се напомни (вж. Точка 7.6). Това изпитване по принцип не гарантира отстраняването на всички възможни грешки. Следващият клас трябва да включва грешки в избора на схема за обработка (на стъпка (6)). Те се проявяват във факта, че схемата не осигурява необходимата точност на резултатите или скоростта на получаването им - в този случай трябва да бъде заменена веригата за обработка или изпълнителят. И накрая, грешките при моделирането са най-трудните за премахване . Те могат да се появят на началните етапи (1) и (2) и са свързани с грубостта на подбора на системата или конструирането на неговия модел (т.е. пренебрегването на някои съществени компоненти и връзки за задачата). Премахването на такава грешка се състои в промяна на модела и, в резултат на това, на необходимостта да се реши напълно проблема отново.

9) Етап (9) - работа на модела - е основна от гледна точка на крайния потребител. В преобладаващата част от случаите, разработването на компютърен модел, който осигурява решение на един приложен проблем, и практическото му действие се извършват от различни хора. На този етап е от съществено значение да има обратна връзка между потребителя и разработчика, което позволява отстраняване на грешки, идентифицирани по време на работа и подобряване на модела.

10) В тази последователност на решаване на проблема, някакъв цикличен характер на етапите с естествено и формално представяне привлича вниманието: на етап (1) задачата може да бъде описана на естествен език; етап (2) включва изграждането на формализиран информационен модел; на етап (3) се използват формални методи за доказване на разрешимост; етапи (4, 6) е структурирането на алгоритъма и представянето на отделните му фрагменти в неговата естествена форма (като се вземе предвид системата от команди на избрания изпълнител); етап (7) е отново официално описание (на език за програмиране). Така, решаването на проблем на компютър изисква способността да се използват както формални, така и естествени методи за представяне на алгоритми.

Това е обща последователност от действия за решаване на приложен проблем с помощта на компютърни средства. Разбира се, отделните етапи на последователността в някои специфични задачи могат да липсват или да бъдат представени в различна форма.





Вижте също:

Понятието за ефективност на системата от номера

Блоково двоично кодиране

Тестови въпроси и задачи

Пример 8.2

Пример 4.14

Връщане към съдържанието: Теоретични основи на компютърните науки

2019 @ ailback.ru