Смекни!
smekni.com

Нахождение опорного плана транспортной задачи

. ЛИНЕЙНЫЕ МЕТОДЫОПТИМИЗАЦИИ,ЗАДАЧА ЛИНЕЙНОГОПРОГРАММИРОВАНИЯ,ЕЕ ПОСТАНОВКАИ СВОЙСТВА

1.1 Постановказадачи линейногопрограммирования

В экономикепомимо соотношенийзатрат, выпуска,спроса, предложенияи т.п., частовозникаетнеобходимостьвыбора одногоиз возможныхвариантовфункционированияэкономическойсистемы. Экономическиоправдано втаких условияхставить вопросо выборе наилучшеговарианта. Чтопонимать подлучшим вариантомзадается в видекритерия (цели).В количественномвыражениикритерий представляетсобой функциональнуюзависимостьот переменныхпоказателей,в дальнейшембудем ее называтьцелевой (критериальной)функцией. Наилучшийвариант в такомслучае соответствуетнаибольшему(экстремальному,оптимальному)значению функции.

В экономическихзадачах, какправило, областьизмененияпеременныхпараметровограниченаи оптимальноезначение целевойфункции требуетсянайти на ограниченноммножестве.Область исследования,заключающаясяв нахожденииалгоритмоврешения подобныхзадач, образуетнаправление,которое называетсяматематическимпрограммированием.

Экономическиетребованиянакладываютсвои особенности:в практическихзадачах числопеременныхи ограниченийдостаточновелико, целеваяфункция невсегда дифференцируема.Поэтому методыклассическогоанализа дляотысканияэкстремумовк задачамматематическогопрограммиро­ваниячасто неприменимы.Возникаетнеобходимостьразработкиспециальныхметодов решениязадач математическогопрограммированияи, следовательно,как всегда втаких случаях,появляютсяновые направления,требующиеупорядочения,классификации.Классификациязадач происходитв зависимостиот экономическихусловий, видовограничений,переменныхи параметров,методов решения.

Традиционнов математическомпрограммированиивыделяют следующиеосновные разделы.

Линейноепрограммирование- целевая функциялинейна, множество,на которомищется экстремумцелевой функции,задается системойлинейных равенстви неравенств.В свою очередьв линейномпрограммированиисуществуютклассы задач,структуракоторых позволяетсоздать специальныеметоды их решения,выгодно отличающиесяот методоврешения задачобщего характера.Так, в линейномпрограммированиипоявился разделтранспортныхзадач, блочногопрограммированияи др.

Н

лист

Кп-км-п-44-2203-99

елинейноепрограммирование- нелинейныцелевая функцияи ограничения.Нелинейноепрограммированиепринято подразделятьследующимобразом:

-

выпуклоепрограммирование- когда выпуклацелевая функция,если рассматриваетсязадача ее минимизации(либо выпуска,если ищетсямаксимум), ивыпукло множество,на которомрешаетсяэкстремальнаязадача;

- квадратичноепрограммирование- когда целеваяфункция квадратичная,а ограничения- линейные равенстваи неравенства.

Многоэкстремальныезадачи - здесьобычно выделяютспециализиро­ванныеклассы задач,часто встречающихсяв приложениях,например, задачио минимизациина выпукломмножествевогнутых функций.

Важным разделомматематическогопрограммированияявляетсяцелочисленноепрограммирование- когда на переменныенакладываютсяусловия целочисленности.

Первой из"неклассических"задач оптимизациибыла подробноисследованазадача отысканияэкстремумалинейной функциина множестве,заданном линейныминеравенствамии равенствами.Раздел теорииоптимизации,изучающий такиезадачи, получилназвание "линейноепрограммирование".

В данномразделе изучаетсязадача линейногопрограммирования,которая задаетсяследующимобразом.

1. Задача решаетсяотносительно переменных .

В дальнейшемони будутзаписыватьсяв виде либовектора-столбца

(X1)

X = ( .. )

( Xn)


либо вектора-строких = (х1,..., хn).

Предполагается,что вектор хдолжен удовлетворятьсистеме nлинейных неравенств


a11x1+ ….+a1nxn

am1x1+….+amnxn

3. В экономическихзадачах присутствуетдополнительноенеобходимоеусловие: координатывектора х должныбыть неотрицательными:

X>= 0 (2)

где 0 - нулевойвектор-столбецразмерностиn.

4. Целеваяфункция представляетсобой линейнуюфункцию переменныхX1,…..,Xn


P1X1+…..PmXn=f(x1,….,xn) (3)


Лист

Кп-км-п-44-2203-99


5

.Общая задачалинейногопрограммирования(ЛП) состоит ввыборе векторах, удовлетворяющегосистеме неравенств(1),(2)и максимизи­рующегоцелевую функцию( 3 ).Математическизадача ЛПзаписываетсяследующимобразом:

