Kaedah simplex. Idea utama, peringkat mencari penyelesaian, algoritma kaedah. Kaedah simplex untuk menyelesaikan LLP. Idea umum kaedah simplex

Mari kita pertimbangkan kaedah sejagat penyelesaian kepada masalah kanonik pengaturcaraan linear

Dengan n pembolehubah dan m kekangan kesaksamaan, yang dikenali sebagai kaedah simplex.

Set rancangan untuk masalah kanonik ialah set polihedral cembung dengan bilangan titik sudut terhingga. Dan jika masalah ini mempunyai penyelesaian yang optimum, maka ia dicapai sekurang-kurangnya pada satu titik sudut.

Mana-mana titik sudut dikaitkan dengan pelan asas masalah, di mana pembolehubah adalah sama dengan sifar, dan pembolehubah selebihnya sepadan dengan lajur bebas linear bagi matriks keadaan. Lajur bebas linear ini membentuk matriks asas bukan tunggal.

Mengulangi semua titik sudut adalah mahal dari segi pengiraan dan oleh itu tidak berkesan. Pada tahun 1947, J. Danzig mencadangkan prosedur yang teratur untuk menghitung titik sudut, di mana ia cukup untuk memeriksa hanya sebahagian kecil daripada mereka untuk mencari penyelesaian yang optimum. Prosedur ini dipanggil kaedah simplex.

J. Danzig mencadangkan untuk menggantikan hanya satu vektor dalam matriks asas apabila bergerak dari satu titik ekstrem ke titik yang lain. Ini bermakna semasa peralihan sedemikian kita mesti mengecualikan salah satu pembolehubah asas - menjadikannya bukan asas ( sama dengan sifar), dan sebagai gantinya memperkenalkan pembolehubah baru dari kalangan bukan asas (sifar) - jadikan ia asas (positif).

Ternyata secara geometri penggantian sedemikian membawa kepada peralihan dari satu titik sudut ke yang bersebelahan (jiran) yang dikaitkan dengan titik sebelumnya kelebihan biasa.

Daripada semua titik jiran, satu yang paling banyak meningkatkan fungsi objektif dipilih. Memandangkan bilangan titik sudut adalah terhingga, melalui bilangan peralihan terhingga puncak dengan nilai tertinggi fungsi objektif, atau ketidakterbatasan fungsi objektif akan diwujudkan pada set pelan tanpa had.

Skim umum kaedah simplex terdiri daripada langkah-langkah utama berikut.

· langkah 0. Penentuan asas awal dan titik sudut awal yang sepadan (garis dasar).

· langkah 1. Menyemak garis dasar semasa untuk optimum . Jika kriteria optimum dipenuhi, Itu rancangan adalah optimum dan penyelesaiannya lengkap. Jika tidak pergi ke langkah 2.

· langkah 2. Mencari pembolehubah yang diperkenalkan ke dalam yang asas. (Dari keadaan meningkatkan fungsi objektif).

· langkah 3. Mencari pembolehubah yang dikecualikan daripada pembolehubah asas (Daripada syarat memelihara kekangan masalah).

· langkah 4 . Mencari koordinat garis dasar baharu (titik sudut bersebelahan). Pergi ke langkah 1.

Langkah 1-4 yang diulang membentuk satu lelaran kaedah simpleks.

Daripada rajah ini, ia mengikuti bahawa, pertama, untuk memulakan kaedah simpleks, anda perlu mempunyai beberapa jenis titik sudut - pelan asas awal, dan kedua, anda perlu dapat memeriksa titik sudut semasa untuk optimum tanpa mengira semua yang bersebelahan. bucu. Masalah-masalah ini mudah diselesaikan jika masalah LP kanonik mempunyai beberapa bentuk khas.

Definisi. Kami akan mengatakan bahawa masalah LP kanonik mempunyai "bentuk pilihan" jika

1. sisi kanan persamaan, .

2. matriks keadaan mengandungi submatriks unit saiz

Dalam erti kata lain, dalam mana-mana persamaan terdapat pembolehubah dengan pekali sama dengan satu, yang tiada dalam persamaan lain. Syarat pertama tidak membebankan, kerana dalam kes sebelah kanan negatif beberapa persamaan, sudah cukup untuk mendarabkannya dengan (-1). Dalam masalah jenis keutamaan, mencari garis dasar awal adalah sangat mudah.

Contoh 2.1.

Matriks Keadaan A dan vektor bahagian kanan kekangan b seperti

dan vektor sasaran c = (1, -3, 0, 4, 2).

Satu matriks asas segera jelas: dengan vektor unit keadaan.

Oleh itu, memilih sebagai pembolehubah asas x 1 , x 3 ,x 5 , dan memasukkan sistem persamaan x 2 = x 4 = 0 (pembolehubah bukan asas) , kami dapati dengan segera x 1 = 10,x 3 = 20,x 5 = 8, jadi garis dasar awal x 0 = (10, 0, 20, 0, 8). Kami melihat bahawa nilai pembolehubah asas adalah sama dengan sebelah kanan kekangan. Dari sini jelas bahawa bahagian kanan mesti positif b i .

Pada masa hadapan, kami akan menggabungkan pembolehubah asas menjadi vektor x B.

Oleh itu, dalam masalah kanonik daripada bentuk pilihan, submatriks identiti diambil sebagai matriks asas awal A B = E, dan pembolehubah asas yang sepadan adalah sama dengan bahagian kanan kekangan:

x B = b.

Untuk pelan asas jenis ini, kriteria optimum boleh dirumuskan yang cukup mudah untuk diuji. Mari perkenalkan kuantiti

