Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
alg_wpor.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
391.77 Кб
Скачать

9. Симплекс әдісімен шешілетін есепке сипаттама беріңіз. Алгоритмді қолданып жалпылама мысал келтіріңіз.

Сызықтық бағдарлама есебінің оңтайлы шешімдері көпбұрыштың бұрыштық нүетелерімен байланысты. Егер айнымалалар саны n=50,теңсіздіктер саны m=25 болса, онда базистік жоспарлар саны 1014 болады. Сонда м және н үлкен сан болса, онда барлық негізге алынатын жоспарларды іріктей отырып, оңтайлыны табу өте көп есептеуді қажет етеді. Сондықтан бір негізге алынатын жоспардан екіншіге ауысуға мүмкіндік беретін әдіс болуға тиіс. Осындай әдіс симплекс әдісі деп аталады. Есептеулердің әрқайсысында осы функцияның өткен жоспардағы мәнімен салыстырғанда мақсатты функциядан кем немесе артық мәніне сәйкес келетін жаңа жоспар табылды. Есептеулерді оңтайлы жоспар алынғанға дейін жалғасады. Егер мәселенің оңтайлы шешімі болмаса, онда симплексті әдіс оны есептеу кезеңінде анықтауға мүмкіндік береді.

Алғашқы жоспар құру. Сызықтық бағдарлама есебі қойылған болсын. Төмендегі функцияның барынша аз мәнін табу қажет.

F=C1X1+ C2X2+… +CnXn (5.1)

м ына шектеулерде

а11х1+ а21х2+... +а1nхn=В1

а21х1+ а22х2+... +а2nхn=В2

.......................................... (5.2)

аm1х1+ аm2х2+... +аmnхnm

мұнда,

хj>=0, (i=1,2,…,m). (5.3)

Шектеу жүйесінің m бірлік векторлары болсын деп ұйғарсақ, онда ол алғашқы m векторлар болады. Осыдан (5.1) – (5.3) есепті алғашқы m векторларға сәйкес түрлендіріп жазамыз:

F=C1X1+ C2X2+… +CnXn , (5.4)

мына шектеулерде

X 1+a11,m+1Xm+1+a11,m+2Xm+2+…+a11.nxn=B11

X2+a2,m+1Xm+1+a2,m+2Xm+2+…+a12.nxn=B12 (5.5)

……………………………………………………………………

Xm+a1m,m+1Xm+1+a1m,m+2Xm+2+…+a1m.nxn=B1m

хj>=0, j=1,2,…,n. (5.6)

Жүйені (5,5) векторлық формада жазамыз:

x1A1+x2A2+…+xmAm+xm+1Am+1+xnAn=B (5.7)

А1, А2,...,Аm векторлар – m өлшемді кеңістіктің сызықтық тәуелсіз бірлік векторлары. Сондықтан (5.7) өрнекте базистік айнымалылар ретінде x1,x2,…,xm. Ал еркін айнымалылар ретінде xm+1,xm+2,…,xn таңдаймыз, оларды нөлге теңестіріп, базистік айнымалыларды анықтаймыз. Мұнда ві>=0 (і=1,2,... m), ал А1, А2,..., Аm бірлік векторлар екенін ескерсек, онда алғашқы жоспарды аламыз:

Хо=(х11; х22; ... хmm; хm+1=0; ... хn=0) (5.8)

Жоғарыдағы (5.7)-ден (5.8) жоспарды ескерсек, төмендегі жіктеу шығады:

x1А12А2+... + хmm = В, (5.9)

мұнда А1, А2, ...А m векторлар сызықтық тәуелсіз, демек, құрылған жоспар базис болып табылады.

Сөйтіп, мәселені симплекс әдіспен шешу мына сызба бойынша жүргізіледі:

1) базистік шешім құрылады; 2)осы базистік шешім оңтайлылық шартына тексеріледі; 3)егер шарт орындалмаса, онда келесі базистік шешім құрылады да екінші тармаққа көшеді; 4)оңтайлылық талабы орындалғанға дейін есептеулер кайталанады.

10. Іздеудің тернер ағашы алгоритмімен шешілетін есепке сипаттама беріңіз. Аталған құрылымды қолданып жалпылама мысал келтіріңіз.

Үштік іздену(тернарлы іздеу)-бұл информатика үшін функцияның максимум және минимумын іздетін әдіс. Мұнда басында тез өседі сон соң тез кемиді НЕМЕСЕ керісінше.

Үштік әдіс --бірінші әлде соңғы үшінші аумағында жата алмайтын

және кейін қалған екі үштікті іздеуді қайталайтын максимум немесе минимумды анықтайды.

Функция

f(x) функциясынан максимумды іздестірейік,

A және B аралығында максимум жатқаны белгілі болсын. Алгоритмді қолдану үшін x мәні болсын,онда баріне  a,b, біреулер үшін A ≤ a < b ≤ x, орындалсын  f(a) < f(b), және барине  a,b,біреулері үшін  x ≤ a < b ≤ B, орындалсын f(a) > f(b).

Алгоритм

double l = ..., r = ..., EPS = ...; // кіретін деректер

while (r - l > EPS) {

double m1 = l + (r - l) / 3,

m2 = r - (r - l) / 3;

if (f (m1) < f (m2))

l = m1;

else

r = m2;

}

Үштік іздеу. үштік компьютерлерде үштік іздеу алгоритмі жүзеге асырылуы мумкін, ауданды бөліктеп іздеуді қолданатын (мысалы деректер қоры) үш бөлікке. Сондай ақ іздеудің үштік ағашы өзіне әртүрлі бірнеше деректер құрылымдарын тіркестіреді.

Теңдеудің түбірлерін үштік іздеу алгоритмі ( Троичный поиск корней уравнения)

Теңдеудің түбірлерін табудың ауданды екіге бөлу алгоритміне қарағанда үшке бөлу алгоритмі тезірек болады .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]