P1X1+…..+PnXn max(x1

при условиях


{a11x1+…….+a1nxn

{……………………………} (5)

{am1x1+…….+amnxn

x1>=0, x2>=0,……,xn>=0 (6)

или

n

E pixi max

J=1 x1,..,xn


при условиях

n

{ E a1jxj

j=1

{…………

n

{ E a1jxj

j=1

{…………

n

{ E mjxj

x1,….,xn >=0


Задача ЛинейногоПрограммированияв матричнойформе записываетсяследующимобразом. Обозначимчерез bвектор-столбецправой частиСЛН

(b1)

B = (….)

(bm)

через А - матрицукоэффициентовСЛН:


a11…..a1n

……..

A = ……..

Лист

Кп-км-п-44-2203-99

am1…..amn

ч

ерезр - вектор-строкукоэффициентовцелевой функции.Напомним, выражение(р, х) означаетскалярноепроизведениевекторов р их. Тогда в матричномвиде задачаЛП записывается:

(P,X)max(x)

при условии:


Ax

x>=0

Таким образом,в задаче ЛинейногоПрограммированияконстантами(параметрами)являются коэффициентыматрицы А, векторправой частиВ и коэффициентыцелевой функции- вектор P.Подлежит определениювектор х*=х1,..,,хn,),который удовлетворяетограничениям( 8 ),( 9):

Ах*

х*>0,

и доставляетмаксимум целевойфункции ( 7):

max(p,x)=(р, х*).

Это матричнаязапись задачиЛП на максимумв стандартнойформе.

Запись задачилинейногопрограммирования( 4) -(6) или (7) - (9) называютзаписью ЗЛПв стандартнойформе.

Иногда, исходяиз практическихтребований,отдельныеограниченияна переменныех,, ..., х„ могутиметь вид точногоравенства

n

E aijxj=bi

I=1 (10)

Это значит,что решениетребуетсяискать средивекторов х,координатыкоторых удовлетворяютi-муограничениюкак точномуравенству.Чтобы привестив этом случаезадачу к стандартномувиду, уравнение(10)достаточнозаменить насистему из двух^неравенств:


{ E ai jxj

{ E aij xj>=bi(11)


или


{ E aij xj

{ E aij xj

Лист

Кп-км-п-44-2203-99


У

равнение( 11)и система (12 ) или эквивалентны.Задача линейногопрограммированиявида:

mах(р, х)

Ах=B (13 )

х>0

называетсязадачей линейногопрограммированияв каноническойформе.

Чтобы привестизадачу линейногопрограммированияв стандартнойфюрме к формеканонической,следует ввестидополнительныепеременныеui,ui>=0,i=1,2,….,m , такие,что

E aij xj+ui=bi, i=1,….,m

Причем целеваяфункция приэтом должнаоставатьсянеизменной.Для этого запишемцелевую функциюв виде:


EpjXj+0*u1+0*u2+…..0*um


Здесь коэффициентыпри переменныхu1,….,um полагаютсяравными нулю.Тогда задача(7)- (9)в каноническомвиде принимаетвид:


( n )

( E PjXj ) maxx

( j=1 )

(14)

при условиях:

n

Eaijxj+ui=bi, i=1,…..,m (15)

j=1


x1,…..,xn>=0 u1,…..um>=0 (16)

Стандартнаязадача линейногопрограммированияна минимум

(матричнаязапись) записываетсяв виде:


(p,x) maxx (17)


при условиях:

ax>=b

x>=0 (18)

или в записив виде неравенств:


Лист

Кп-км-п-44-2203-99


E

pjXjmin x1..xn

при ограничениях:


E aij xj>=bi


…………..

Eaij xj>=bm


X1….xn>=0


Таким образом,не важно, в какойформе получаютсялинейные ограничения:в форме равенствили в форменеравенств.Эквивалентнымипреобразованиямивозможно привестинеравенствак равенствами наоборот.Необходимостьпреобразованийобычно связанас тем, какойприменяетсяметод решения.


1.3 Транспортнаязадача

Пусть некоторый,однородныйтовар (продукт)хранится наMскладах ипотребляетсяв Nпунктах (например,магазинах).Известны следующиепараметры:

ai - запаспродукта на -омскладе,ai>0, i=1,….,m

bj-потребностьв продукте в -омпункте,bj>0,j=1,….,n

Cij -стоимостьперевозкиединичногоколичестватовара с -госклада в -й пункт, . Планируетсяполностьюперевезти товарсо складов иполностьюудовлетворитьпотребностив пунктах назначения.При этом предполагается,что суммарныезапасы равнысуммарнымпотребностям:


m n

E ai = E bj (19)

i=1 j=1

Транспортнаязадача ставитсякак каноническаязадача ЛП следующегоспециальноговида:

m n

E E CijXij min (20)

i=1 j=1


при условиях:


Лист

Кп-км-п-44-2203-99


n

E xij=ai,i=1,…,m (21)

J=1


n

E xij=bj,j=1,….,n (22)

I=1


Xij>=0, i=1,…..m j=1,….n (23)

где - количествотовара, перевозимогос I-госклада в J-ыйпункт. Инымисловами, требуетсятак организоватьперевозкипродукта соскладов в пунктыпотребления,чтобы при полномудовлетворениипотребностейминимизи­роватьсуммарныетранспортныерасходы. Заметим,что условие( )является необходимыми достаточнымдля существованиярешения транспортнойзадачи.



Лист

Кп-км-п-44-2203-99


4

.Анализ задачиили модели.

4.1 Определениеопорного планатранспортнойзадачи

Для решениятранспортнойзадачи разработанонесколькометодов, каждыйиз которыхотличаетсяот другогометодом заполненияматрицы перевозок. Существуютдва типа транспортнойзадачи:открытая изакрытая.Транспортнаязадача называетсяоткрытой еслисумма запасовтовара на складахотличаетсяот суммы потребностейтоваров у магазинов.Транспортнаязадача называетсязакрытой , еслисумма запасовтовара на складахравняется суммепотребностеймагазинов.Решение существуеттолько длязакрытой транспортнойзадачи, поэтомуесли транспортнаязадача открытая, то ее надо привестик закрытомутипу. Для этого в случае , еслизапас товарана складахпревышаетпотребностьмагазинов, товводят фиктивногопотребителя,который выбираетвесь избытоктовара. В случаеже, если существуетдефицит товара,т.е. потребностьмагазиновбольше, чемзапас товаровна складах, товводят фиктивногопоставщика,с фиктивнымзапасом товарана складе. Вобоих случаяхв матрице тарифовперевозок |C|данномускладу илимагазинупроставляетсянулевая ценаперевозки.


Метод минимальногоэлемента


Алгоритмметода минимальногоэлемента состоитв следующем.

Просматриваетсявся матрицатарифов перевозок,и из нее выбираетсяпозиция с наименьшимзначениемтарифа C,затем просматриваютсязначения наличиязапасов наскладе A и потребностиу потребителя B,затем в даннуюклетку записываетсявеличина D=MIN(A,B).Из запасовсоответствующегосклада и потребностеймагазина вычитаетсявеличина D. Если запас товара на складеисчерпан, тоэта строкаисключаетсяиз дальнейшегорассмотрения.Если потребностьмагазина втоваре удовлетворенаполностью, то этот столбецисключаетсяиз дальнейшегорассмотрения.Может бытьслучай , когдаодновременноисключаютсяи строка и столбец,этот случайназываетсявырожденным.В дальнейшемвесь процессповторяется до тех пор , покане будет исчерпанвесь запастоваров наскладах и небудет удовлетворенапотребностьвсех магазинов.По полученнойматрице перевозоквычисляется целевая функциязадачи Z.

Лист

Кп-км-п-44-2203-99


Метод Фогеля


Метод состоитв следующем.Просматриваютсявсе строки истолбцы матрицытарифов, вычисляетсяразность междудвумя наименьшимиэлементамив строке илив столбце. Затемиз всех этихразностейвыбираетсястрока илистолбец смаксимальнойразность. Ввыбраннойстроке илистолбце , каки в методеминимальногоэлемента, заполняетсяклетка с наименьшимзначениемтарифа. Затемобнулявшаясястрока илистолбец исключаютсяиз рассмотренияи весь процессповторяетсядо полногоисчерпаниязапаса товаровна складах. Пополученнойматрице перевозоквычисляетсяцелевая функцияZ.


Метод двойногопредпочтения


В начальнойсвоей стадииэтот методпохож на методминимальногоэлемента , нодля столбцов.Просматриваетсяпервый столбецматрицы тарифов,в нем находитсянаименьшийэлемент. Затемпроверяется, минимален лиэтот элементв своей строке.Если элементминимален всвоей строке,то по методуминимальногоэлемента в этуклетку заноситсязначение D=MIN(A,B),

соответствующиезапас и потребностьуменьшаютсяна эту величину.Обнулившаясястрока илистолбец исключаютсяиз рассмотренияи процессповторяется,начиная с первогонеисключенногостолбца. Еслинайденныйминимальныйэлемент неминимален всвоей строке,то происходитпереход к следующемустолбцу и такдо тех пор, покане будет найдентакой элемент.По полученнойматрице перевозоквычисляетсяцелевая функцияZ. Этотметод требуетинтенсивныхоперации обменас памятью , поэтомуболее громоздокпо сравнениюс остальнымии требует большихвычислительныхресурсов.

Как и любаязадача линейногопрограммирования,необходимопостроитьпервоначальныйопорный пландля решениязадачи. Однимиз методовпостроенияисходногоопорного планаявляется такназываемыйметод «северо-западного»угла.



Лист

Кп-км-п-44-2203-99


Метод северо-западногоугла


Метод состоитв следующем.Просматриваетсяматрица тарифовперевозок C, начинаяс левого верхнегоугла (клетки).В эту клеткузаписываетсявеличина D=MIN(A,B).Она вычитаетсяиз запасов ипотребностейсоответствующегосклада и магазина.Обнулившаясястрока илистолбец исключаютсяиз рассмотрения,затем процессопять повторяетсядля левой верхнейклетки оставшейсяматрицы и такдо тех пор покавесь запастоваров небудет исчерпан.Полученныйопорный планне оптимален,поэтому егодальнейшеерешение продолжаютодним из вышерассмотренныхметодов.


Лист

Кп-км-п-44-2203-99


2

.Предмодельныйанализ.

2.1 Анализсуществующиханалогов иподсистем


Программноеобеспечениедля решениязадач линейногопрограммированияи в частности,транспортнойзадачи разработаноуже в конце60-ых – начале70-ых годов и былореализованокак пакет программ– библиотек.Данный пакетзадач был реализованна таких алгоритмическихязыках какАлгол, Фортран.В западныхразработкахв основномприменялсяалгоритмическийязык Кобол. Споявлениемперсональныхкомпьютеровданный пакетбыл перемещенна ПК, с учетомособенностейреализациитранслятороввышеперечисленныхязыков на ПК.Также дополнительнобыли реализованыпакеты программ,в основномусилиями вузовна языках Паскаль,Си. Переноспрограммногообеспеченияна ПК открылновые возможностив решении задачлинейногопрограммированияи наглядногоотображениярезультатоввычислении,что отсутствовалона большихвычислительныхсистемах –мэйнфреймах.

Ход вычислениии его результаты,особенно длямногомерныхзадач с большимчислом переменныхможно былонаглядно отобразитьна мониторе.Кроме тогопоявлениеинтерактивныхпрограмм, программ, в ход которыхчеловек- оператормог активновмешаться,корректироватьпромежуточныерезультаты, изменить методикурасчетов, значительнооблегчал иускорял разработкунового программногообеспечения.

С развитиемаппаратногообеспечениясовершенствовалосьи программноеобеспечение.Алгоритмическиеязыки тожесовершенствовалисьсогласно потребностям экономики,науки и т.д.

Особо бурноеразвитие программногообеспеченияначалось споявлениемоперационнойсистемы Windows.Почти всесуществующеепрограммноеобеспечениеи алгоритмическиеязыки былиперенесенына эту операционнуюплатформу.ВозможностиWindows усилилиинтерактивнуюсторону этихалгоритмическихязыков, перейдяна объектно-ориентированныйпринцип построенияалгоритмов,что позволялоиспользоватьуже наработанноепрограммноеобеспечениебез большихизменений.

Одним из бурноразвивающихсяалгоритмическихязыков являетсяPascal иего диалекты.Первоначальноэтот язык былсоздан дляобучения студентовосновам программирования,ввиду своейпростоты инаглядностиконструкции.Он был созданНиклаусомВиртом, и послужилосновой дляцелого семействапаскале-подобныхязыков –Modula, Classcal, Object Pascal.

Наиболееразвитую системупрограммированияна языке Pascalпостроилафирма Borland– Turbo Pascal. Первоначальноона была реализованадля DOS,с появлениемWindows ,она была перенесенав нее. И наконец,была выпущенановая версиядля Windows– Delphi.

Лист

Кп-км-п-44-2203-99



5.2 Среда разработкиDelphi


Без баз данныхсегодня невозможнопредставитьработу большинствафинансовых,промышленных,торговых ипрочих организаций.Потоки информации,циркулирующиев мире, которыйнас окружает,огромны. Вовремени ониимеют тенденциюк увеличению.Не будь базданных, мы давнозахлебнулисьбы в информационнойлавине. Базыданных позволяютинформациюструктурировать,хранить и извлекатьоптимальнымдля пользователяобразом.

Посколькуиспользованиебаз данныхявляется однимиз краеугольныхкамней, на которыхпостроеносуществованиеразличныхорганизаций,пристальноевниманиеразработчиковприложенийбаз данныхвызывают инструменты,при помощикоторых такиеприложенияможно было бысоздавать.Выдвигаемыек ним требованияв общем видеможно сформулироватькак:

"быстрота,простота,эффективность,надежность".

Среди большогоразнообразияпродуктов дляразработкиприложенийDelphi занимаетодно из ведущихмест. Delphi иотдают предпочтениеразработчикис разным стажем,привычками,профессиональнымиинтересами.С помощью Delphiнаписаноколоссальноеколичествоприложений,десятки фирми тысячипрограммистов-одиночекразрабатываютдля Delphi дополнительныекомпоненты.

В основе такойобщепризнаннойпопулярностилежит тот факт,что Delphi, какникакая другаясистема программирования,удовлетворяетизложеннымвыше требованиям.Действительно,приложенияс помощью Delphiразрабатываютсябыстро, причемвзаимодействиеразработчикас интерактивнойсредой Delphiне вызываетвнутреннегоотторжения,а наоборот,оставляетощущение комфорта.Delphi -приложенияэффективны,если разработчиксоблюдаетопределенныеправила (и часто- если не соблюдает).Эти приложениянадежны и приэксплуатацииобладаютпредсказуемымповедением.

Н

Лист

Кп-км-п-44-2203-99

овот проста лиDelphi?И да, и нет. Оналишь кажетсяпростой, посколькумногие "подводныекамни" скрытыот разработчика.Однако чембольше изучаешьее, тем большестановитсяясной ее глубина,которая одновременнои вызываетуважение, ипугает. Лишьсо временемприходит пониманиетого, что длянаписаниядействительномощных и функциональныхприложенийтребуетсяпостоянноеизучение Delphi.

Б

лок-схемаменю определениеопорного плана(Transtask.pas)


1


2




3

Да


нет



4 Да


5



нет



6 Да


7



нет




8 Да



9


нет





Лист

Кп-км-п-44-2203-99






10



11


12






13

Да

14


нет






15



16






Лист

Кп-км-п-44-2203-99



Блок-схемаподпрограммырешения методомминимальногоэлемента MINIELEM


1




2



3




4




5




6 Да



7

нет



8

Да



9

нет







Лист

Кп-км-п-44-2203-99







10




11



Да

12



13



Лист

Кп-км-п-44-2203-99




Блок-схемаподпрограммырешения транспортнойзадачи Transsolver


1



2

Да



3


нет


4 Да



5


нет


6






7

нет





8



Лист

Кп-км-п-44-2203-99




unitUnit1;


interface


uses

Windows,Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

Grids;


type

TForm1= class(TForm)

StringGrid1:TStringGrid;

private

{Private declarations }

public

{Public declarations }

end;


var

Form1:TForm1;

word:string;

words:TStringList;

i:integer;


implementation


{$R*.DFM}

Form1.slString=TStringList.Create;

fori:=1 to 8 do

begin

word:=IntTostr(i);

words.add(word)

end


end.


Лист

Кп-км-п-44-2203-99




unitTransTask;


interface


uses

Windows,Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls,ExtCtrls, Grids, ComCtrls, Math;


type

TfmTransTask= class(TForm)

pgcTransTask:TPageControl;

tbsAbout:TTabSheet;

tbsData:TTabSheet;

tbsTarif:TTabSheet;

tbsSolve:TTabSheet;

Label1:TLabel;

edProviderCount:TEdit;

spnProviderCount:TUpDown;

Label2:TLabel;

stgProvider:TStringGrid;

Label3:TLabel;

Label4:TLabel;

edCustomerCount:TEdit;

spnCustomerCount:TUpDown;

stgCustomer:TStringGrid;

Label5:TLabel;

lblTypeTask:TLabel;

lblProviderGruz:TLabel;

lblCustomerGruz:TLabel;

stgTarif:TStringGrid;

stgSolve:TStringGrid;

rgMetod:TRadioGroup;

rbMinelem:TRadioButton;

rbFogel:TRadioButton;

rbTwoWall:TRadioButton;

btnSolve:TButton;

btnPrint:TButton;

Label6:TLabel;

Label7:TLabel;

Label8:TLabel;

Label9:TLabel;

btnLoadData:TButton;

btnLoadDataC:TButton;

lblProvider:TLabel;

lblCustomer:TLabel;

lblTupeTask:TLabel;

lblMsg:TLabel;

Label10:TLabel;

lblZ:TLabel;

procedureFormCreate(Sender: TObject);

procedureedProviderCountChange(Sender: TObject);

procedureedCustomerCountChange(Sender: TObject);

procedurebtnLoadDataClick(Sender: TObject);

procedurebtnLoadDataCClick(Sender: TObject);

procedurebtnSolveClick(Sender: TObject);

procedurebtnPrintClick(Sender: TObject);

Лист

Кп-км-п-44-2203-99

private

{ Private declarations }

public

{Public declarations }

end;


var

fmTransTask:TfmTransTask;

a,b:array of integer;// наличиегруза у поставщиков

//и спрос у потребителей

c:array of array of integer; // матрицатарифов перевозок

d:array of array of integer;// матрицаперевозок(решение)

z,m,n:integer;//число поставщикови потребителей

s:string;

implementation


{$R*.DFM}


procedureShowSolve;

var

i,j:integer;

begin

fori:= 0 to m-1 do

forj:= 0 to n-1 do

fmTransTask.stgSolve.Cells[j+1,i+1]:=IntToStr(d[i,j]);

fmTransTask.lblZ.Caption:=IntToStr(z);


end;


procedureMinelem;

label

l1;

var

i,j,imin,jmin,cmin:integer;

set_i:setof 0..255;

set_j:setof 0..255;

begin

//создаем множествоиндексов

set_i:=[];

fori:=0 to m-1 do include(set_i,i);

set_j:=[];

forj:=0 to n-1 do include(set_j,j);


z:=0;

repeat

//поиск первоначальногоминимальногоьэлемента вматрице тарифов

fori:= 0 to m-1 do

forj:= 0 to n-1 do

if(i in set_i) and (j in set_j) then

begin

cmin:=c[i,j];

gotol1

end;

l1:

//поиск минимальногоэлемента в

//в матрице тарифовc

fori:= 0 to m-1 do

forj:= 0 to n-1 do

if(i in set_i) and (j in set_j) then

ifc[i,j]

begin

Лист

Кп-км-п-44-2203-99

cmin:=c[i,j];

imin:=i;

jmin:=j

end;

//определениевеличины поставки

d[imin,jmin]:=min(a[imin],b[jmin]);

// определяемисключаемуюстроку столбец


a[imin]:=a[imin]-d[imin,jmin];


ifa[imin]=0 then

exclude(set_i,imin);


b[jmin]:=b[jmin]-d[imin,jmin];


ifb[jmin]=0 then

exclude(set_j,jmin);


z:=z+d[imin,jmin]*cmin

until(set_i=[]) and (set_j=[]);

ShowSolve

end;


procedureFogel;

var

i,j:integer;

cminprev,cmin:integer;

SubCol,SubRow:arrayof array of integer;

set_i,set_j:setof 0..255;

imin,jmin:integer;

imax,jmax:integer;

SubRowMax,SubColMax:integer;


begin

//размещаеммассивы

SetLength(SubRow,m);

fori:= 0 to m-1 do SetLength(SubRow[i],2);


SetLength(SubCol,n);

forj:= 0 to n-1 do SetLength(SubCol[j],2);


set_i:=[];

fori:=0 to m-1 do include(set_i,i);


set_j:=[];

forj:=0 to n-1 do include(set_j,j);


repeat

//цикл по строкам

fori:= 0 to m-1 do

ifi in set_i then

begin

//ищем первоначальныйминимальныйэлемент в строке

forj:= 0 to n-1 do

ifj in set_j then

begin

cmin:=c[i,j];

break

end;

//ищем 1-ое наименьшеезначение встроке

forj:= 0 to n-1 do

Лист

Кп-км-п-44-2203-99

if j in set_j then

if c[i,j]

begin

cmin:=c[i,j];

SubRow[i,1]:=j

end;


cminprev:=cmin;

//ищем первоначальныйминимальныйэлемент в строке

forj:= 0 to n-1 do

if(j in set_j) and (jSubRow[i,1]) then

begin

cminprev:=c[i,j];

break

end;

//ищем 2-ое наименьшеезначение встроке

forj:= 0 to n-1 do

if(j in set_j) and (jSubRow[i,1]) then

ifc[i,j]

cminprev:=c[i,j];

//Вычисляемразность междудвумя наименьшими

SubRow[i,0]:=cminprev-cmin;


end;

//цикл по столбцам

forj:= 0 to n-1 do

ifj in set_j then

begin

//ищем первоначальныйминимальныйэлемент в столбце

fori:= 0 to m-1 do

ifi in set_i then

begin

cmin:=c[i,j];

break

end;

//ищем 1-ое наименьшеезначение встолбце

fori:= 0 to m-1 do

ifi in set_i then

ifc[i,j]

begin

cmin:=c[i,j];

SubCol[j,1]:=i

end;


cminprev:=cmin;

//ищем первоначальныйминимальныйэлемент в столбце

fori:= 0 to m-1 do

if(i in set_i) and (iSubCol[j,1]) then

begin

cminprev:=c[i,j];

break

end;

//ищем 2-ое наименьшеезначение встолбце

fori:= 0 to m-1 do

if(i in set_i) and (iSubCol[j,1]) then

ifc[i,j]

cminprev:=c[i,j];

//Вычисляемразность междудвумя наименьшими

SubCol[j,0]:=cminprev-cmin;

end;


Лист

Кп-км-п-44-2203-99

//отыскиваеммаксимальноезначение встроке

// сперванаходим начальныйнаибольшийэлемент

fori:= 0 to m-1 do

ifi in set_i then

begin

SubRowMax:=Subrow[i,0];

break

end;

//Теперь просматриваемвсю строку

fori:= 0 to m-1 do

ifi in set_i then

ifSubRow[i,0]>=SubRowMax then

begin

SubRowMax:=SubRow[i,0];

imax:=i

end;


//отыскиваеммаксимальноезначение встроке

//сперва находимначальныйнаибольшийэлемент

forj:= 0 to n-1 do

ifj in set_j then

begin

SubColMax:=SubCol[j,0];

break

end;

//Теперь просматриваемвсю строку

forj:= 0 to n-1 do

ifj in set_j then

ifSubCol[j,0]>=SubColMax then

begin

SubColMax:=SubCol[j,0];

jmax:=j

end;

//сравниваеммаксимальноезначение разностипо строкам истолбцам

ifSubRowMax>SubColMax then

begin

d[imax,SubRow[imax,1]]:=min(a[imax],b[SubRow[imax,1]]);

a[imax]:=a[imax]-d[imax,SubRow[imax,1]];

b[SubRow[imax,1]]:=b[SubRow[imax,1]]-d[imax,SubRow[imax,1]];


ifa[imax]=0 then Exclude(set_i,imax);

ifb[SubRow[imax,1]]=0 then

Exclude(set_j,SubRow[imax,1]);

z:=z+d[imax,SubRow[imax,1]]*c[imax,SubRow[imax,1]];

ifset_i=[] then set_j:=[];

ifset_j=[] then set_i:=[]

end

else

begin

d[SubCol[jmax,1],jmax]:=min(a[SubCol[jmax,1]],b[jmax]);

a[SubCol[jmax,1]]:=a[SubCol[jmax,1]]-d[SubCol[jmax,1],jmax];

b[jmax]:=b[jmax]-d[SubCol[jmax,1],jmax];


ifa[SubCol[jmax,1]]=0 then Exclude(set_i,SubCol[jmax,1]);

ifb[jmax]=0 then

Exclude(set_j,SubCol[jmax,1]);

z:=z+d[SubCol[jmax,1],jmax]*c[SubCol[jmax,1],jmax];

ifset_i=[] then set_j:=[];

ifset_j=[] then set_i:=[]

end

Лист

Кп-км-п-44-2203-99

until (set_i=[]) and (set_j =[]);

ShowSolve

end;


procedureTwoWall;

var

RowMin,ColMin:integer;

i,j,jj,j0:integer;

imin,jmin:integer;

set_i,set_j:setof 0..255;


begin


set_i:=[];

fori:=0 to m-1 do include(set_i,i);


set_j:=[];

forj:=0 to n-1 do include(set_j,j);


repeat

//начинаем циклпо столбцам

forj:= 0 to n-1 do

ifj in set_j then

begin

//находим начальныйминимальныйэлемент строки

fori:= 0 to m-1 do

ifi in set_i then

begin

RowMin:=c[i,j];

break

end;

//теперь просматриваемвесь столбец

fori:=0 to m-1 do

ifi in set_i then

ifc[i,j]

begin

RowMin:=c[i,j];

imin:=i

end;

//минимальныйэлемент в j-омстолбце найден

//проверяем ,минимальныйли он в своейстроке

j0:=j;

forjj:= 0 to n-1 do

ifjj in set_j then

ifc[imin,jj]

j0:=jj;

//проверяем поиндексу не тотли это элемент

ifj=j0 then

begin

d[imin,j]:=min(a[imin],b[j]);

a[imin]:=a[imin]-d[imin,j];

b[j]:=b[j]-d[imin,j];


ifa[imin]=0 then exclude(set_i,imin);

ifb[j]=0 then exclude(set_j,j);


z:=z+d[imin,j]*c[imin,j];

end

end

until(set_i=[]) and (set_j=[]);

ShowSolve

e

Лист

Кп-км-п-44-2203-99

nd;


procedureTfmTransTask.FormCreate(Sender: TObject);

var

i,j:integer;

begin


m:=3;

n:=3;


SetLength(a,m);

fori:= 0 to m-1 do a[i]:=0;


SetLength(b,n);

forj:= 0 to n-1 do b[j]:=0;


SetLength(c,m);

fori:= 0 to m-1 do SetLength(c[i],n);


fori:= 0 to m-1 do

forj:= 0 to n-1 do

c[i,j]:=0;


SetLength(d,m);

fori:= 0 to m-1 do SetLength(d[i],n);


fori:= 0 to m-1 do

forj:= 0 to n-1 do

d[i,j]:=0;


fori:= 1 to m do

begin

stgProvider.Cells[i-1,0]:=IntToStr(i);

str(a[i-1],s);

stgProvider.Cells[i-1,1]:=s;

end;


forj:= 1 to n do

begin

stgCustomer.Cells[j-1,0]:=IntToStr(j);

str(b[j-1],s);

stgCustomer.Cells[j-1,1]:=s;

end;


fori:= 1 to m do

stgTarif.Cells[0,i]:=IntToStr(i);


forj:= 1 to n do

stgTarif.Cells[j,0]:=IntToStr(j);


fori:= 1 to m do

stgSolve.Cells[0,i]:=IntToStr(i);


forj:= 1 to n do

stgSolve.Cells[j,0]:=IntToStr(j);


end;


procedureTfmTransTask.edProviderCountChange(Sender: TObject);

var

i:integer;

b

Лист

Кп-км-п-44-2203-99

egin

stgProvider.ColCount:=StrToInt(edProviderCount.Text);

stgTarif.RowCount:=stgProvider.ColCount+1;

stgSolve.RowCount:=stgTarif.RowCount;

m:=StrToInt(edProviderCount.Text);

SetLength(a,m);


SetLength(c,m);

fori:= 0 to m-1 do SetLength(c[i],n);


SetLength(d,m);

fori:= 0 to m-1 do SetLength(d[i],n);


stgProvider.Cells[stgProvider.ColCount-1,0]:=edProviderCount.Text;

stgTarif.Cells[0,stgProvider.ColCount]:=edProviderCount.Text;

stgSolve.Cells[0,stgProvider.Colcount]:=edProviderCount.Text;

end;


procedureTfmTransTask.edCustomerCountChange(Sender: TObject);

var

i:integer;

begin

stgCustomer.ColCount:=StrToInt(edCustomerCount.Text);

stgTarif.ColCount:=stgCustomer.ColCount+1;

stgSolve.ColCount:=stgTarif.ColCount;

n:=StrToInt(edCustomerCount.Text);

SetLength(b,n);


SetLength(c,m);

fori:= 0 to m-1 do SetLength(c[i],n);


SetLength(d,m);

fori:= 0 to m-1 do SetLength(d[i],n);


stgCustomer.Cells[stgCustomer.ColCount-1,0]:=edCustomerCount.Text;

stgTarif.Cells[stgCustomer.ColCount,0]:=edCustomerCount.Text;

stgSolve.Cells[stgCustomer.Colcount,0]:=edCustomerCount.Text;

end;


procedureTfmTransTask.btnLoadDataClick(Sender: TObject);

var

i,j:integer;

suma,sumb:integer;

begin

fori:= 0 to m-1 do

ifstgProvider.Cells[i,1]'' then

a[i]:=StrToInt(stgProvider.Cells[i,1])

else

a[i]:=0;

suma:=0;

fori:= 0 to m-1 do suma:=suma+a[i];

lblProvider.Caption:=IntToStr(suma);

forj:= 0 to n-1 do

ifstgCustomer.Cells[j,1]'' then

b[j]:=StrToInt(stgCustomer.Cells[j,1])

else

b[j]:=0;

sumb:=0;

forj:= 0 to n-1 do sumb:=sumb+b[j];

lblCustomer.Caption:=IntToStr(sumb);

ifsumbsuma then

Лист

Кп-км-п-44-2203-99

begin

lblTypeTask.Caption:='Открытая';

Ifsumb>suma then

lblMsg.Caption:='Создатьфиктивногопоставщикас грузом '+IntToStr(sumb

-suma);

ifsumb

lblMsg.Caption:='Создатьфиктивногопотребителясо спросом '+

IntToStr(suma-sumb)

end

else

begin

lblTypeTask.Caption:='Закрытая';

lblMsg.Caption:=''

end;

btnSolve.Enabled:=True

end;


procedureTfmTransTask.btnLoadDataCClick(Sender: TObject);

var

i,j:integer;

begin

fori:= 0 to m-1 do

forj:= 0 to n-1 do

ifstgTarif.Cells[j+1,i+1]'' then

c[i,j]:=StrToInt(stgTarif.Cells[j+1,i+1]);

end;


procedureTfmTransTask.btnSolveClick(Sender: TObject);

begin

if rbMinelem.Checked then Minelem;

if rbFogel.Checked then Fogel;

if rbTwoWall.Checked then TwoWall

end;


procedureTfmTransTask.btnPrintClick(Sender: TObject);

var

i,j:integer;

out:TextFile;

begin

AssignFile(out,'rezult.txt');

Rewrite(out);


writeln(out,'Исходныеданные транспортнойзадачи');


writeln(out,'потребностьпотребителей');

forj:= 0 to n-1 do write(out,b[j]:8);


writeln(out);


writeln(out,'Матрицатарифов перевозок');


fori:= 0 to m-1 do

begin

write(out,a[i]:8);

forj:= 0 to n-1 do write(out,c[i,j]:8);

writeln(out)

end;

writeln(out,'Матрицаперевозок(решение)');


fori:= 0 to m-1 do

begin

Лист

Кп-км-п-44-2203-99

for j:= 0 to n-1 dowrite(out,d[i,j]:8);

Лист

Кп-км-п-44-2203-99

writeln(out)

end;

CloseFile(out);

end;


End.



7.8 Инструкция


Аппаратныеи программныетребования


Для нормальнойработы программынеобходимперсональныйкомпьютерсовместимыйс IBM PC ,с процессоромне ниже

486, тактовойчастотой 120 Мгц,оперативнойпамятью неменее 8 МБ, занимаемоеместо на дискепосле инсталляции5 МБ.

Операционнаясистема Windows95,98,NT.


Инсталляцияи запуск программы.


В

Лист

Кп-км-п-44-2203-99


ключитекомпьютер,после загрузкиWindows вставьтедискету в дисководна которойнаходитьсядистрибутивпрограммы.После чегозапустите файлsetup.exeдля инсталляции программы наваш компьютер.После установкипрограммывыберите в менюпуск папкуTranstask изапуститепрограмму.После запускапрограммы наэкране появитьсязаставка "Опрограмме", выберите вкладкуисходные данныеи начинайтеработу.

4
.3Критериикачества модели


Косновным критериямкачества любоймодели относятсятакие как:

  • критерийадекватности;

  • чувствительности;

  • устойчивостимодели.


Критерийадекватности


Подадекватностьюмодели понимаетсяее способностьнаиболее точноотражать всесвойства ихарактеристикимоделируемойсреды. В качествекритериевадекватностиможно выбрать, например, величинуотличия (абсолютныхи относительных)входных и выходныххарактеристикмодели и реальногообъекта, сравнительнаяоценка реакциимодели и объектаи т.д.


Критерийчувствительности


Подкритериемчувствительностипонимают степеньвоздействияизмененияпараметровмодели на результатывыдаваемыемоделью. Изменениепараметровможно моделироватьменяя коэффициентыв системе уравнений, описывающихмодель, характеризменениявходных данныхи т.д.


Критерийустойчивости


Критерийустойчивости– это количественнаяили качественнаяоценка, котораяхарактеризуетисследуемуюмодель какустойчивуюили неустойчивую.

П

Лист

Кп-км-п-44-2203-99


одустойчивостьюсистемы илимодели понимаютспособностьмодели , находящейсяв состоянииравновесия, возвращатьсяв исходноесостояние послетого как на неебыло оказановходное воздействиена ее входныеданные и основныепараметры. Вматематическойформулировкеэто звучит какустойчивостьрешения системууравненийописывающихмодель приизмененийаргументов.Разработанаматематическаятеория, позволяющаяна основекоэффициентовуравнении датьоценку предполагаемомурешению уравненияи оценит егокак устойчивоеили неустойчивое.



Лист

Кп-км-п-44-2203-99



6

.Тестированиеи отладка


6.1 Синтаксическаяотладка


Синтаксическаяотладка предназначенадля устраненияошибок в языковыхконструкцияхна этапе написанияисходноготекста программы.Большинствоинтегрированныхпакетов разработкипрограммногообеспечениясодержат встроенныесредства проверкипрямо в ходенаписания кодапрограммы.Средства проверкине только находятсинтаксическиеошибки, но такжеделают подсказкиили дают рекомендациидля написанияданной конструкции.Второй этап, на которомвыявляютсясинтаксическиеошибки – этокомпиляция,когда компиляторстрока за строкойанализируетисходный коди выдает листингсинтаксическихошибок.


Семантическаяотладка осуществляетсядля проверкисемантикиязыковых конструкциии являетсяодним из этаповсинтаксическойотладки.


Тестовыеотчеты и анализтестирования


Присдаче программногообеспеченияв эксплуатациюнеобходимапровести еготестовый прогонв области допустимыхзначении входныхпараметров.Для этого , восновном проводятручной обсчетодного илинесколькихвариантоврешения задачии затем сверяютвоспроизводимость результатовмоделью. Адекватностьюмодели служитполная воспроизводимость тестовыхданных.


Лист

Кп-км-п-44-2203-99



6

.2Семантическаяотладка


Семантическаяотладка - этопроцесс нахожденияи исправленияошибок связанныхс неправильнымуказаниемлогическихстраниц данных.

Семантическаяотладка подразумеваетв себя проверкупоэтапногохода выполненияпрограммы. Этоможно выявитьпри тестированиепрограммыправильно лимы задали тип False или True.

В Delpfiпри выполненииопераций влогическихвыраженияхподдерживаетсядве различныемодели:

  • вычислениепо полной схеме

  • вычислениепо короткойсхеме.


При полнойсхеме всегдавычисляютсявсе операндыи выполняютсявсе операциивыражения, дажеесли его результатбудет известенуже после первойоперации.

При использованиикороткой схемывычислениеоперандов ирезультатовопераций выполняетсястрого с левана право ипрекращается,как тольковыполнениедальнейшихдействий перестанетоказыватьвлияние наконечный результатвсего выражения.

6.4 Оптимизацияпрограммы


Входе отладкипрограммногопакета возникаетвопрос о такихпоказателяхкак скорость(быстродействие)работы программы,объем занимаемогоместа на диске,необходимыйобъем оперативнойпамяти

Лист

Кп-км-п-44-2203-99




О

писаниеблок-схемыпрограммыTranstask.pas


п/п

Содержание

1

Начало

2

Вызовглавной формы

3

Выборметода решения

4

Методминимальногоэлемента

5

Вызываетсяпроцедураmetod1

6

МетодФогеля

7

Вызываетсяпроцедураmetod2

8

Методдвойногопредпочтения

9

Вызываетсяпроцедураmetod3

10

Вводразмерноститаблицы перевозокm,n

11

Отображениепустой таблицыперевозокm*n

12

Вводтаблицы данных:ВекторА, Вектор В,Матрица С

13

Проверяетсяоткрытая задача

14

Да.Введениефиктивногопоставщикаили потребителя.

15

Нет.Решение транспортнойзадачи.

16

Отображениерезультатоврешения

17

Конец


ОписаниеБлок-схемы менюопределениеопорного плана.

п.п

Содержание

1

Начало

2

Методминимальногоэлемента

3

Вызываетсяпрограммаminiem

4

МетодФогеля

5

ВызываетсяпрограммаFogel

6

Методдвойногопредпочтения

7

ВызываетсяпрограммаDoublePref

8

Конец


Лист

Кп-км-п-44-2203-99



О

писаниеблок-схемыОпределениеопорного планатранспортнойзадачи методомминимальногоэлемента.

п.п

Содержание

1

Начало

2

Выборминимальноготарифа

3

Определяемimin,j min.

4

Amin = Min(a i min, b j min)

5

Корректируемэлементы исходногомассива

6

Ai min =0

7

Исключаемстроку imin

8

Bj min = 0

9

Исключаемстолбец jmin

10

Заносимв матрицуперевозокзначение Amin

11

Проверяем(ai j and b i j) = 0

12

Вычислениецелевой функцииZ

13

Конец

Лист

Кп-км-п-44-2203-99




Рецензияна курсовойпроект

Студентагруппы П-44


ГолубовскогоДениса Николаевича


Тема:Нахождениеопорного планатранспортнойзадачи


Председательруководитель

курсовогопроекта ТлисоваЛ.Б


5

Лист

Кп-км-п-44-2203-99


.1 Тестированиепрограмм

Тестированиеалгоритмови программ --одна из наиболеесложных иответственныхзадач в процессеих отладки.Времени длятестированиямало, но и спешкав работе недопустима,слишком дорогообходятсянеудачныепопытки предъявитьрешение задачи.Проверка корректностиалгоритмов,равно как исоставлениеавторами задачидостаточнополного наборакорректныхтестов -- наборовданных для задачи и ответовк ним -- далеконе всегдапредставляютсобой простуюпроблему.

Взадачах наэтапе тестированияпрограмм естьмного общего-- и те и другиедолжны обеспечитькорректностьалгоритмов.Но есть и различия.Автор задачине ограниченво времени, нодолжен предусмотретьвсе возможныеогрехи участника.Спецификаположениятестирующего,связана с коварствомсоставителятестов, от которогоможно ожидать,например,непредвиденнойглубины рекурсии,разрядности,точности вычисленийили размерностинаборов данных.Поэтому будетнеправильно,успешно решивзадачу длянарисованногона листочкебумаги примера.

Будьтевнимательны!Всегда естьопасностьполучить посуществу правильный,но не тот ответ.Кроме того,способ описанияответа можетпослужитьнамеком наиспользуемыйавтором алгоритмрешения задачи.

Проверкаалгоритма наданных максимальнойустановленнойразмерности:по количествуперечисленныхв условияхзадачи объектов,по количествусвязей междуними, по разрядностии точностимашинногопредставлениячисловых параметрови пр. Такая проверканужна для выявленияи отсева неэффективных- медленно работающихили нерациональноиспользующихпамять программ.Известны случаи,когда, в принципе,правильноработающийалгоритм приводилк ошибочномуответу из-заошибок переполнения-- в условияхзадачи оговариваетсядиапазон илиразрядностьисходных данных,но не разрядностьпромежуточныхрезультатовили ответа.Типичным примеромгрубой ошибкитакого родаможет служитьнахождениеопорного планатранспортнойзадачи. Проверкаработоспособностиалгоритма ввырожденныхслучаях: срабатываниепустого илисостоящегоиз единственногоэлемента цепногосписка, работапрограммы сграфом, не содержащимдуг и т.п. В некоторыхслучаях, например,при декомпозициизадачи, когдарешение задачисводится крешению задачименьшей размерностипереход отначальногоi=0 уменьшениемна единицуможет привестик непредусмотренномуэффекту выходаза границызарезервированнойпамяти. Результатработы на нижнейгранице размерностилегко просчитывается,иногда он будетполучен каки в общем случае,иногда удобнейвручную просчитатьего и предусмотретьособую веткупрограммы, ноникогда о немне следуетзабывать.

Следуетиметь ввиду,что построениеавторами заданийтестов, особенно,значительнойразмерностипредставляетсобой непростуюзадачу. Возможнонесколькоподходов кпостроениютестов.

  1. С

    оставлениетестов вручную.Это возможно,когда решениезадачи непредставляетсобой вычислительнойсложности (всясложность --логическая).Задача "Путьна кубе" раздела"Геометрия"-- пример именнотакой задачи.Во всех остальныхслучаях подобныйпуть тупиковый.У участниковолимпиадыиногда выборанет, но не забывайтепроверитьслучаи вырожденнойи максимальнойразмерностихотя бы в тривиальномварианте (матрицаиз нулей и единицне содержитнулей или единиц,в ней единственнаястрока илиединственныйстолбец, в графенет дуг, илиграф полный).
  2. П

    рименениеслучайныхчисел. Такиегенераторытестов удобноконструироватьдля числовыхпоследовательностей,матриц илиграфов. Достаточнозадать один-- два параметранастройкидатчика случайныхчисел и в вашемраспоряжениизамечательныетесты. Припостроенииматрицы из 0-1таким параметромбудет доляединиц средиэлементовматрицы, координатыочереднойединицы определяютсяв результатеиспытания сравномернымраспределениемсреди элементовэтой матрицы,при построенииграфа -- среднеечисло дуг, выходящихиз вершины.

Лист

Кп-км-п-44-2203-99




Колледжинформационныхтехнологийи экономикиКБГУ


К
УРСОВОЙ ПРОЕКТ


По дисциплинеКомпьютерноемоделирование

Наименованиеучебного предмета


На тему:Нахождениеопорного планатранспортнойзадачи


СтудентаГолубовскогоДениса Николаевича


Группа П-44


Специальность2203 “ПрограммноеобеспечениеВТ и АС”


Председательруководитель

курсовогопроектирования

ТлисоваЛ.Б


Оценка_________ Подпись_________________


Дата___________


1

.2Описание целеймоделированияих приоритеты.


Цель - Этообраз несуществующего,но желаемогос точки зрениярассматриваемойпроблемы состояниясреды.

Система- Средство достиженияцели, т,е всёто, что нужнодля достиженияцели.

Модель служитдля исследования.

Требованияк модели:

  1. наглядность

  2. обозримость

  3. доступностьдля исследования

  4. простотаисследования

Моделированиеявляетсяэкспериментальнойи прикладнойметодологиейимеющая целью:

  • описаниеповедениясистемы

  • по строительныетеории и гипотезыкоторые могутобъяснитьнаблюдаемоеповедение.

  • Использоватьэти теории дляпредсказаниябудущего поведениясистемы, т.етех воздействийкоторые могутбыть вызваныизменениемв системе илиизменениеспособов еёфункционирования.


Данные скоторыми приходитьсяиметь дело ,часто представляютсяв виде таблицы.Это может бытьсвязано либос тем, что объём таблиц ограничени в них можнопривести лишьнекоторыеданные.


Цель интерполяциисостоит в отысканиизначения функциив некоторойпромежуточнойточке по отношениюк табличнымданным.

лист

Кп-км-п-44-2203-99


2

лист

Кп-км-п-44-2203-99

.2 Анализ техническогообеспечениясреды моделирования.

ЭВМ широкоприменяетсядля решениянаучных, техническихи экономическихзадач. Они способныпроизводитьвычисленияочень быстро,выводить оченьточные результаты,заполнятьбольшие массивыинформациии производитьдлинные и сложныепоследовательныевычислениябез вмешательствачеловека.

Современныйкомпьютер имеетследующиеосновные компоненты:

  1. центральныйпроцессор ,который выполняетарифметическиеи логическиеоперации иорганизуетпроцесс выполненияпрограмм.

  2. Память служащаядля храненияинформации

  3. В

    нешниеустройствадля управлениякомпьютерови ввода - выводаинформации.