? j = < с B , A j > - c j , j = 1,...,n,(2.1)

di mana Dengan B- vektor pekali fungsi objektif untuk pembolehubah asas x B , A j -j- ke lajur matriks keadaan, c j -j- pekali fungsi objektif. Perbezaan ? j dipanggil perbezaan simpleks atau anggaran simpleks.

Kriteria optimum untuk pelan asas. Jika untuk pelan asas dengan unit matriks asas semua anggaran simpleks adalah bukan negatif, maka pelan ini adalah optimum.

Marilah kita gunakan kriteria ini untuk menyemak keoptimuman pelan asas x 0 = (10, 0, 20, 0, 8) daripada contoh 2.1.

Oleh kerana dalam hal ini vektor pembolehubah asas x B =(x 1 , x 3 ,x 5 ), Itu Dengan B = (c 1 , c 3 ,c 5 ) = (1, 0, 2).


Oleh itu,

? 1 = < с B , A 1 > - c 1 = 1 1 + 0 0 + 2 0 - 1= 0,

2 = < сБ, A2 >- c2 = 1 3 + 0 1 + 2 2 - (-3) = 10,

? 3 = < с B , A 3 > - c 3 = 1 0 + 0 1 + 2 0 - 0= 0,

? 4 = < с B , A 4 > - c 4 = 1 (-1) + 0 5 + 2 1 - 4= -3,

? 5 = < с B , A 5 > - c 5 = 1 0 + 0 0 + 2 1 - 2= 0.

Sejak penilaian ? 4 < 0, то базисный план x 0 tidak optimum. Ambil perhatian bahawa anggaran ringkas yang sepadan dengan pembolehubah asas sentiasa sama dengan sifar, jadi memadai untuk menyemak anggaran bukan asas sahaja.

Kaedah simpleks terdiri daripada mencari dan menguji bucu (sudut) yang merupakan penyelesaian kepada masalah LP. Pada setiap peringkat, kaedah memilih puncak dan pembolehubah sepadannya, yang memastikan pergerakan ke minimum (maksimum) dengan kelajuan tertinggi. Pembolehubah yang dipilih menggantikan satu lagi, yang paling terhad. Kaedah simpleks juga membolehkan anda menentukan sama ada penyelesaian wujud. Algoritma yang melaksanakan kaedah simpleks boleh ditulis sebagai:

Langkah 1. Puncak tertentu dalam ODR ditentukan, sepadan dengan penyelesaian asas yang boleh diterima (pembolehubah) yang ditemui dengan mengekstrak daripada matriks T- linear lajur bebas dan menetapkan semua pembolehubah lain yang sepadan dengan lajur lain matriks kepada sifar.

Langkah 2. Dipilih daripada semua kemungkinan yang tinggal p - t tepi sepadan dengan pembolehubah bukan asas, tepi (pembolehubah) yang, apabila bergerak di sepanjangnya, membawa kepada penurunan terpantas dalam fungsi objektif.

Langkah 3. Seolah-olah pergerakan dilakukan dari bucu awal di sepanjang tepi yang dipilih ke bucu lain, yang memberikan penyelesaian baru yang mempunyai nilai CF yang lebih rendah. Satu bucu baru dibentuk dengan menggantikan pembolehubah asas (tepi) dengan pembolehubah asas baharu (tepi).

Lajur dan elemen vektor biasanya disusun dan ditulis dalam bentuk jadual simpleks, yang pembentukannya akan ditunjukkan di bawah.

Kaedah simpleks menyelesaikan masalah LP dalam bentuk piawai.

Minimumkan (maksimumkan) fungsi di bawah syarat x > 0; Ax = b.

Matriks A adalah nyata dan mempunyai dimensi T x" dan pangkat T.

Masalah LP yang dirumuskan juga boleh ditulis dalam bentuk

Berdasarkan rakaman masalah LP dalam bentuk (8Л), kita boleh mengatakan bahawa matriks lanjutan

dimensi (t + 1) (n + 2) sepadan dengan penyelesaian[x/] t.

Mari kita wakili matriks A sebagai satu set lajur

Memandangkan matriks A mempunyai pangkat T, maka akan ada T lajur bebas linear bagi matriks A, contohnya (a V1 ,...,a V/i Pertimbangkan vektor x° > 0, supaya kesemuanya p - t unsur ialah 0 dan Ax° = b. Biarkan ini menjadi unsur dengan nombor..., dalam m . Mari kita anggap juga bahawa lokasi aw lajur bebas linear bagi matriks A sepadan dengan lokasi unsur bukan sifar dalam vektor 0. Secara geometri, menurut Pernyataan 3 § 7.6, ini bermakna x° ialah bucu (sudut) ODR dan, sebagai tambahan, memenuhi syarat yang diberikan. Penyelesaian ini dipanggil penyelesaian asas yang boleh diterima. Sudut bagi set yang boleh diterima ialah penyelesaian asas yang boleh diterima.

Ingat bahawa set penyelesaian asas mengandungi semua maklumat yang diperlukan untuk penyelesaian optimum masalah LP. Untuk kes dua dimensi yang dipertimbangkan dalam § 7.6, penyelesaian asas adalah kesemua 6 mata, dan penyelesaian asas yang boleh diterima ialah titik L, V, Si 0.

Oleh itu, sebarang vektor x serupa dengan x° boleh ditulis sebagai

di mana x masuk- vektor yang unsur-unsurnya sepadan dengan lajur bebas linear bagi matriks A; xF - vektor dengan unsur sifar.

Mari kita sama-sama mentakrifkan vektor

Pembolehubah yang merupakan unsur vektor x masuk, dipanggil pembolehubah asas dan pembolehubah yang merupakan unsur vektor x F dipanggil percuma (bukan asas) pembolehubah.

Kerana x°F=0, maka nilai fungsi objektif bagi vektor awal x° akan sama dengan

di mana /° ialah nilai / pada titik x°.

Penyelesaian (8.1) dalam bentuk [x°/°]t untuk x > 0 dipanggil penyelesaian yang jelas (eksplisit). Oleh itu, jika kita menetapkan pembolehubah bukan asas sama dengan sifar, kita mendapat penyelesaian yang jelas.

Untuk kemudahan, mari kita susun semula T lajur tak bersandar linear bagi matriks A dalam sebelah kiri dan tulis matriks dalam borang

Di sini matriks B sepadan T lajur bebas linear mempunyai dimensi tx t dan pangkat T, dan matriks F

ialah ke (p - t) matriks. Memandangkan matriks B terdiri daripada lajur bebas linear, ia mempunyai songsang B -1 dan detB φ 0. Ambil perhatian bahawa untuk membentuk matriks B anda boleh memilih mana-mana T lajur tak bersandar linear bagi matriks A.

Mari kita nyatakan masalah (8.1) dengan mengambil kira tatatanda yang diperkenalkan

Perwakilan ini sepadan dengan matriks lanjutan. Mari kita andaikan bahawa

dari mana berikut

Jika vektor x V akan menjadi penyelesaian kepada sistem Bx d = b, maka ia akan menjadi penyelesaian asas. Sekiranya ketidaksamaan berlaku V= B -1 b > O, maka x masuk akan menjadi penyelesaian yang boleh diterima.

Oleh itu, penyelesaian semasa memenuhi persamaan berikut:

Mari kita pertimbangkan matriks (8.4). Pembolehubah asas akan dibentangkan dalam secara eksplisit, jika kita menggantikan matriks B dengan matriks identiti I. Mendarab baris pertama matriks (8.4) di sebelah kiri dengan B~ 1, kita dapat

di mana B_1 b > O, i.e. T elemen atas di lajur kanan adalah bukan negatif dan mewakili nilai semasa pembolehubah.

Di sebelah kiri baris atas Hasilnya ialah matriks unit: B -1 B = I. Persembahan ini sangat mudah, kerana apabila mendarab dengan vektor x masuk setiap pembolehubah akan berada pada baris yang berasingan.

Oleh itu, penyelesaian asas, yang akan kita anggap boleh diterima dan sepadan dengan asas B, ialah x m = [x dalam 0], di mana x dalam == B_1 b. Penyelesaian asas terhasil daripada andaian bahawa x F = 0. Namun, jika xF* 0, maka x^ boleh dikira sebagai x 5 = = B~"b - B^"Fx/r. Menggantikan ungkapan ini menjadi fungsi sasaran(fungsi kos), kita dapat

Memandangkan perlu untuk menentukan pergantungan kos pada pembolehubah bukan asas, salah satunya kemudian dimasukkan ke dalam pembolehubah asas, garis bawah di bawah matriks I sepatutnya sifar. Untuk melakukan ini, dalam (8.7) kita darab baris pertama (matriks) dengan daripada kepada dan tambahkannya dengan yang kedua

di manakah nilai fungsi objektif bagi abad awal

torus x 0 daripada (8.3).

Matriks (8.8) dipanggil jadual simplex. Membawa dia ke spesies ini ialah peringkat awal algoritma simplex. Semasa pelaksanaan algoritma, peralihan dibuat dari satu jadual ke jadual lain sehingga elemen kanan bawah jadual menjadi maksimum atau minimum.

Menggunakan jadual simplex adalah mudah untuk melihat penyelesaian yang boleh dilaksanakan. Pembolehubah x F sepadan dengan submatriks sifar, pembolehubah x masuk- matriks unit:

Mari kita andaikan bahawa masalah LP telah dikurangkan kepada bentuk piawai, jadual simpleks telah dikira, dan penyelesaian asas awal yang sepadan dengan bucu larutan polyhedron telah dipilih.

Kemudian - penyelesaian kepada masalah (8.1). Jadi

seperti b > Oh, ini ialah penyelesaian asas yang boleh diterima.

Marilah kita mempersembahkan matriks (8.9) dalam bentuk yang lebih mudah, mengekalkan tatatanda asas:

Mari kita pertimbangkan secara berasingan masalah pemaksimuman dan peminimuman.

Mencari rancangan yang optimum. Kaedah ini adalah universal; ia membolehkan menyelesaikan masalah pengaturcaraan linear mana-mana dimensi dalam rumusan umum. Walau bagaimanapun, kaedah ini memerlukan mengurangkan masalah asal kepada bentuk kanonik.

Idea utama kaedah simpleks adalah untuk bergerak dari satu puncak ODR ke yang lain supaya dengan setiap peralihan nilai CF berkurangan. Ini adalah bagaimana anda boleh pergi dari mana-mana puncak kepada yang optimum dan mendapatkan pelan yang optimum.

Contohnya: biarkan pelan rujukan X =(x1,x2,…,xm,0,0,…,0) dan sistem berkaitan vektor bebas linear: A1,A2,…,Am diketahui, maka untuk pelan rujukan ini anda boleh mengira nilai CF Z=(c1x1+c2x2+…+cmxm) dan tuliskan syarat had dalam borang berikut x1A1+x2A2+…+xmAm=b

Memandangkan vektor A1, A2,…, Am adalah bebas linear, mana-mana vektor Aj boleh dikembangkan menjadi vektor ini: Aj=x1jA1+x2jA2+…+xmjAm (*) Mari kita perkenalkan nilai Zj Zj=x1jc1+x2jc2+…+ xmjcm, dengan xij ialah pekali yang sepadan dengan Ai dalam vektor pengembangan Aj dengan vektor asas

Teorem 1: Penambahbaikan pelan rujukan

Jika untuk beberapa indeks j keadaan Zj-Cj>0 dipenuhi, maka nilai CF boleh dikurangkan dan:

· jika CF adalah terhad dari bawah, maka adalah mungkin untuk membina pelan rujukan dengan nilai CF yang lebih kecil, sama sebelumnya

· jika TF tidak terhad dari bawah, maka adalah mungkin untuk membina pelan yang sepadan dengan nilai TF yang sewenang-wenangnya kecil

Teorem 2: kriteria optimum untuk pelan rujukan

Jika untuk beberapa indeks j dalam pelan rujukan ketaksamaan Zj-Cj0. Biarkan minimum ini dicapai untuk vektor Ak, maka vektor inilah yang mesti diperoleh daripada asas. Garis yang sepadan dengan vektor ini dipanggil panduan dan dilambangkan "à".

4. Selepas mentakrifkan panduan lajur dan baris, isi jadual simpleks baharu. Dalam jadual sedemikian, Ai akan muncul di tempat garis panduan. Pengisian meja baru bermula dengan garis panduan. Sebagai komponen pelan rujukan, nilai Ө0 X'l=Ө0=Xk/Xkl ditulis di sana, baki elemen baris ini ditentukan oleh formula X'lj X'lj=Xkj/Xkl di mana Xkl ialah elemen terletak di persimpangan panduan baris dan lajur, khususnya di atasnya semua elemen bekas garis panduan dibahagikan, dan unit secara automatik muncul di tempat elemen Xkl dahulu. Peraturan Am untuk mengira semula garis panduan, anda boleh menulisnya seperti ini: Ak (elemen baharu garis panduan) = (elemen lama garis panduan)/(elemen berdiri di persimpangan lajur dan baris panduan)

5. Semua elemen baris baki jadual dikira semula, termasuk tambahan pokoknya. Pengiraan semula dilakukan mengikut formula

· untuk komponen pelan rujukan X’i=Xi-Ө0Xil=Xi-(Xk/Xkl)*Xil

· untuk komponen yang dikembangkan atas dasar X’ij=Xij-(Xkj/Xkl)*Xil

· Untuk talian tambahan Z’j-Cj=(Zj-Cj)-(Xkj/Xkl)*(Zl-Cl)

Semua formula ini dibina mengikut satu peraturan:

(e-mel baharu)=(e-mel lama)-(e-mel arah baris baharu)*(e-mel arah lajur dalam baris yang sepadan)

Selepas mengisi jadual simplex baharu, peralihan ke peringkat kedua algoritma berlaku.

Kaedah semula jadi dan asas buatan. Konsep asas, algoritma kaedah.

Bagi kebanyakan masalah pengaturcaraan linear, kesukaran timbul dalam menyelesaikannya berkaitan dengan menentukan pelan rujukan awal dan jadual simpleks awal dari mana semua lelaran bermula. Ini disebabkan fakta bahawa dalam masalah sebenar antara vektor Ai tidak ada vektor yang mengandungi hanya satu komponen bukan sifar, iaitu vektor dalam bentuk (0,0,0,…,0,1,0,…,0) atau bilangan mereka tidak mencukupi untuk membentuk asas. Iaitu, tidak mungkin untuk membentuk asas semula jadi.

Kaedah asas buatan adalah berdasarkan pengenalan buatan V model matematik masalah vektor tersebut.

Biarlah diberi ZLP berkanun borang

F: C1X1=C2X2+…+CnXnàmin

a11x1+a21x2+…+an1xn=b1

a12x1+a22x2+…+an2xn=b2

…………………………

a1mx1+a2mx2+…+anmxn=bm

Kemudian ia ditukar kepada bentuk

F: C1X1+C2X2+…+CnXn+MXn=1+MXn+2+…+MXn+màmin

a11x1+a21x2+…+an1xn+xn+1=b1

a12x1+a22x2+…+an2xn+xn+2=b2

……………………………….

a1mx1+a2mx2+…+anmxn+xn+m=bm

Di mana M adalah tak terhingga nombor besar. Dalam masalah yang terhasil, asas awal dapat dilihat dengan serta-merta; vektor dengan pembolehubah yang diperkenalkan secara buatan xn+1, xn+2,…, xn+m harus diambil sebagai ia. Oleh kerana vektor ini akan mempunyai bentuk: (1,0,0,…,0),(0,1,0,…,0),(0,0,…,1). Masalah yang diubah kemudiannya diselesaikan menggunakan algoritma kaedah simpleks. Pelan rujukan awal masalah yang diubah mempunyai bentuk (0,0,…,0,xn+1,xn+2,…,xn+m)=(0,0,…,0,b1,b2,…, bm). Jadual simplex asal kelihatan seperti ini:

Asas pekali CF Rancang C1 C2 Cn M M M
A1 A2 An An+1 An+2 An+m
An+1 M b1 a11 a21 an1 1 0 0
An+2 M b2 a12 a22 an2 0 1 0
An+m M bm a1m a2m anm 0 0 1
Z0

Kami menentukan unsur-unsur garis tambahan menggunakan formula Z0=Mb1+Mb2+…+Mbm=∑mi=1Mbi=M∑ni=1bi

Untuk menentukan perbezaan Zj=a11M+Ma12+…+Ma1m=M∑mj=1aij V i=1,n

Zj-Cj=M∑mj=1aij-Cj

Selepas menerima jadual simplex asal, ia diubah, cuba untuk mendapatkan daripada vektor asas yang sepadan dengan pembolehubah tambahan yang diperkenalkan.

Memandangkan M sangat nombor besar, maka di antara perbezaan Zj-Cj akan terdapat banyak nombor positif. Iaitu, terdapat ramai calon untuk dimasukkan ke dalam asas di antara vektor A1,A2,…,An

Jika sesetengah vektor sepadan dengan pembolehubah yang diperkenalkan secara buatan xn+1,xn+2,…,xn+m, maka vektor yang sepadan diperoleh daripada asas, dan lajur simpleks jadual dengan vektor ini dicoret dan tidak dikembalikan kepadanya lagi. Pada akhir penjelmaan jadual simpleks, dua pilihan adalah mungkin:

· semua vektor yang sepadan dengan pembolehubah buatan telah diperoleh daripada asas, dalam kes ini semua lajur jadual simpleks yang sepadan dengan pembolehubah tambahan akan hilang, dan penyelesaiannya akan masalah asal

· pelan optimum yang terhasil masih akan mengandungi beberapa pembolehubah tambahan, ini bermakna ODD masalah asal adalah kosong, iaitu, sekatannya adalah bercanggah, oleh itu masalah asal tidak mempunyai penyelesaian sama sekali.

Masalah pengaturcaraan dwi linear. Pernyataan masalah, sifat mereka.

Masalah dwi simetri:

Borang piawai pertama

f(x)=c1x1+c2x2+…+cnxnàmin

a11x1+a21x2+…+an1xn>=b1

a12x1+a22x2+…+an2xn>=b2

…………………………………………..

a1mx1+a2mx2+…+anmxn>=bm

Masalah berganda

d(y)=b1y1+b2y2+…+bmymàmaks

a11y1+a12y2+…+a1mym=0, V j=1,m

Pasangan bukan septenary bagi masalah dwi

Masalah asal dalam bentuk kanonik

f(x)=c1x1+c2x2+…+cnxnàmin

a11x1+a21x2+..+an1xn=b1

a12x1+a22x2+..+an2xn=b2

…………………………..

2. Pengenalan pembolehubah asas semula jadi. Pembinaan meja simpleks. Definisi pelan sifar.

Kaedah simplex. Algoritma kaedah simpleks.

Kaedah simplex- algoritma untuk menyelesaikan masalah pengoptimuman pengaturcaraan linear dengan menghitung bucu polihedron cembung dalam ruang berbilang dimensi. Kaedah ini dibangunkan oleh ahli matematik Amerika George Danzig pada tahun 1947.

Idea kaedah simpleks ialah masalah deskriptif yang dikemukakan diterjemahkan ke dalam bentuk matematik. Rumusan matematik masalah mengandungi persamaan fungsi objektif yang menunjukkan hasil yang diinginkan - menentukan minimum atau maksimum fungsi objektif; sistem kekangan linear, diberikan oleh kesamaan atau ketaksamaan. Huraian matematik yang terhasil membawa kepada bentuk matriks. Kemudian penerangan matriks masalah dikurangkan kepada bentuk kanonik. Selepas sistem persamaan linear dikurangkan kepada bentuk kanonik, kita mula menyelesaikan masalah pengaturcaraan linear. Algoritma untuk menyelesaikan masalah ini terdiri daripada urutan membina matriks. Setiap langkah penyelesaian membawa anda lebih dekat untuk mendapatkan hasil yang diingini.

Dalam skema pengiraan kaedah simplex, proses tertib dilaksanakan di mana, bermula dari beberapa titik sudut awal yang boleh diterima (biasanya asal), peralihan berturut-turut dibuat dari satu titik ekstrem yang boleh diterima ke titik yang lain sehingga titik yang sepadan dengan penyelesaian optimum adalah dijumpai.

Algoritma kaedah simplex

1. Kami membawa sistem sekatan kepada bentuk kanonik (apabila sistem terhad). Selain itu, asas tunggal boleh dikenal pasti dalam sistem.

2. Cari yang asal pelan rujukan(penyelesaian asas bukan negatif bagi sistem persamaan KZLP). Setiap pelan rujukan ditentukan oleh sistem m vektor bebas linear yang terkandung dalam sistem n vektor tertentu A 1 , A 2 ,…, A n. Had atas bilangan pelan rujukan yang terkandung dalam masalah tertentu ditentukan oleh bilangan kombinasi Dengan nm);

3. Kami membina jadual simplex (jadual simplex matriks yang berfungsi sebagai cara menghitung penyelesaian asas yang boleh diterima bagi masalah pengaturcaraan linear (tidak merosot) apabila menyelesaikannya menggunakan kaedah simpleks. Ia terbentuk daripada matriks pekali sistem persamaan pengaturcaraan linear yang dikurangkan kepada bentuk kanonik; transformasi berurutannya mengikut apa yang dipanggil algoritma simplex membolehkan bilangan langkah yang terhad (lelaran) untuk mendapatkan hasil yang diingini - pelan yang menyediakan nilai melampau bagi fungsi objektif).

4. B jadual simplex kami menyemak vektor untuk negatif, i.e. penilaian Zj – Сj ditulis dalam baris mestilah ≤ 0 (sekurang-kurangnya), Zj – Сj ≥ 0(maksimum). Sekiranya anggaran memenuhi keadaan optimum, maka masalah itu diselesaikan.

5. Jika bagi sesetengah vektor keadaan optimum dilanggar, maka perlu dimasukkan ke dalam asas vektor yang sepadan dengan:

maks[θ 0 j (Zj – Сj)] ; min[θ 0 j (Zj – Сj)] ; θ 0 j = min, Di mana x i> 0

Elemen vektor θ j yang sepadan θ 0 j dipanggil permisif; baris dan lajur di mana ia terletak dipanggil panduan; vektor dalam baris panduan meninggalkan asas.

6. Mari kita cari pekali pengembangan untuk semua vektor dalam asas baharu. Mari gunakan kaedah Giordano Gauss

Mari semak pelan rujukan yang optimum. Jika anggaran memenuhi syarat optimum, maka masalah diselesaikan; jika tidak, maka langkah 5-7 dilakukan.

2. Pengenalan pembolehubah asas semula jadi. Pembinaan meja simpleks. Definisi pelan sifar.

Kaedah simpleks adalah paling berkesan dalam menyelesaikan masalah yang kompleks dan mewakili proses berulang (langkah demi langkah) bermula dengan sifar(rujukan) penyelesaian (puncak n-polihedron dimensi). Seterusnya dalam carian pilihan optimum Pelan ini menganggap pergerakan di sepanjang titik sudut (bucu polihedron) sehingga nilai fungsi objektif mencapai nilai maksimum (minimum). Mari kita pertimbangkan algoritma kaedah simpleks menggunakan contoh masalah perancangan pusing ganti untuk sumber yang terhad bahan mentah.

Syarikat itu menjual n kumpulan produk, mempunyai m sumber bahan dan kewangan yang terhad b i ≥0 (1 ≤ i≤ m). Kos sumber setiap orang diketahui i- jenis pengeluaran dan penjualan unit barang setiap kumpulan, dibentangkan dalam bentuk matriks ( a ij) dan keuntungan yang diterima oleh perusahaan daripada penjualan seunit barang j-kumpulan termasuk dalam fungsi objektif Z(X). Kaedah pengaturcaraan linear tidak berbeza daripada sistem (1) - (2):

Z(X) = с 1 Х 1 + с 2 Х 2 + с 3 Х 3 + … +с n Х n →maks(min) (1)

a 11 X 1 + a 12 X 2 +…a 1n X n ≤ b 1,

a 21 X 1 + a 22 X 2 +…a 2n X n ≤ b 2 (2)

a m1 X 1 + a m2 X 2 +…a mn X n ≤ b m,

X 1 ≥0 X 2 ≥0 X 3 ≥0 …X n ≥0

Peringkat-peringkat menyelesaikan masalah menggunakan kaedah simpleks termasuk:

1) Merangka pelan rujukan sifar. Kami memperkenalkan pembolehubah bukan negatif (asas) baharu, yang mana sistem ketaksamaan (2) menjadi sistem persamaan:

a 11 X 1 + a 12 X 2 +…a 1n X n + X n+1 = b 1

a 21 X 1 + a 22 X 2 +…a 2n X n + X n+2 = b 2 (3)

……………………………………..

a m1 X 1 + a m2 X 2 +…a mn X n + X n+m = b m,

Jika kita mengambil pembolehubah input sebagai vektor lajur, maka ia mewakili bujang (asas) vektor. Perhatikan bahawa pembolehubah asas mempunyai pembolehubah yang mudah makna fizikal- Ini baki sumber khusus di gudang untuk rancangan pengeluaran tertentu, oleh itu asas ini dipanggil semula jadi. Kami menyelesaikan sistem (3) berkenaan dengan pembolehubah asas:

X n+1 = b 1, -a 11 X 1 - a 12 X 2 -…a 1n X n

X n+2 = b 2 - a 21 X 1 - a 22 X 2 -…a 2n X n (4)

………………………………………..

X n+m = b m, - a m1 X 1 + a m2 X 2 +…a mn X n

Kami menulis semula fungsi objektif dalam borang

Z(X) = 0-(-с 1 Х 1 -с 2 Х 2 -с 3 Х 3 -…-с n Х n) (5)

Dengan mengandaikan bahawa pembolehubah utama yang diperlukan X 1 = X 2 = X 3 = ... = X n = 0, kita memperoleh pelan rujukan sifar X = (0, 0, ...0, b 1, b 2, b 3 ... b m), di mana Z(X) = 0 (semua sumber dalam stok, tiada apa yang dihasilkan). Kami memasukkan pelan ke dalam jadual simplex.

Rancang Asas C i /C j Maknanya X i X 1 X 2 Xn Xn+1 Xn+2 X n+ 3 Q min
Xn+1 b 1 a 11 a 12 a 13 b 1/a 12
Xn+2 b 2 a 21 a 22 a 23 b 2 / a 22
Xn+3 b 3 a 31 a 32 a 33 b 3 / a 32
Z(X) = 0 -C 1 - C 2 - C 3 Indeks. barisan

2) Daripada pekali negatif garis indeks, pilih yang terbesar nilai mutlak, yang menentukan lajur utama dan menunjukkan pembolehubah yang mana pada lelaran (langkah) seterusnya akan beralih daripada utama (percuma) kepada asas (malah, kumpulan produk dipilih yang jualannya membawa pendapatan maksimum). Kemudian kami membahagikan rizab bahan mentah b i dengan pekali kos yang sepadan, masukkan keputusan ke dalam jadual dan tentukan nilai minimum Q min (sumber yang rizabnya paling kuat mengehadkan output kumpulan produk yang dipilih dipilih). Nilai ini memilih garis pendahuluan dan pembolehubah Xi, yang pada langkah seterusnya (lelaran) akan meninggalkan asas dan menjadi bebas.

3) Peralihan kepada pelan baharu dijalankan hasil daripada pengiraan semula jadual simpleks menggunakan kaedah Jordan-Gauss. Pertama, kita gantikan X j dalam asas dengan X i lajur utama. Mari bahagikan semua elemen garis pendahuluan dengan unsur penyelesaian (RE), akibatnya tempat RE dalam garisan hadapan ialah 1. Oleh kerana X i telah menjadi asas, pekali bakinya hendaklah sama dengan 0 Elemen baharu pelan ini ditemui mengikut peraturan segi empat tepat

NE=SE – (A*B)/RE (6)

Pelan yang dihasilkan dinilai menggunakan pekali garis indeks: jika semuanya positif, maka rancangan itu optimum; jika tidak, maka rancangan itu boleh diperbaiki dengan melakukan lelaran (langkah) seterusnya.

Contoh. 20 ribu rubel telah diperuntukkan untuk pembelian peralatan untuk tapak pengeluaran. Peralatan boleh diletakkan di kawasan tidak melebihi 72 sq.m. Anda boleh memesan peralatan dua jenis: jenis A, memerlukan kawasan pengeluaran 6 meter persegi dan menyediakan 6 ribu unit. produk setiap syif (harga 5,000 rubel) dan jenis B, memerlukan kawasan seluas 12 meter persegi dan menghasilkan 3 ribu unit (harga 2,000 rubel). Apakah rancangan pemerolehan peralatan yang optimum untuk dipastikan prestasi maksimum plot?

Mari kita nyatakan kuantiti peralatan jenis A dan B yang dibeli oleh X 1 dan X 2, masing-masing.

Produktiviti tapak (fungsi objektif): Z(X) =6Х 1 +3Х 2.

Batasan utama adalah berkaitan

dengan wang tunai: 5Х 1 +2Х 2 ≤ 20,

dengan kawasan tapak pengeluaran: 6Х 1 +12Х 2 ≤ 72.

Kami memperkenalkan pembolehubah asas baharu X 3 (baki Wang selepas membeli peralatan) dan X 4 (kawasan baki selepas penempatan peralatan) dan tulis semula sekatan dalam bentuk sistem persamaan:

5X 1 +2X 2 +X 3 =20 (X 3 =20 – 5X 1 - 2X 2)

6X 1 +12X 2 +X 4 = 72 (X 4 =72 – 6X 1 – 12X 2)

Dalam kes ini, fungsi matlamat: Z(X) = 6Х 1 +3Х 2 +0Х 3 +0Х 4 .

Kami membuat rujukan (ke-0) pelan: X = (0, 0, 20, 72), i.e. belum ada yang dibeli (tiada duit habis, ruang kosong). Membuat jadual simplex

Rancang Asas C i /C j Maknanya X i X 1 X 2 X 3 X 4 Q min
X 3 20/5=4
X 4 72/6=12
Z(X) = 0 - 6 - 3 Garis indeks
→X 1 0,4 0,2 4/0,4=10
X 4 9,6 -1,2 48/9,6=5
Z(X) = 6*4=24 -0,6 1,2 Garis indeks
X 1 0,25 -1/24 -
→X 2 -1/8 5/48 -
Z(X) =6*2+3*5=27 9/8 1/16 Garis indeks

Jelas sekali, lajur utama sepadan dengan X 1, kerana ia mempunyai indeks terbesar 6. Kami mendapati nilai minimum Q min = 4 (kekangan sumber paling teruk) dengan mentakrifkan baris utama yang menunjukkan bahawa X 3 diterbitkan daripada pembolehubah asas , dan X dimasukkan sebaliknya 1 . Kami mengira semula elemen garis utama, membahagikannya dengan 5, dan menggunakan formula (6) kami menentukan elemen baris kedua dan indeks. Fungsi objektif untuk pelan pertama adalah sama dengan Z(X) = 6*4+3*0 = 24.

Walau bagaimanapun, salah satu daripada pekali baris indeks untuk lajur X 2 kekal negatif -0.6, oleh itu rancangan ini tidak optimum dan satu lagi lelaran (langkah) diperlukan untuk memperbaikinya. Pilih lajur ke-2 sebagai terkemuka dan nilai minimum Q min = 5 kita mentakrifkan garis pendahuluan dengan pembolehubah asas X 4. Setelah melakukan transformasi yang sama, kami memperoleh pelan ke-2, yang akan menjadi optimum, kerana semua pekali indeks adalah positif.

Mari analisa keputusan yang diperolehi. Pada penyelesaian yang optimum fungsi objektif mempunyai nilai maksimum 27 ribu rubel, sementara kedua-dua sumber dikeluarkan dari pangkalan, oleh itu dibelanjakan sepenuhnya.

Mari kita pastikan ini: 5*2+2*5 = 20 ribu rubel, 6*2+12*5=72 sq.m. Penyelesaian yang diperlukan ialah X = (2; 5;0;0) Ini tidak selalu berlaku.

Kuliah Bil 10

Topik: Kaedah simplex untuk masalah dengan asas buatan

Kaedah penyelesaian simpleks adalah berdasarkan pengenalan pembolehubah tambahan (asas) yang memungkinkan untuk membentuk matriks unit. Jika kekangan masalah dibentangkan dalam bentuk ketaksamaan:

a i1 X 1 + a i2 X 2 +…a dalam X n ≥ b i (1)

atau persamaan:

a i1 X 1 + a i2 X 2 +…a dalam X n = b i (1*),

maka adalah mustahil untuk mendapatkan pelan rujukan dalam bentuk yang dikehendaki. Dalam kes ini, untuk mematuhi kesamaan (1*), kami memperkenalkan asas buatan Y i , dan pembolehubah buatan tidak berkaitan secara langsung dengan kandungan tugas, tetapi memungkinkan untuk membina pelan rujukan (permulaan):

a i1 X 1 + a i2 X 2 +…a dalam X n +Y i = b i (2)

Fungsi objektif apabila menyelesaikan masalah secara maksimum akan ditulis dalam bentuk:

Z(X) =∑C j X j +(-M)∑Y i (3),

apabila menyelesaikan masalah yang sama sekurang-kurangnya:

Z(X)=∑C j X j +(M)∑Y i (3*),

di mana M adalah sangat besar nombor positif, sejenis penalti kerana menggunakan pembolehubah buatan.

Dalam kes ketaksamaan (1), kita pada mulanya memperkenalkan pembolehubah tambahan X n + i dengan tanda tolak. Matriks mereka tidak akan bersatu, oleh itu, ke dalam setiap ketidaksamaan sistem (1) kami memperkenalkan pembolehubah buatan У i:

a i1 X 1 +a i2 X 2 +…a dalam X n –X n+i +Y i =b i (4)

Fungsi objektif dalam kes ini ialah Z(X)=∑C j X j +0∑X n + i +(-M)∑Y i (untuk mencari maksimum). Penggunaan asas buatan memberikan kaedah simplex lebih fleksibel dan membolehkan ia digunakan untuk pelbagai masalah.

Contoh . Tentukan nilai keuntungan maksimum dan minimum untuk pengeluaran dua jenis produk A dan B, jika kos pengeluaran dan keuntungan daripada jualan seunit produk diberikan dalam jadual. Syarat utama ialah penggajian penuh pekerja di perusahaan.

Secara matematik, kekangan keluaran pengeluaran akan ditulis dalam bentuk sistem campuran:

1X 1 + 1X 2 ≤ 6,

2X 1 + 1X 2 =8.

Mari kita perkenalkan pembolehubah asas X 3 untuk ketaksamaan pertama, dan pembolehubah buatan Y 1 untuk persamaan kedua:

1X 1 + 1X 2 + X 3 = 6,

2X 1 + 1X 2 +Y 1 =8.

Mari kita ungkapkan X 3 dan Y 1 daripada sistem persamaan yang terhasil dan, untuk menentukan maksimum, bayangkan fungsi objektif:

Z(X)= 3X 1 + 2X 2 +0X 3 –MY 1 = 3X 1 + 2X 2 –M(8 -2X 1 –X 2)=

3X 1 + 2X 2 –8M +2MX 1 + MX 2 = (2M + 3)X 1 + (M + 2)X 2 -8M

Untuk pelan rujukan - X=(0,0,6,8). Mari bina jadual simplex:

Rancang Asas C i /C j Maknanya X i X 1 X 2 X 3 Y 1 Q min
X 3 6/1=6
Y 1 -M 8/2=4
Z(X) = -8M -2M-3 -M-2 Garis indeks
X 3 0,5 -0,5 2/0,5=4
→X 1 0,5 0,5 4/0,5=8
Z(X) = 3*4=12 - 0,5 M+1.5 Garis indeks
→X 2 -1 -
X 1 -1 -
Z(X) =3*2+2*4=14 M+1 Garis indeks

Sebagai peraturan, penambahbaikan pelan rujukan bermula dengan penyingkiran pembolehubah buatan Y 1 daripada asas. Pelan optimum X = (2,4,0,0) diperolehi dalam lelaran kedua, dengan pendapatan maksimum 14 ribu. gosok. , dan pekali baris indeks adalah bukan negatif. Adalah mudah untuk mengesahkan bahawa dalam tugasan ini, dengan pelan optimum, sumber digunakan sepenuhnya (2*1+4*1=6; 2*2+1*4=8).

Apabila mencari keuntungan minimum, kami merumuskan fungsi objektif secara berbeza (+MY 1 dimasukkan sebagai istilah:

Z(X)= 3X 1 + 2X 2 +0X 3 +MY 1 = 3X 1 + 2X 2 +M(8 -2X 1 –X 2)=

3X 1 + 2X 2 +8M - 2MX 1 - MX 2 = (3 - 2M)X 1 + (2 - M)X 2 +8M

Pelan asas sama, tetapi pekali baris indeks dalam jadual simpleks adalah berbeza. Lajur utama, seperti sebelumnya, dipilih oleh yang terbesar nilai mutlak pekali positif untuk X 1, baris utama ditentukan oleh nilai minimum Q min = 4. Pada lelaran pertama, pembolehubah buatan Y 1 diterbitkan daripada asas.

Rancang Asas C i /C j Maknanya X i X 1 X 2 X 3 Y 1 Q min
X 3 6/1=6
Y 1 M 8/2=4
Z(X) = 8M 2M-3 M-2 Garis indeks
X 3 0,5 -0,5 2/0,5=4
→X 1 0,5 0,5 4/0,5=8
Z(X) = 3*4=12 - 0,5 -M+1.5 Garis indeks

Nilai negatif yang terhasil daripada pekali dalam garis indeks X i menunjukkan optimum pelan pertama, manakala pendapatan minimum ialah 12 ribu rubel.

Ia hanya disediakan oleh keluaran produk A (produk B tidak dihasilkan), bahan mentah tidak digunakan sepenuhnya (baki X 3 = 2t), manakala syarat utama dipenuhi - pekerja bekerja sepenuhnya dalam pengeluaran.


Kuliah Bil 11

Topik: Masalah pengangkutan tertutup

1. Rumusan matematik tertutup masalah pengangkutan. Menentukan bilangan yang tidak diketahui yang diperlukan.

2. Peringkat menentukan rancangan untuk menyelesaikan masalah pengangkutan.