Pemotongan linear dalam Excel. Program untuk mengoptimumkan pemotongan bahan

  • 07.03.2022

Pemotongan linear ekonomik bahan (pemotongan acuan) adalah relevan untuk banyak industri dan dalam pembinaan. Ini adalah menggergaji kayu balak dan papan dalam kerja kayu, pemotongan bar, pengukuh bar, sudut, saluran, paip, I-rasuk menjadi kosong ...

Dalam pengeluaran struktur logam dan kejuruteraan mekanikal, pemotongan melintang gulungan dengan kertas dan fabrik dalam industri pulpa dan ringan.

Walaupun kesederhanaan yang jelas, penyelesaian masalah pemotongan linear tidak begitu mudah, tetapi berbaloi. Pengenalan pendekatan saintifik untuk memotong bahan acuan membolehkan anda mengurangkan kos mereka, kadang-kadang lebih daripada 10%! Baca artikel hingga akhir dan pastikan perkataan ini betul.

Topik yang sedang dipertimbangkan adalah berkaitan dengan masalah pengaturcaraan linear. Untuk menyelesaikan masalah sedemikian, saintis dalam 70 tahun yang lalu telah menghasilkan beberapa kaedah yang berbeza.

Kaedah indeks L.V. Kantorovich dan V.A. Zalgallera, dengan kemahiran tertentu, membolehkan anda melakukan pemotongan linear "secara manual" dengan berkesan tanpa menggunakan teknologi komputer. Saya mengesyorkan kepada pembaca yang ingin tahu untuk membiasakan diri dengan kaedah ini dengan membaca buku pengarang yang dinamakan di atas "Pemotongan Rasional Bahan Perindustrian".

Kaedah simpleks berdasarkan idea L.V. Kantorovich, telah diterangkan dan dibangunkan secara terperinci oleh beberapa saintis dari Amerika Syarikat pada pertengahan abad ke-20. Tambah dalam MS Excel "Cari penyelesaian" (Penyelesai) menggunakan algoritma ini. Dengan kaedah inilahcemerlangkami akan menyelesaikan masalah pemotongan linear dalam artikel ini.

Kemudian, algoritma genetik, tamak dan koloni semut muncul dan dibangunkan. Walau bagaimanapun, kami akan menghadkan diri untuk menyenaraikannya dan memulakan perniagaan, tanpa memanjat ke dalam hutan teori (walaupun di sana, "di dalam hutan", ia sangat menarik).

Mari hidupkan Excel dan, menggunakan contoh mudah memotong rod logam menjadi bahagian, kita akan berkenalan dengan salah satu cara untuk menyelesaikan masalah praktikal pemotongan linear. Ahli matematik sering merujuk masalah ini sebagai "masalah pemotongan".

Saya tidak mencipta data awal untuk contoh, tetapi mengambilnya dari artikel oleh Pokrovsky M.A. "Meminimumkan kehilangan bahan yang tidak dapat dielakkan dalam pengeluaran perindustrian apabila memotongnya menjadi kepingan kosong" yang diterbitkan dalam No. 5 (Mei 2015) jurnal saintifik dan teknikal elektronik "Buletin Kejuruteraan" yang diterbitkan oleh FGBOU VPO "MSTU im. N.E. Bauman (pautan:engbul. bmstu. en/ doc/775784. html).

Matlamat yang saya kejar adalah untuk membandingkan hasil penyelesaian masalah.

Contoh penyelesaian masalah pemotongan linear dalam MS Excel.

Mari kita bersetuju bahawa:

1. Bilet adalah bahan mentah dalam bentuk bar, jalur, rod, dll. sama panjang.

2. Butiran adalah elemen yang perlu diperolehi dengan memotong kosong asal menjadi kepingan.

3. Lebar gergaji, potong, gosok diambil sama dengan sifar.

Tugas:

Untuk melengkapkan salah satu pesanan, bahagian perolehan mesti memotong tiga saiz standard bahagian pada gunting gabungan daripada bar-kosong yang sama dengan panjang 1500 mm:

151 keping 330 mm panjang

206 keping 270 mm panjang

163 keping 190 mm panjang

Ia diperlukan untuk mencari pelan pemotongan optimum yang menggunakan jumlah minimum bahan dan, dengan itu, memberikan jumlah minimum sisa.

Data awal:

1. Panjang kosong asal Lh dalam milimeter kita tulis dalam sel gabungan

D3E3F3: 1500

2. Kami menetapkan nombor i semua saiz standard bahagian, bermula dari yang terpanjang dan berakhir dengan yang terpendek dalam sel

D4; E4; F4: 1; 2; 3

3. Panjang bahagian Ldi dalam milimeter yang kita tulis

D5; E5; F5: 330; 270; 190

4. Bilangan butiran Ndi dalam kepingan dimasukkan ke dalam

D6; E6; F6: 151; 206; 163

5. Kami meneruskan ke peringkat yang sangat penting - mengisi pilihan pemotongan.

Mesti ingat dan faham 2 prinsip untuk melakukan kerja ini.

1. Panjang sisa mestilah kurang daripada bahagian terkecil ( 0< sungguh j < Ldmin ).

2. Kami mula "meletakkan" bahagian ke dalam bahan kerja dengan bahagian terbesar dan dengan bilangan terbesar, bergerak secara konsisten ke arah berkurangan.

Sekiranya tiada saiz bahagian dalam pilihan pemotongan, maka kami biarkan sel kosong, kami tidak akan menulis sifar untuk memudahkan persepsi visual jadual.

Pilihan pemotongan No. 1:

Percubaan untuk memotong 5 bahagian No. 1 dari satu kosong adalah mustahil, jadi kami menulis di dalam sel

Ia juga mustahil untuk menambah bahagian No. 2 atau bahagian No. 3 ke dalam sarang, jadi kami membiarkan sel kosong.

Pilihan pemotongan No. 2:

Kami mengurangkan bilangan bahagian No. 1 sebanyak 1 daripada versi sebelumnya dan menulisnya

Kami cuba menambah 2 bahagian No. 2 - ia tidak berfungsi, jadi kami menambah

Ia masih mungkin untuk menambah pemotongan dengan butiran No. 3. Kami masuk ke dalam

Mematuhi prinsip yang disuarakan, kami mengisi dengan analogi semua 18 pilihan pemotongan yang mungkin dalam kes ini.

Setelah membuat beberapa jadual pilihan pemotongan sendiri, anda akan memahami logik tindakan dan akan menghabiskan beberapa minit untuk kerja ini.

Sekiranya prinsip pertama tidak dipenuhi semasa pemotongan, maka sel dengan panjang berlepas secara automatik dicat merah. Pemformatan bersyarat yang digunakan pada sel G7…G24 dengan jelas akan membantu anda dalam kerja ini.

Dalam sel H7 ... H24 jangan tulis apa-apa! Mereka digunakan untuk memaparkan hasil penyelesaian!

Persediaan untuk penyelesaian:

* Dalam sel G7 ... G24, panjang sisa (potongan) yang tinggal akibat pemotongan dikira mengikut formula

sungguh j = L h -Σ (Ldi * Ndij )

6. Bilangan bahagian setiap saiz standard, dibuat mengikut semua pilihan sarang yang digunakan, akan dikira dalam sel D26, E26 dan F26 mengikut formula

Ndicalc = Σ (Ndij * Nhj )

Bilangan bahagian dalam pelan pemotongan yang terdapat pada penghujung penyelesaian mestilah sepadan sepenuhnya dengan bilangan bahagian yang ditentukan!

7. Bilangan bahan kerja yang diperlukan untuk melengkapkan pelan pemotongan optimum akan ditentukan dalam sel gabungan D27E27F27 menggunakan formula

N kalk =ΣN hj

8. Jumlah panjang semua tempat kosong yang diperlukan untuk melakukan sarang linear semua bahagian akan dikira dalam sel gabungan D28E28F28 menggunakan formula

Lh Σ = L h*Ndaripada pengiraan

9. Jumlah panjang semua sisa yang terhasil daripada pelaksanaan pelan pemotongan yang ditemui akan dikira dalam sel gabungan D29E29F29 menggunakan formula

Ltentang Σ = Σ (Ltentangj * Nhj )

10. Perkadaran sisa yang dijana oleh pelan pemotongan linear optimum daripada jumlah bahan yang digunakan akan dikira dalam sel gabungan D30E30F30 menggunakan formula

Ωo = Lo Σ /Lз Σ

Penyelesaian:

Penyediaan selesai, 18 pilihan untuk pemotongan paling optimum satu bahan kerja kepada bahagian ditentukan dan semua formula yang diperlukan dimasukkan. Sekarang kita perlu menyelesaikan masalah utama: untuk menentukan pelan pemotongan optimum - berapa banyak kosong, dan mengikut apa pilihan pemotongan untuk dipotong untuk akhirnya mendapatkan semua bahagian yang diperlukan dalam kuantiti yang betul dengan sisa minimum.

1. Pilih dalam menu utama "Perkhidmatan" - "Cari penyelesaian ...".

2. Dalam tetingkap dengan nama yang sama "Cari penyelesaian" yang muncul, kami membuat tetapan.

2.1. Kami menetapkan jumlah panjang sisa kepada fungsi objektif Lo Σ dan masukkan pautan dalam tetingkap sel sasaran.

2.2. Tetapkan suis "Equal:" kepada kedudukan "nilai minimum".

2.3. Nyatakan sel dengan pembolehubah Nz j dalam tetingkap Menukar Sel.

2.4. Kami memasukkan sekatan dalam tetingkap dengan nama yang sama. Sebagai syarat, kami menunjukkan keperluan untuk persamaan yang diberikan Nd i dan penyelesaian Nd icalc bilangan bahagian, serta pembolehubah Nz j- anggaran bilangan tempat kosong dengan memotong pilihan - kami mengenakan sekatan: ini mestilah integer.

3. Kami menekan butang "Parameter" dan dalam tetingkap "Parameter carian penyelesaian" yang muncul, kami membuat tetapan seperti yang ditunjukkan dalam tangkapan skrin berikut. Tutup tetingkap dengan butang OK.

4. Dalam tetingkap "Cari penyelesaian", klik butang "Jalankan" dan tunggu Excel mencari penyelesaian. Ini mungkin mengambil masa beberapa minit.

5. Selepas menyimpan penyelesaian yang ditemui dengan butang OK, hasilnya akan dipaparkan dalam sel H7 ... H24 pada helaian Excel.

Gambar berikut menunjukkan pelan pemotongan linear optimum yang ditemui.

Apakah keputusannya?

Pemotongan linear dalam Excel kosong untuk tugas seperti yang dibincangkan dalam artikel ini dilakukan dengan kaedah yang diterangkan di atas dalam 10-15 minit! "Secara manual", tanpa mengetahui kaedah indeks Kantorovich, anda tidak akan menemui penyelesaian dalam masa sedemikian.

Dengan menjalankan "Cari penyelesaian" beberapa kali dengan parameter carian yang berbeza, kami berjaya menemui 5 rancangan berbeza untuk menebang kosong. Kesemua 5 pelan memerlukan bilangan kosong yang sama - 93 dan memberikan hanya 2.21% pembaziran!!! Pelan ini hampir 6% lebih baik daripada pelan yang dikira oleh Pokrovsky dan lebih daripada 10% lebih menjimatkan daripada pelan "Tradisional" (lihat pautan ke sumber asal di bahagian pertama artikel). Keputusan yang sangat berbaloi telah dicapai dengan cepat dan tanpa menggunakan program yang mahal.

Perlu diingatkan bahawa add-in Excel Solver ("Cari penyelesaian"), yang menggunakan kaedah simplex semasa menyelesaikan masalah pengaturcaraan linear, boleh berfungsi dengan tidak lebih daripada 200 pembolehubah. Seperti yang digunakan untuk masalah pemotongan linear yang telah kami pertimbangkan, ini bermakna bilangan keratan tidak boleh melebihi 200 pilihan. Untuk tugasan mudah, ini sudah cukup. Untuk tugas yang lebih kompleks, anda harus cuba menggunakan "campuran" algoritma "tamak" dan kaedah Penyelesai simplex, memilih tidak lebih daripada 200 yang paling menjimatkan daripada senarai lengkap keratan. Kemudian kami menyimpan kesabaran dan mencapai hasil. Anda boleh cuba memecahkan masalah kompleks kepada beberapa masalah mudah, tetapi "tahap optimum" penyelesaian yang ditemui kemungkinan besar akan lebih rendah.

Mungkin pilihan yang dipertimbangkan untuk menyelesaikan isu pemotongan linear bukanlah "aerobatik", tetapi ia pasti satu langkah ke hadapan berbanding pendekatan "tradisional" dalam banyak industri.

Penggunaan add-in MS Excel "Search for a Solution" (Solver) telah pun dibincangkan di blog sekali dalam artikel. Saya fikir alat yang hebat ini patut diberi perhatian dan akan membantu lebih daripada sekali dengan anggun dan cepat menyelesaikan beberapa masalah baru yang bukan remeh.

P.S. Pautan kepada perisian pemotongan linear percuma terbaik yang saya temui di web:

http://stroymaterial-buy.ru/raschet/70-raskroy-lineynih-izdeliy.html

http://forum-okna.ru/index.php?app=core&module=attach§ion=attach &attach_id=7508

http://forum.dwg.ru/attachment.php?attachmentid=114501&d=13823277 74

http://www.planetcalc.ru/917/

Program pada dua pautan terakhir melaksanakan heuristik tamak dan melaksanakan sarang linear dalam tugasan daripada artikel, menggunakan sebanyak 103 tempat kosong. Penggunaan algoritma tamak adalah wajar dalam kes di mana perlu untuk mengurangkan jumlah masa operasi pemotongan dengan terlalu banyak pilihan pemotongan dalam pelan yang lebih optimum.

Di bawah artikel dalam blok "Ulasan", anda boleh menulis ulasan anda, pembaca yang dihormati.

Lihat Model Pengaturcaraan Linear untuk Masalah Bersarang.

Contoh #1. Produk syarikat kertas dihasilkan dalam bentuk gulungan kertas dengan lebar standard - 2 meter setiap satu. Atas pesanan khas pengguna, syarikat membekalkan gulungan saiz lain, yang mana gulungan standard dipotong. Pesanan biasa untuk gulungan saiz bukan standard diberikan dalam jadual.


Ia diperlukan untuk mencari kombinasi pilihan yang berbeza untuk memotong gulungan standard untuk memenuhi sepenuhnya pesanan yang diterima dengan kerugian minimum (sisa).
Mari kita pertimbangkan semua pilihan yang mungkin untuk memotong gulungan standard, kami akan memberikan data yang sepadan dalam Jadual.
Lebar Gulungan(m)Pilihan pemotongan gulungBilangan minimum gulungan
1 2 3 4 5 6
0,5 0 2 2 4 1 0 150
0,7 1 1 0 0 2 0 200
0,9 1 0 1 0 0 2 300
Sisa dalam m 0,4 0,3 0,1 0 0,1 0,2 -

Mari kita tentukan pembolehubah:
X j - bilangan gulung standard yang dipotong mengikut pilihan j, j=1, 2, 3,4,5, 6.
Had secara langsung berkaitan dengan keperluan untuk memastikan pengeluaran bilangan gulungan bukan standard yang diperlukan. Menggunakan data dalam jadual, kami mendapat:
2X 2 + 2 X 3 + 4 X 4 + X 5 \u003d 150 - bilangan gulungan 0.5 m lebar,
X 1 + X 2 + 2 X 5 \u003d 200 - bilangan gulungan 0.7 m lebar,
X 1 + X 3 + 2 X 6 \u003d 300 - bilangan gulungan 0.9 m lebar.

Ungkapan bagi jumlah kehilangan kertas (buangan) (dalam m) ialah
0.4X 1 + 0.3 X 2 + 0.1 X 3 + 0.1 X 5 + 0.2 X 6.

Oleh itu, model matematik am mempunyai bentuk
min f (x) \u003d 0.4 X 1 + 0.3X 2 + 0.1X 3 + 0.1X 5 + 0.2X 6.
dengan sekatan:
2X 2 + 2 X 3 + 4 X 4 + X 5 = 150
X 2 + X 2 + 2 X 5 = 200
X 2 + X 3 + 2 X 6 = 300

Masalah memotong bahan

Tugas ini adalah untuk membangunkan pelan sedemikian yang menyediakan set produk yang diperlukan dengan sisa minimum (panjang, luas, berat, kos, dll.) apabila memotong bahan atau menyediakan bilangan maksimum set produk. Contoh #2. Ia diperlukan untuk membangunkan pelan optimum untuk memotong kepingan keluli standard, memastikan pengeluaran bilangan kosong yang dirancang dari jenis yang berbeza dengan jumlah sisa minimum, jika diketahui bahawa empat jenis kosong yang berbeza mesti dipotong daripada kumpulan keluli kepingan. dalam jumlah bi (i = 1, 2, ..., 4) keping . Kepingan keluli bersaiz standard boleh dipotong dalam empat cara. Setiap kaedah pemotongan yang mungkin sepadan dengan carta pemotongan. Daripada carta pemotongan, keluaran bahan kerja dalam kepingan pelbagai jenis a ij (i = 1, 2,…4; j = 1,2,…,4), serta kawasan sisa cj (j = 1, 2 ,…,n) semasa memotong satu kepingan keluli mengikut kaedah pemotongan ke-j. Berapa banyak kepingan keluli mesti dipotong dalam satu cara atau yang lain supaya sisa adalah minimum?

Jadual 3

Jenis
kosong

Pelan tugas untuk bilangan tempat kosong (b 1)

Output kosong (pcs) pelbagai jenis
daripada carta bersarang (a ij)

1 2 3 4
1 240 1 4 0 1
2 200 1 0 4 0
3 120 1 0 0 3
4 140 1 1 0 3
Kawasan sisa, m 2
(cj)
1,4 0,1 2,1 0,1

Mari kita buat model ekonomi-matematik masalah tersebut. Mari kita nyatakan dengan x j - jumlah bahan sumber (kepingan keluli) yang mesti dipotong mengikut salah satu kaedah j. Kekangan dalam tugas mesti sesuai dengan keluaran yang dirancang bagi pelbagai jenis kosong. Fungsi objektif adalah untuk mencari sisa minimum semasa memotong

F=1.4 x 1 +0.1 x 2 +2.1 x 3 +0.1 x 4 →(min)..
Sekatan ke atas keluaran kosong jenis ke-i untuk semua kaedah pemotongan j:

Contoh #3. Untuk memotong (menggergaji, memproses) bahan satu sampel dibekalkan dalam jumlah unit. Ia dikehendaki membuat daripadanya l komponen berbeza dalam kuantiti yang berkadar dengan nombor b 1 , b 2 ,…,b l (keadaan kesempurnaan). Setiap unit bahan boleh dipotong dalam n cara yang berbeza, dan menggunakan kaedah ke-i (i = 1, 2,…,n) memberikan unit ik produk ke-k (k = 1, 2,…,l ). Ia adalah perlu untuk mencari pelan pemotongan yang menyediakan bilangan maksimum set.
Mari kita buat model ekonomi-matematik masalah tersebut.
Biarkan x i menyatakan bilangan unit bahan yang dipotong dengan kaedah ke-i, dan x bilangan set produk yang dikilang. Kemudian fungsi objektif dikurangkan kepada mencari

F=x→(maks),
dengan sekatan: dengan jumlah bahan yang sama dengan jumlah unitnya, dipotong dalam pelbagai cara; mengikut keperluan kesempurnaan dan bukan negatif pembolehubah.

Contoh #4. Syarikat itu mempunyai log panjang L m, yang mesti dipotong menjadi kepingan panjang l 1 , l 2 , l 3 m masing-masing dalam jumlah p 1 , p 2 , p 3.
Ia adalah perlu untuk merangka pelan optimum untuk memotong bahan, yang memastikan sisa minimum, tertakluk kepada pelan untuk pengeluaran kosong. Data awal diberikan dalam jadual.

Satu tugasanPanjangDimensi kosong, mBilangan kosong, pcs.
l 1l 2l 3p1p2p 3
68 6,5 2,1 2,3 1,4 600 720 900

Penyelesaian: Pertama, mari kita buat model matematik masalah kita. Pilihan pemotongan dan sisa yang mungkin untuk setiap daripadanya akan ditulis dalam bentuk jadual.
Panjang bahan kerjaPilihan pemotonganBilangan tempat kosong
1 2 3 4 5 6 7
2,1 3 2 2 1 1 0 0 600
2,3 0 1 0 1 0 2 1 720
1,4 0 0 1 1 3 1 3 900
Baki, m0,2 0 0,9 0,7 0,2 0,5 0

Nyatakan dengan x i bilangan kayu balak yang dipotong mengikut pilihan ke-i (i=1..7). Kemudian jumlah sisa sisa akan ditulis sebagai fungsi linear:
Z = 0.2x1 + 0x2 + 0.9x3 + 0.7x4 + 0.2x5 + 0.5x6 + 0x7
Pada masa yang sama, syarat untuk memenuhi rancangan dari segi bilangan tempat kosong mesti dipenuhi, i.e.
3x1 + 2x2 + 2x3 + x4 + x5 = 600
x2 + x4 + 2x6 + x7 = 720
x 3 + x 4 + 3x 5 + x 6 + 3x 7 = 900

Oleh itu, untuk menyelesaikan masalah yang dinyatakan, adalah perlu untuk mencari minZ di bawah sekatan. Oleh kerana minZ = -max(-Z(x)), maka bukannya masalah pengecilan fungsi, kami akan menyelesaikan masalah pemaksimuman fungsi:
Z = -(0.2x 1 + 0x 2 + 0.9x 3 + 0.7x 4 + 0.2x 5 + 0.5x 6 + 0x 7)

Contoh nombor 5. Untuk menjahit satu produk, anda perlu memotong 6 bahagian dari kain. Di kilang pakaian, dua pilihan untuk memotong fabrik telah dibangunkan. Jadual (terletak di bawah) menunjukkan ciri-ciri pilihan pemotongan untuk 10 m 2 fabrik, kesempurnaan, i.e. bilangan bahagian jenis tertentu yang diperlukan untuk menjahit satu produk. Bekalan bulanan kain untuk produk jahitan jenis ini ialah 405 m 2 . Pada petang yang akan datang, ia dirancang untuk menjahit 90 item.
Bina model matematik masalah yang membolehkan anda melengkapkan pelan jahitan dengan jumlah sisa minimum pada bulan berikutnya.

Jadual - Ciri-ciri pilihan untuk memotong kepingan fabrik 10m 2

Pilihan pemotongan Bilangan bahagian, kepingan/potongan Sisa, m 2 / potong
1 2 3 4 5 6
1 60 0 90 40 70 90 0,5
2 80 35 20 78 15 0 0,35
Kelengkapan, sekeping/produk 1 2 2 2 2 2

Pernyataan matematik masalah

Pembolehubah Tugas
Dalam masalah ini, nilai yang diperlukan tidak dinyatakan secara jelas, tetapi dikatakan bahawa rancangan bulanan untuk menjahit 90 produk mesti diselesaikan. Untuk menyesuaikan 90 produk sebulan, ia dikehendaki memotong bilangan bahagian yang ditetapkan dengan ketat. Potongan dibuat daripada kepingan fabrik 10 m 2 dalam dua cara berbeza, yang membolehkan anda mendapatkan nombor butiran yang berbeza. Oleh kerana tidak diketahui terlebih dahulu berapa banyak kain yang akan dipotong dengan cara pertama dan berapa banyak dalam cara kedua, maka sebagai nilai yang dikehendaki, anda boleh menetapkan bilangan segmen kain 10 m 2 dipotong dengan setiap kaedah:
x 1 - bilangan kepingan kain 10m 2, dipotong dengan kaedah pertama pada bulan itu, [potong / bulan];
x 2 - bilangan kepingan kain, 10m 2 setiap satu, dipotong dengan kaedah pertama pada bulan itu, [potong / bulan];

Fungsi objektif
Matlamat menyelesaikan masalah adalah untuk memenuhi rancangan dengan jumlah pembaziran yang minimum. Oleh kerana bilangan produk dirancang dengan ketat (90 pcs/bulan), parameter ini tidak menggambarkan CF, tetapi merujuk kepada kekangan, kegagalan yang bermakna masalah itu belum diselesaikan. Dan kriteria untuk keberkesanan pelaksanaan rancangan adalah parameter "jumlah sisa", yang mesti diminimumkan. Oleh kerana apabila memotong satu bahagian (10 m 2) kain mengikut pilihan pertama, 0.5 m 2 sisa diperoleh, dan mengikut pilihan ke-2 - 0.35 m 2 (lihat jadual 1), jumlah sisa semasa memotong ( CF) mempunyai pandangan
L(x) = 0.5x1 + 0.35x2 = min,

Sekatan
Bilangan potongan fabrik dalam pelbagai cara dihadkan oleh syarat berikut:

  • Pelan untuk produk jahitan mesti dilengkapkan, dengan kata lain, jumlah bahagian yang dipotong mestilah sedemikian sehingga 90 produk sebulan boleh dijahit daripadanya, iaitu: mesti ada sekurang-kurangnya 90 daripada jenis pertama dan bahagian jenis lain. - sekurang-kurangnya 180 (lihat kelengkapan dalam jadual).
  • Penggunaan fabrik tidak boleh melebihi stok bulanan di gudang;
  • Bilangan kepingan kain potong tidak boleh negatif.
Sekatan pada rancangan untuk menjahit kot mempunyai bentuk kemasukan yang bermakna berikut.
(Jumlah bilangan bahagian No. 1 potong untuk semua pilihan) ≥ (90 keping);
(Jumlah bilangan bahagian No. 2 yang dipotong untuk semua pilihan) ≥ (180 keping);
(Jumlah bilangan bahagian No. 6 yang dipotong untuk semua pilihan) ≥ (180 keping);

Secara matematik, sekatan ini ditulis sebagai :
60x1 + 80x2 ≥90;
35x2 ≥180;
90x1 + 20x2 ≥180;
40x1 + 78x2 ≥180;
70x1 + 15x2 ≥180;
90x1 ≥180;

Had penggunaan tisu mempunyai bentuk rakaman berikut:
bermakna
(jumlah potongan kain sebulan)≤ (405m2)
matematik
x 1 + x 2 ≤405/10

Bukan negatif bilangan segmen potong diberikan dalam bentuk
x 1 ≥ 0, x 2 ≥ 0

Oleh itu, model matematik masalah mempunyai bentuk
L(x) \u003d 0.5x 1 + 0.35x 2 \u003d min [m 2 sisa / bulan],
60x1 + 80x2 ≥90;
35x2 ≥180;
90x1 + 20x2 ≥180;
40x1 + 78x2 ≥180;
70x1 + 15x2 ≥180;
90x1 ≥180;
x 1 + x 2 ≤40.5
x 1 ≥ 0, x 2 ≥ 0

Contoh nombor 6. Terdapat 69 paip untuk rangkaian pemanasan, 1070 cm setiap satu. Mereka mesti dipotong menjadi paip 130, 150 dan 310 cm Cari pilihan sedemikian untuk memotong paip masuk, di mana sisanya akan menjadi minimum.

Peringkat 1. Kami menentukan pilihan untuk pemotongan paip yang optimum.

Pilihan pemotongan 1 2 3 4 5 6 7 8 9 10 11 12 13
310 3 2 2 2 2 1 1 1 1 0 0 0 0
150 0 3 2 1 0 3 2 1 0 3 2 1 0
130 1 0 1 2 3 2 3 4 5 4 5 7 8
Kekal 10 0 20 40 60 50 70 90 110 100 120 10 30

Peringkat 2.
Mari kita buat model ekonomi-matematik masalah tersebut. Mari kita nyatakan dengan x j - bilangan paip yang perlu dipotong mengikut salah satu cara j. Fungsi objektif adalah untuk mencari sisa minimum semasa memotong:
10x 1 + 20x 3 + 40x 4 + 60x 5 + 50x 6 + 70x 7 + 90x 8 + 110x 9 + 100x 10 + 120x 11 + 10x 12 + 30x 13 → min

x 1 + x 3 + x 4 + x 5 + x 6 + x 7 + x 8 + x 9 + x 10 + x 11 + x 12 + x 13 = 69

Jawapan: hanya pilihan pemotongan kedua harus digunakan (sifar sisa)

Program ini direka untuk mengoptimumkan pemotongan profil dan bahan panjang lain (bar, log, paip, ambang tingkap).
Algoritma "penimbunan padat" digunakan, iaitu, produk yang diambil diletakkan pada baki terpendek bahan kerja di mana ia diletakkan. Jika ia tidak muat di mana-mana, kosong baru diambil. Tugas pengoptimuman adalah untuk mencari urutan produk di mana lebih sedikit tempat kosong akan digunakan dan panjang pemangkasan perniagaan akan lebih panjang. Pada ukuran pertama, item diletakkan pada cambuk dalam susunan rawak. Terdapat "penduduk awal". Dalam proses penyelesaian, populasi bermutasi dan membiak, spesimen yang tidak berjaya mati, dan yang terbaik terus berkembang. Segala-galanya, seperti dalam dunia haiwan dan tumbuhan + pemilihan buatan.

Demo langsung di tapak


Mulakan

Kelebihan

  • Windowsoft:cutting menyediakan peta potong berkualiti tinggi. Banyak pelaksanaan mengesahkan faktor pemotongan sebenar tidak lebih daripada 1% apabila mengoptimumkan kelompok daripada 30 kontur (~120 potongan)
  • Untuk membaca data awal dan merekodkan hasil pemotongan, program ini menggunakan format fail teks mudah, yang memudahkan penyepaduan dengan sistem perakaunan yang dilaksanakan oleh pelanggan
  • Jika perlu, sarang boleh dilakukan di bawah Linux atau OS X dalam penyemak imbas atau parameter lulus Node.js melalui url, soket web atau objek javascript

Algoritma pengoptimum linear

Windowsoft:Pemotongan menggunakan algoritma genetik. Intipatinya adalah ini:
Mari kita panggil setiap pengedaran produk dengan cambuk sebagai penyelesaian. Mari kita tentukan fungsi objektif yang membolehkan kita membandingkan kualiti penyelesaian. Mari kita bentuk beberapa penyelesaian sewenang-wenangnya, panggil mereka generasi. Mari kita tentukan peraturan untuk mendapatkan generasi akan datang. Kejadian dengan fungsi objektif terbaik memindahkan kebanyakan "kolam gen" mereka, ini ialah "pemilihan buatan" kami. Kini ia kekal untuk membiarkan sistem itu sendiri, biarkan ia bermutasi dan mengoptimumkan hasil pemotongan
Semasa proses pembangunan, kaedah "Monte Carlo" telah diuji, apabila "kejadian" kami adalah rawak dan tidak bergantung antara satu sama lain, dan "Algoritma semut" (pengoptimuman koloni semut ACO). Semua kaedah terbukti agak cekap, tetapi algoritma genetik ternyata lebih cekap sedikit.

Pilihan penghantaran

Terdapat dua pilihan penghantaran untuk Windowsoft:modul pemotongan pemotongan - sebagai sebahagian daripada penyelesaian bersepadu untuk Pengurusan Pengeluaran Tersuai dan sebagai fail boleh laku yang berasingan. Interaksi dengan program pemotongan dalam senario pertama disembunyikan sepenuhnya daripada pengguna. Operator berfungsi dengan dokumen 1C standard:

  • Berdasarkan pesanan pelanggan, pelan pengeluaran dibentuk
  • Berdasarkan rancangan - anjakan tugas dengan senarai produk dan bahan yang diperlukan
  • Bersarang dioptimumkan dalam susunan pengeluaran
  • Dalam proses pengoptimuman, program ini mengeluarkan trim perniagaan daripada kerja yang sedang dijalankan dan meletakkan trim perniagaan yang baru dibentuk di gudang selular
  • Kerja syif mampu mencetak borang pemotongan untuk pengeluaran manual atau menjana fail untuk mesin CNC
  • Selain itu, label untuk produk potong dan skema susun atur untuk troli dan piramid dicetak daripada kerja syif.
  • Atas dasar tugas pengeluaran, keperluan dibentuk - invois untuk pemindahan bahan ke bengkel, dengan mengambil kira keperluan dan pembungkusan standard

Antara Muka Perisian (Linear Nesting API)

Fail data input, setup.ini, diletakkan dalam folder dengan fail boleh laku.
Fail data output - result.txt, resultproduct.txt dan resultstick.txt - dijana dalam folder yang sama.
Anda boleh memuat turun fail dengan Oknosoft:memotong data demo daripada pautan di hujung halaman. Fail menggunakan tag berikut:

  • Outputvariant - struktur fail output fail. Nilai yang mungkin: tab, oknosoft, oknosoft lalai
    • Dalam pilihan "oknosoft", fail resultproduct.txt dan resultstick.txt dijana dengan maklumat tentang peletakan produk pada tempat kosong dan trim yang terhasil
    • Varian "tab" memaparkan lima nilai yang dipisahkan oleh aksara "tab": panjang produk, nombor cambuk, panjang cambuk, nombor potong dan baki bahan kerja
  • Algoritma - algoritma yang digunakan. Nilai yang mungkin: rawak, konservatif, genetik, genetik lalai
    • Rawak - pemilihan pilihan secara rawak
    • Konservatif - contoh lelaran seterusnya datang daripada "ibu bapa" yang sama
    • Genetik - daripada dua ibu bapa
  • Variasi - kebolehubahan, parameter algoritma "konservatif" dan "genetik". Semakin tinggi, semakin kurang anak "serupa" dengan ibu bapa. Lalai ialah 1.
  • Generasi - bilangan lelaran algoritma, lalai 40000
  • Orang - bilangan "kejadian" dalam "populasi", bilangan penyelesaian yang digunakan dalam satu lelaran. Algoritma "rawak" hanya melakukan generasi*orang lelaran dengan satu contoh (penyelesaian)
  • KnifeWidth - lebar gergaji
  • StickLength - panjang kayu baru
  • Produk - panjang produk
  • Serpihan - panjang sekerap yang digunakan dalam sarang
  • Wrongsnipmin - panjang minimum swatch "buruk".
  • Wrongsnipmax - panjang maksimum potongan "buruk".
    Hasil pengoptimuman tidak akan mempunyai keratan dengan panjang antara Wrongsnipmin dan Wrongsnipmax

Potong pasangan

Digunakan semasa menyediakan data untuk mesin yang menyokong menggergaji pasangan. Dalam kes ini, dua cambuk profil diletakkan di dalam mesin sekaligus, dan dalam satu kitaran pemotongan, dua produk separuh siap yang serupa terbentuk.

Tugas pemotongan berpasangan diselesaikan dengan mengumpulkan data sebelum memindahkannya ke program pengoptimuman dan kemudian menduplikasi hasil pemotongan kepada pasangan produk dan bahan kerja. Apabila bersarang di dalam UPZP, sistem mengambil kira sifat tatanama dan menggunakan pemotongan tunggal atau berpasangan, bergantung pada keupayaan mesin pemotong

Memotong sejumlah besar produk

Di satu pihak, untuk mencapai kualiti pengoptimuman yang tinggi, sejumlah besar produk dengan panjang yang berbeza mesti diterima pada input program supaya pengoptimum mempunyai "apa yang hendak diisih". Sebaliknya, dengan kelompok yang sangat besar, kebarangkalian untuk mencari maksimum pada bilangan lelaran tetap penghitungan berkurangan. Eksperimen telah menunjukkan bahawa kumpulan 60-120 kosong adalah optimum (yang sepadan dengan kitaran pengeluaran 30-60 produk dengan pemotongan berpasangan). Jika anda perlu mengoptimumkan lebih daripada 120 bahan kerja, hasil terbaik boleh dicapai dengan membahagikan masalah kepada N bahagian dan melakukan pengoptimuman berturut-turut untuk setiap bahagian. Memproses pembentukan kelompok tugas pengeluaran dapat mengumpulkan produk mengikut jenis profil dan memilih produk dengan penyebaran maksimum ke dalam tugas anjakan, menyelamatkan operator daripada kerja rutin menyusun dokumen pengeluaran

Muat turun contoh pemotongan dan dokumentasi

  • Tunjukkan kad potong tunggal dan dua kali: 60.01 Helaian pemotongan
  • Dokumentasi dan contoh fail:

Garis Pemotongan - Program untuk pemotongan linear

Versi: 2.49


Kedalaman bit: 32bit


Tabletka: Sembuh


Apabila membangunkan bahagian algoritma program, prinsip pengecilan sisa telah dipilih sebagai kriteria utama, dan apabila membangunkan bahagian antara muka, penulis berusaha untuk menjadikan atur cara mudah dan mudah digunakan setiap hari.

Program pemotongan optimum kosong linear kepada bahagian

Program ini mempunyai fungsi dan ciri berikut:











Senarai harga kami termasuk tiga produk yang berkaitan dengan tema biasa pengisihan dan pengoptimuman:

  • Program pemotongan linear untuk profil dan bahan panjang
  • Program untuk memotong dua dimensi kaca, sandwic, papan serpai dan bahan kepingan lain
  • Program pengoptimuman laluan untuk menyelesaikan masalah logistik

Modul bersarang boleh dibekalkan sebagai sebahagian daripada penyelesaian bersepadu Windowsoft: Pengurusan Pengeluaran Tersuai dan sebagai program berasingan. Apabila memanggil program pemotongan daripada 1C, tiada import diperlukan - eksport data ke fail perantaraan. Pengguna bekerja dalam antara muka standard, dan semua kehalusan interaksi 1C dengan pengoptimum luaran melakukan pemprosesan pengisian bahagian jadual. Untuk tujuan perakaunan baki inventori, pemangkasan perniagaan dan bahan dalam pengeluaran, dokumen standard dan daftar konfigurasi 1C biasa digunakan.

Pemotongan linear (profil, paip, log)

Menyediakan peratusan tanaman yang disahkan inventori

Demo langsung di tapak

Contoh di bawah bukanlah imej statik, tetapi aplikasi web yang berfungsi.
Anda boleh mula memotong profil dengan butang Mulakan, tetapkan dimensi produk dan bahan kerja anda, tukar tetapan pengoptimuman dan nilai penyelesaiannya.
Sudah tentu, pengoptimum dalam penyemak imbas adalah lebih perlahan daripada program asli, tetapi ia membolehkan anda mendapatkan hasil yang boleh dilaksanakan secara percuma tanpa perlu memuat turun dan memasang apa-apa pada komputer anda.

20000 r.

Memotong bahan kaca dan kepingan

Menghasilkan carta pemotongan kualiti tertinggi. Menyediakan peratusan penjimatan bahan yang hampir dengan had teori. 10-12% lebih tinggi daripada program popular Opty-Way, MaxCut, PerfectCut, Cutting, dsb. dalam penunjuk seperti kawasan sisa yang tidak berfungsi, jumlah luas bahan yang dipotong dan bilangan keseluruhan helaian digunakan

Semua algoritma bersarang 2D telah dibangunkan oleh OOO Programs of Cutting, Novosibirsk, pembangun: Shilyaev Vladimir Genrikhovich. Oknosoft ialah pengedar rasmi pembangun dan, di bawah perjanjian sublesen, mempunyai hak untuk kedua-duanya menjual program sebagai produk berasingan dan menggunakannya sebagai sebahagian daripada perkembangan kami

40000 r.

Mengapa mengoptimumkan sarang dalam program?

Ramai pelanggan berkata: "Saya mempunyai penggergaji yang baik. Dia memotong kaca dan profil di kepala dengan sempurna. Hanya segi tiga yang masuk ke dalam sampah."
Selalunya, ini adalah benar. Pada masa yang sama, salah satu tugas pemimpin adalah untuk mengatur proses yang boleh diramal, kestabilan yang tidak bergantung pada genius para penghibur. Pengoptimuman pemotongan perisian berdasarkan rancangan pengeluaran adalah salah satu langkah yang mendekatkan matlamat ini.

Jika kita mengandaikan bahawa seseorang boleh melalui lebih banyak kombinasi dalam kepalanya daripada komputer dalam tempoh masa yang sama, pekali pemotongan ~1% yang diperolehi dengan pemotongan automatik akan kelihatan lebih menarik daripada 1% tidak terkawal dan tidak terurus yang boleh disediakan oleh Genius. Memindahkan tugas pengoptimuman ke program boleh mengosongkan masa tambahan (1-2 jam sehari), yang akan dia belanjakan untuk manfaat perniagaan.

Malah, keadaan pemangkasan dalam kebanyakan perusahaan adalah lebih teruk. Pekali urutan 4-7% diletakkan dalam spesifikasi, dan jika bengkel berfungsi dengan pemangkasan 3-5%, ini dianggap hasil yang baik. Pengurangan 3-5% dalam faktor tanaman sebenar ialah 30-50 ribu rubel yang disimpan untuk setiap juta yang dibelanjakan untuk bahan. Namun, ini akan memungkinkan untuk tidak memasukkan rubel tambahan dalam kos yang dirancang dan menawarkan pembeli harga yang lebih menguntungkan.

Masalah penggunaan bahan yang optimum terdiri daripada beberapa bahagian.

Perakaunan gudang bahan yang diukur

Bergantung pada ciri perniagaan, pelanggan menggunakan beberapa skim perakaunan untuk bahan:

  • Berdasarkan rancangan pengeluaran, keperluan dibentuk - invois yang menunjukkan produk. Pengeluaran bahan tambahan (tidak mencukupi) ditunjukkan dalam dokumen berasingan. Petunjuk produk dalam dokumen ini adalah wajar, tetapi bukan syarat yang diperlukan. Dalam kes ini, hanya bahan yang berada dalam spesifikasi produk yang dikeluarkan hari ini dan hanya dalam kuantiti yang diperlukan dikeluarkan kepada bengkel. Kelemahan pendekatan ini ialah keperluan untuk menyediakan lebih banyak dokumen dan kekurangan stok bahan di tapak (mungkin ini satu kelebihan?)
  • Keperluan - invois dijana secara tidak segerak, tanpa merujuk kepada rancangan pengeluaran, berdasarkan permintaan tuan. Pendekatan ini membolehkan anda mendapatkan "gudang langsung" dengan kos pengendali minimum untuk penjaga stor, tetapi tidak melindungi daripada perbelanjaan berlebihan bahan. Tanggungjawab keseluruhan untuk pematuhan penggunaan dengan spesifikasi terletak pada kes ini dengan tuan dan pekerja. Analisis kos pelan-fakta akan menunjukkan penyelewengan, tetapi mungkin sudah terlambat

Perakaunan untuk trim perniagaan

Ia adalah mungkin dalam senario di mana keperluan - invois dijana berdasarkan rancangan pengeluaran. Selebihnya pemangkasan perniagaan pada permulaan pemotongan diambil dari daftar khas dan boleh diselaraskan oleh pengendali mengikut baki sebenar. Semasa menjalankan tugasan pengeluaran, data mengenai jumlah bahan yang perlu diterima dari gudang diletakkan dalam keperluan - invois, dan data mengenai pemangkasan perniagaan yang terhasil ditambah kembali ke daftar.

Interaksi penghibur

Apabila memutuskan sama ada untuk menggunakan pengoptimum bersarang, pertimbangkan:

  • Dengan pemotongan automatik, adalah mustahil untuk mengatur kimpalan (pemasangan) produk "dari bawah gergaji", kerana segmen yang berkaitan dengan satu produk akan "berselerak" di seluruh peta pengoptimuman
  • Kitaran pengeluaran semakin panjang, ia diperlukan untuk mengatur kolam untuk menyimpan kosong. Kompromi adalah memotong dalam kelompok 30 - 50 keping. Pada masa yang sama, kadar pemotongan yang tinggi dicapai dan pemuatan seragam kawasan kimpalan dan kelengkapan diperolehi.
  • Kecekapan kedai boleh bertindak balas terhadap perubahan dalam pelan dikurangkan. Jika pengurus perlu memasukkan produk baharu ke dalam rancangan hari ini, ini akan memburukkan hasil pengoptimuman.

Perisian pemotongan linear

Versi: 2.49
Pemaju: Shibaev Yury Anatolyevich Ukraine, Cherkasy
Tapak pembangun: http://www.cuttinghome.com/
Kedalaman bit: 32bit
Serasi dengan Windows 7: ya
Bahasa antara muka: Inggeris + Rusia
Tabletka: Sembuh
Keperluan Sistem: Minimum
Penerangan: Program CUTTING direka untuk pemotongan optimum bahan kepada bahagian linear. Program ini boleh digunakan dalam kerja kayu, pengeluaran perabot, pemotongan logam, pemotongan kaca, dll. Program ini adalah berdasarkan algoritma berkelajuan tinggi yang unik yang membolehkan anda memotong dengan cepat dengan sisa yang minimum.



Apabila membangunkan bahagian algoritma program, prinsip pengecilan sisa telah dipilih sebagai kriteria utama, dan apabila membangunkan bahagian antara muka, penulis berusaha untuk menjadikan atur cara mudah dan mudah digunakan setiap hari.
Program ini mempunyai fungsi dan ciri berikut:
. menetapkan bilangan bahan kerja dan segmen yang sewenang-wenangnya untuk dipotong
. menetapkan kosong dan segmen mengikut ciri-ciri tertentu, contohnya, nama dan warna
. pengiraan dengan mengambil kira jenis bahan (nama bahan, warna)
. menetapkan lebar alat pemotong
. pengiraan jumlah panjang segmen dan sisa
. menetapkan mod pemotongan yang berbeza
. memulihkan sarang sebelumnya pada sesi semasa
. menyimpan bahan kerja dan potongan yang ditentukan sebagai spesifikasi
. menambahkan BOM yang disimpan pada pilihan analisis baharu
. menyimpan sarang ke fail dengan kemungkinan pemulihan kemudian
. melihat dan mencetak hasil pemotongan, dalam bentuk grafik dan jadual
. sistem maklumat rujukan yang lengkap.

Senarai harga kami termasuk tiga produk yang berkaitan dengan tema biasa pengisihan dan pengoptimuman:

  • Program pemotongan linear untuk profil dan bahan panjang
  • Program untuk memotong dua dimensi kaca, sandwic, papan serpai dan bahan kepingan lain
  • Program pengoptimuman laluan untuk menyelesaikan masalah logistik

Modul bersarang boleh dibekalkan sebagai sebahagian daripada penyelesaian bersepadu Windowsoft: Pengurusan Pengeluaran Tersuai dan sebagai program berasingan. Apabila memanggil program pemotongan daripada 1C, tiada import diperlukan - eksport data ke fail perantaraan. Pengguna bekerja dalam antara muka standard, dan semua kehalusan interaksi 1C dengan pengoptimum luaran melakukan pemprosesan pengisian bahagian jadual. Untuk tujuan perakaunan baki inventori, pemangkasan perniagaan dan bahan dalam pengeluaran, dokumen standard dan daftar konfigurasi 1C biasa digunakan.

Pemotongan linear (profil, paip, log)

Menyediakan peratusan tanaman yang disahkan inventori<1%. Ряд клиентов приобрели наши алгоритмы для замены программ оптимизации, поставлявшихся производителями отрезных станков. В программе использован алгоритм плотной укладки и генетический алгоритм поиска решения. На вход поступают данные о количестве и размерах изделий и деловых отходов. На выходе формируются карты раскроя с указанием тележек и ячеек. При необходимости, формируются файлы для обрабатывающих центров, станков с ЧПУ и этикетки с подробной информацией об отрезаемой заготовке и примыкающих элементах.

Demo langsung di tapak

Contoh di bawah bukanlah imej statik, tetapi aplikasi web yang berfungsi.
Anda boleh mula memotong profil dengan butang Mulakan, tetapkan dimensi produk dan bahan kerja anda, tukar tetapan pengoptimuman dan nilai penyelesaiannya.
Sudah tentu, pengoptimum dalam penyemak imbas adalah lebih perlahan daripada program asli, tetapi ia membolehkan anda mendapatkan hasil yang boleh dilaksanakan secara percuma tanpa perlu memuat turun dan memasang apa-apa pada komputer anda.

20000 r.

Memotong bahan kaca dan kepingan

Menghasilkan carta pemotongan kualiti tertinggi. Menyediakan peratusan penjimatan bahan yang hampir dengan had teori. 10-12% lebih tinggi daripada program popular Opty-Way, MaxCut, PerfectCut, Cutting, dsb. dalam penunjuk seperti kawasan sisa yang tidak berfungsi, jumlah luas bahan yang dipotong dan bilangan keseluruhan helaian digunakan

Semua algoritma bersarang 2D telah dibangunkan oleh OOO Programs of Cutting, Novosibirsk, pembangun: Shilyaev Vladimir Genrikhovich. Oknosoft ialah pengedar rasmi pembangun dan, di bawah perjanjian sublesen, mempunyai hak untuk kedua-duanya menjual program sebagai produk berasingan dan menggunakannya sebagai sebahagian daripada perkembangan kami

40000 r.

Mengapa mengoptimumkan sarang dalam program?

Ramai pelanggan berkata: "Saya mempunyai penggergaji yang baik. Dia memotong kaca dan profil di kepala dengan sempurna. Hanya segi tiga yang masuk ke dalam sampah."
Selalunya, ini adalah benar. Pada masa yang sama, salah satu tugas pemimpin adalah untuk mengatur proses yang boleh diramal, kestabilan yang tidak bergantung pada genius para penghibur. Pengoptimuman pemotongan perisian berdasarkan rancangan pengeluaran adalah salah satu langkah yang mendekatkan matlamat ini.

Jika kita mengandaikan bahawa seseorang boleh melalui lebih banyak kombinasi dalam kepalanya daripada komputer dalam tempoh masa yang sama, pekali pemotongan ~1% yang diperolehi dengan pemotongan automatik akan kelihatan lebih menarik daripada 1% tidak terkawal dan tidak terurus yang boleh disediakan oleh Genius. Memindahkan tugas pengoptimuman ke program boleh mengosongkan masa tambahan (1-2 jam sehari), yang akan dia belanjakan untuk manfaat perniagaan.

Malah, keadaan pemangkasan dalam kebanyakan perusahaan adalah lebih teruk. Pekali urutan 4-7% diletakkan dalam spesifikasi, dan jika bengkel berfungsi dengan pemangkasan 3-5%, ini dianggap hasil yang baik. Pengurangan 3-5% dalam faktor tanaman sebenar ialah 30-50 ribu rubel yang disimpan untuk setiap juta yang dibelanjakan untuk bahan. Namun, ini akan memungkinkan untuk tidak memasukkan rubel tambahan dalam kos yang dirancang dan menawarkan pembeli harga yang lebih menguntungkan.

Masalah penggunaan bahan yang optimum terdiri daripada beberapa bahagian.

Perakaunan gudang bahan yang diukur

Bergantung pada ciri perniagaan, pelanggan menggunakan beberapa skim perakaunan untuk bahan:

  • Berdasarkan rancangan pengeluaran, keperluan dibentuk - invois yang menunjukkan produk. Pengeluaran bahan tambahan (tidak mencukupi) ditunjukkan dalam dokumen berasingan. Petunjuk produk dalam dokumen ini adalah wajar, tetapi bukan syarat yang diperlukan. Dalam kes ini, hanya bahan yang berada dalam spesifikasi produk yang dikeluarkan hari ini dan hanya dalam kuantiti yang diperlukan dikeluarkan kepada bengkel. Kelemahan pendekatan ini ialah keperluan untuk menyediakan lebih banyak dokumen dan kekurangan stok bahan di tapak (mungkin ini satu kelebihan?)
  • Keperluan - invois dijana secara tidak segerak, tanpa merujuk kepada rancangan pengeluaran, berdasarkan permintaan tuan. Pendekatan ini membolehkan anda mendapatkan "gudang langsung" dengan kos pengendali minimum untuk penjaga stor, tetapi tidak melindungi daripada perbelanjaan berlebihan bahan. Tanggungjawab keseluruhan untuk pematuhan penggunaan dengan spesifikasi terletak pada kes ini dengan tuan dan pekerja. Analisis kos pelan-fakta akan menunjukkan penyelewengan, tetapi mungkin sudah terlambat

Perakaunan untuk trim perniagaan

Ia adalah mungkin dalam senario di mana keperluan - invois dijana berdasarkan rancangan pengeluaran. Selebihnya pemangkasan perniagaan pada permulaan pemotongan diambil dari daftar khas dan boleh diselaraskan oleh pengendali mengikut baki sebenar. Semasa menjalankan tugasan pengeluaran, data mengenai jumlah bahan yang perlu diterima dari gudang diletakkan dalam keperluan - invois, dan data mengenai pemangkasan perniagaan yang terhasil ditambah kembali ke daftar.

Interaksi penghibur

Apabila memutuskan sama ada untuk menggunakan pengoptimum bersarang, pertimbangkan:

  • Dengan pemotongan automatik, adalah mustahil untuk mengatur kimpalan (pemasangan) produk "dari bawah gergaji", kerana segmen yang berkaitan dengan satu produk akan "berselerak" di seluruh peta pengoptimuman
  • Kitaran pengeluaran semakin panjang, ia diperlukan untuk mengatur kolam untuk menyimpan kosong. Kompromi adalah memotong dalam kelompok 30 - 50 keping. Pada masa yang sama, kadar pemotongan yang tinggi dicapai dan pemuatan seragam kawasan kimpalan dan kelengkapan diperolehi.
  • Kecekapan kedai boleh bertindak balas terhadap perubahan dalam pelan dikurangkan. Jika pengurus perlu memasukkan produk baharu ke dalam rancangan hari ini, ini akan memburukkan hasil pengoptimuman.

Program untuk mengoptimumkan pemotongan bahan

Katalog ini termasuk pautan ke beberapa program komputer domestik untuk mengoptimumkan pemotongan bahan.dan beberapa penerbitan mengenai topik ini.

Kaedah pengoptimuman pemotongan bahan adalah berdasarkan kerja "Pengiraan pemotongan rasional bahan industri", 1951, yang ditulis oleh saintis Soviet LV Kantorovich dan VA Zalgaller, di mana algoritma pengaturcaraan linear dibentangkan secara sistematik, dan juga pengaturcaraan dinamik untuk masalah itu. diterangkan tentang memotong dan menggabungkannya dengan algoritma pengaturcaraan linear.

Sebilangan besar program pengoptimuman pemotongan telah dibangunkan di dunia, kedua-duanya bersifat umum dan khas semata-mata. Di bawah ialah pautan ke program yang tersedia untuk dimuat turun daripada tapak web pembangun. Terdapat juga penerangan tentang mereka.

memotong
program ini direka untuk penyusunan automatik peta pemotongan optimum untuk bahan lembaran dan gulungan,

contohnya, papan serpai, MLF (dalam pembuatan perabot), kaca atau apa-apa bahan kepingan atau gulungan lain. Membolehkan anda mendapatkan kad bersarang dengan cekap dan cepat dengan peratusan hasil yang besar. Berbayar, demo tersedia
tapak pembangun
http://picaro.ru
Astra Cutting
program ini direka untuk mengoptimumkan pemotongan bahan lembaran (
papan partikel, logam, kaca dan plastik ). Astra Nesting menyediakan input maklumat pantas tentang pesanan dan bahan; penjanaan carta pemotongan automatik dan manual; perakaunan penuh sisa dimensi dan pemotongannya dalam pesanan berikutnya; percetakan carta pemotongan dan spesifikasi. Dibayar
tapak pembangun http://www.astrapro.ru Pemotongan asas
program untuk penciptaan automatik peta untuk memotong bahan lembaran, yang menggabungkan lokasi optimum kontur bahagian segi empat tepat dalam dimensi tertentu bahan sumber dengan kelajuan pengiraan yang tinggi. Ia adalah sebahagian daripada kompleks Basis - Constructor - Furniture Maker.
Berbayar, demo tersedia
tapak pembangun http://www.bazissoft.ru Memotong
program keluarga CUTTING direka untuk pemotongan optimum bahan kepada bahagian segi empat tepat atau linear. Program ini boleh digunakan dalam kerja kayu, pengeluaran perabot, pemotongan logam, pemotongan kaca, dll. Program ini adalah berdasarkan algoritma berkelajuan tinggi yang unik yang membolehkan anda memotong dengan cepat dengan sisa yang minimum. Berbayar, demo tersedia
tapak pembangun http://www.cuttinghome.com
garis pemotongan
program ini direka bentuk untuk pemotongan optimum kosong linear ke dalam segmen linear pelbagai panjang dan boleh digunakan dalam industri kerja kayu dan pulpa dan kertas, kerja logam, pengeluaran pakaian, dsb.
Berbayar, demo tersedia
tapak pembangun http://www.cuttinghome.com

PaneCut ialah program untuk mengoptimumkan pemotongan bahan lembaran dan linear, yang membolehkan anda mengurangkan peratusan bahan buangan yang digunakan dengan ketara.Berbayar, demo tersedia
tapak pembangun http://www.vsgroup.ua
NCL- P Program pemotongan automatik bahan lembaran untuk butiran sebarang konfigurasi. Pembangun Polevov A.V.Percuma
laman web program http://freesoft.ru/ncl_v13
Optimum
program untuk memotong bahan secara optimum kepada bahagian segi empat tepat.
Perisian kongsi
tapak pembangun http://wincad.ru

Pembuat Perabot Bazis
kompleks program yang saling berkaitan yang membolehkan anda mengatur pengeluaran perabot kabinet secara individu atau bersiri di mana-mana perusahaan: daripada gergasi perabot kepada usahawan individu. Komposisi sistem: Asas-Pembuat Perabot (asas), Asas-Keratan, Asas-Anggaran, Asas-Dalaman.

Berbayar, demo tersedia
tapak pembangun http://www.bazissoft.ru
bCAD-pembuat perabot
pakej perisian khusus yang direka untuk reka bentuk dan penyediaan pengeluaran perabot kabinet. Pakej ini termasuk modul bCAD asas, ditambah dengan alat khusus. Aplikasi Nesting membolehkan anda membuat peta bersarang secara automatik untuk butiran model yang diterima. Apabila anda memilih bahan, aplikasi secara automatik menawarkan senarai bahagian daripada bahan terpilih yang terdapat dalam projek. Parameter helaian yang digunakan, arah gergaji pertama, bilangan set ditetapkan. Aplikasi ini membolehkan anda mengambil kira sisa pemotongan, menyimpan parameter mereka dan menggunakannya pada masa hadapan.
tapak pembangun http://bcad-ug.ru

Tidak sukar untuk mencari program lain yang serupa di internet, termasuk. percuma

Teori dan amalan pemotongan automatik bahan dalam pengeluaran perabot kabinet. Bunakov P.Yu., Kaskevich N.V., Kolomna: GOSGI, 2010. 170 p.

Pengoptimuman pemotongan bahan dalam kejuruteraan mekanikal: buku teks / S.I. Vdovin, O.E. Jur. - Helang: OSU dinamakan sempena I. S. Turgenev, 2016. - 45 p.

V.A. Skaternoy "Pengoptimuman bahan pemotongan dalam industri ringan" ed. Industri pakaian. Legprombytizdat, 1989,
- 144 s

Disusun oleh Abushenko Alexander Viktorovich, Okt. 2005, rujukan disemak Jan. 2017

PENGOPTIMALKAN BAHAN HELAIAN MEMOTONG KEPADA SEGI SEGempat tepat PELBAGAI SAIZ

Giniatullina Regina Airatovna

pelajar sarjana tahun 1, Jabatan Matematik Gunaan dan Informatik, KNRTU. A.N. Tupolev, Persekutuan Rusia, Kazan

e-mel:Regina[e-mel dilindungi] yandex. en

Galiev Shamil Ibrahimovich

penasihat saintifik, Dr. tech. Sci., Profesor ITKiI KNRTU im. A.N. Tupolev, Persekutuan Rusia, Kazan

Pemotongan Guillotine keluli dan kepingan lain digunakan secara meluas dalam kejuruteraan mekanikal dan industri lain. Bersarang ini sebenarnya adalah tugas untuk membungkus petak pelbagai saiz ke dalam helaian tertentu menggunakan prosedur guillotine. Adalah penting untuk mengurangkan sisa lembaran. Minat dalam masalah pembungkusan dijelaskan oleh kepentingan praktikalnya yang hebat. Sebagai peraturan, tugas sedemikian berkaitan dengan industri intensif bahan, di mana salah satu faktor utama dalam mengurangkan kos produk ialah penggunaan sumber yang rasional. Tugasan ini mempunyai pelbagai aplikasi praktikal dalam industri tersebut di mana tugas pembungkusan (memotong) secara tradisinya timbul dalam industri kejuruteraan mekanikal, kerja kayu, ringan dan pembinaan. .

1. Semakan mengikut tugasan

Dalam industri, dalam pembuatan pelbagai jenis produk akhir, masalah timbul untuk memotong helaian saiz tertentu secara optimum ke dalam kosong segi empat tepat. Tugas ini adalah seperti berikut: dimensi segi empat sama, saiz helaian diketahui. Ia dikehendaki meletakkan petak yang diberikan dalam helaian tanpa bertindih antara satu sama lain supaya mungkin untuk memotong helaian dengan guillotine. Pemotongan guillotine difahamkan sebagai pemotongan, dilaksanakan dengan urutan melalui pemotongan selari dengan tepi bahan. Di samping itu, segi empat sama ini mesti dibungkus secara ortogon tanpa putaran, iaitu, untuk setiap elemen jenis yang dipilih, sisi dengan ketinggian mesti selari dengan sisi helaian dengan ketinggian. H. Kami akan mempertimbangkan masalah pembungkusan segi empat sama dengan saiz yang berbeza ke dalam segi empat tepat. Mari selesaikan masalah ini menggunakan satu algoritma yang tepat. Ia adalah berdasarkan pelaksanaan berulang algoritma cawangan dan terikat (kami juga akan melihatnya) secara rekursif dengan parameter input yang berbeza untuk menentukan nilai optimum penyelesaian.

2. Tujuan projek

Tujuan kerja ini adalah untuk mengkaji dan melaksanakan algoritma yang mampu mencari penyelesaian untuk pembungkusan segi empat sama ke dalam segi empat tepat. Masalah yang sedang dipertimbangkan digunakan secara meluas dalam pelbagai industri: kejuruteraan mekanikal, kerja kayu, industri ringan dan pembinaan.

Adalah perlu untuk melaksanakan kemungkinan memaparkan hasil yang diperoleh dalam bentuk segi empat sama pelbagai saiz yang ditulis dalam segi empat tepat dan maklumat tambahan yang sepadan yang diperlukan oleh pengguna. Contohnya, seperti: masa berjalan algoritma, pelbagai maklumat ralat, dsb.

3. Keperluan am

1) Menetapkan secara manual dimensi segi empat tepat helaian (lebar dan tinggi) di mana petak akan dibungkus;

2) Input manual saiz segi empat sama (ia boleh sama atau berbeza);

3) Pandangan visual hasil pelaksanaan algoritma (dengan output maklumat yang berkaitan: masa pelaksanaan algoritma, bilangan segi empat sama saiz tertentu yang ditulis dalam segi empat tepat);

4) Menyimpan maklumat tentang petak yang telah dimasukkan ke dalam fail.

4. Perkaitan masalah

Matlamat utama sistem yang direka bentuk adalah pematuhan dengan algoritma pembungkusan persegi asas dan kemudahan penggunaan oleh pengguna akhir, toleransi kesalahan.

Tugas dan fungsi sistem yang direka bentuk mestilah mematuhi keperluan.

Algoritma yang dicadangkan dalam kertas ini boleh digunakan untuk menyelesaikan masalah pembungkusan segi empat sama dengan cekap ke dalam kawasan segi empat tepat dengan dimensi yang diberikan. Masalah ini mempunyai pelbagai aplikasi praktikal dalam industri di mana tugas-tugas memotong-pembungkusan secara tradisinya timbul. Algoritma yang dipertimbangkan boleh digunakan dalam pengiraan praktikal dan dimasukkan ke dalam reka bentuk automatik dan sistem kawalan. Kita juga boleh mengatakan bahawa masalah itu relevan pada masa ini, kerana terdapat keperluan untuk mengemas petak menjadi segi empat tepat dan keperluan ini tidak akan pernah berakhir, yang bermaksud bahawa masalah itu akan sentiasa relevan.

Masalah pemotongan-pembungkusan menduduki tempat penting dalam pengoptimuman gabungan moden dan menarik perhatian ramai saintis, baik di Rusia dan di luar negara.

Minat dalam masalah pemotongan pembungkusan dijelaskan, khususnya, oleh kepentingan praktikalnya yang hebat. Sebagai peraturan, aplikasi pemotongan pembungkusan berkaitan dengan industri intensif bahan, di mana salah satu faktor utama untuk mengurangkan kos produk perkilangan adalah penggunaan sumber yang rasional.

5. Sistem pemotongan sedia ada.

Terdapat banyak produk perisian untuk memotong bahan lembaran, seperti ORION, ASTRA CUTTING, TEHTRAN. Mari kita pertimbangkan salah satu daripada mereka pada contoh TEHTRAN.

Bagi perusahaan yang menggunakan mesin pemotong haba, pengenalan teknologi maklumat moden adalah salah satu tugas yang paling mendesak. Adalah jelas bahawa pengurangan masa untuk menyediakan program pemotongan, penempatan bahagian yang optimum pada helaian, dan penggunaan bahan yang lebih rendah akan menjejaskan kos dan kualiti produk.

Produk perisian baharu Techtran / Pemotongan melengkapkan barisan program keluarga Techtran dan bertujuan untuk mereka bentuk program untuk memotong bahan lembaran. Keupayaan sistem CAM digabungkan di sini dengan fungsi mengatur proses pengeluaran. Pendekatan kepada penyelesaian yang digunakan dalam program ini meringkaskan pengalaman beberapa perusahaan yang mengendalikan mesin pemotong haba. Tugasnya adalah dengan cepat menyusun bahagian pada helaian dengan cara yang optimum dan mendapatkan program kawalan untuk memotong bahagian ini mengikut tugas pemotongan, yang terdiri daripada tatanama bahagian terpilih dan kuantitinya untuk setiap item. Helaian sisa perniagaan yang tinggal selepas kerja hendaklah direkodkan dalam pangkalan data sistem untuk kegunaan selanjutnya.

6. Memformalkan masalah dan pembangunan model matematik

Kami membentangkan model matematik masalah, mengikuti kerja.

Algoritma cawangan dan terikat adalah berdasarkan model pengaturcaraan linear integer (ILP). Demi kesederhanaan dalam rumusan ini, kami menganggap bahawa setiap elemen adalah berbeza, iaitu, untuk setiap jenis j segi empat tepat, kami mentakrifkan elemen yang sama mempunyai lebar, tinggi dan keuntungan. Biarkan (1) ialah jumlah bilangan unsur. Bagi setiap elemen k kami memperkenalkan pembolehubah binari yang mengambil nilai 1 jika dan hanya jika elemen k termasuk dalam penyelesaian optimum. Model ILP untuk masalah ransel dua dimensi am adalah seperti berikut:

di mana: - dimensi segi empat sama bertulis,

Dimensi segi empat tepat itu sendiri,

U- sebarang sempadan atas pada nilai penyelesaian optimum, dan C menandakan set semua subset unsur yang tidak boleh dibungkus guillotine ke dalam helaian. Untuk nilai ambang U kami menggunakan , iaitu, nilai penyelesaian optimum untuk masalah ransel dua dimensi, sepadan dengan pemudahan mengikut mana kekangan guillotine ditinggalkan. Ambil perhatian bahawa sekatan (3) dan (4) adalah berlebihan, tetapi ditambah kepada rumusan untuk menguatkannya. Algoritma kami menyelesaikan masalah dipermudahkan di mana kekangan (5) dihapuskan dan sama ada penyelesaian semasa adalah sah atau tidak diperiksa dengan menyelesaikan masalah pemisahan berikut: adakah semua elemen daripada muat ke dalam helaian dengan pendekatan guillotine? Jika jawapannya positif, maka penyelesaian optimum bagi masalah ransel dua dimensi umum ditemui. Jika tidak, kekangan yang dilanggar baharu ditemui, dan proses itu diulang.

Pendekatan ini adalah serupa dengan kaedah yang dicadangkan oleh Caprara dan Monasi untuk penyelesaian tepat masalah ransel 2D dan menurut Piesinger dan Sigard untuk menyelesaikan masalah ransel 2D umum itu sendiri. Lebih tepat lagi, model (2)-(6) diselesaikan dengan kaedah cawangan dan terikat khusus di mana unsur-unsur disusun. Sempadan atas diperoleh daripada kelonggaran LP masalah (2)-(3) menggunakan sempadan atas Martello dan Toth. Hantaran terbalik berlaku apabila sempadan atas tidak melebihi penyelesaian semasa, atau apabila beberapa kekangan (3)-(5) dilanggar.

Dalam masalah 2-6, ia tidak diambil kira bahawa pemotongan adalah guillotine. Memandangkan semua syarat, kami mempertimbangkan kaedah penyelesaian rekursif.

7. Kaedah penyelesaian

Dalam subseksyen ini, kami mempertimbangkan prosedur rekursif untuk menghitung pembungkusan guillotine dua dimensi. Dalam prosedur yang dipanggil rekursif, kami menandakan setiap susunan yang sah bagi subset elemen pada daun sebagai pembungkusan yang sah. Setiap pembungkusan yang sah boleh diwakili sebagai vektor integer bukan negatif, di mana setiap koordinat mewakili bilangan elemen jenis dalam pakej. Nyatakan sebagai keuntungan pembungkusan. Kami mengatakan bahawa pembungkusan yang dibenarkan adalah maksimum jika tiada elemen selanjutnya boleh dibungkus ke dalam helaian, iaitu, pembungkusan ternyata tidak boleh dilaksanakan untuk semua jenis elemen, supaya . Untuk dua pakej yang sah dan kami mentakrifkan pembungkusan baharu seperti berikut: , .

Prosedur rekursif secara tersirat menyenaraikan semua pembungkusan yang sah dengan membahagikan helaian secara rekursif kepada dua bahagian melalui potongan guillotine (mendatar atau menegak). Prosedur mengambil sebagai input parameter , yang merupakan sempadan bawah pada keuntungan mana-mana pembungkusan yang boleh diterima (guillotine).

Seperti yang dinyatakan oleh Christodes dan Whitlog, untuk sebarang masalah pembungkusan dua dimensi terdapat penyelesaian optimum yang sepadan dengan corak biasa, iaitu, penyelesaian di mana, untuk mana-mana elemen yang dibungkus, sebelah kirinya bersebelahan dengan sama ada sebelah kanan satu lagi. elemen atau sebelah kanan helaian. Ini bermakna kita hanya boleh mempertimbangkan pemotongan menegak, mengikut koordinat , yang boleh diperolehi sebagai gabungan lebar elemen, iaitu, yang tergolong dalam set:

Dengan cara yang sama, kami hanya mempertimbangkan bahagian mendatar, di sepanjang koordinat kepunyaan set berikut:

Kami menganggap bahawa unsur-unsur kedua-dua set dan diisih dalam susunan menaik dan set dan .

Memandangkan dan dan ambang keputusan , biarlah set semua pembungkusan yang boleh dilaksanakan (dibenarkan) bagi elemen yang diberikan ke dalam helaian saiz , yang boleh menghasilkan (bersama-sama dengan elemen baki dan helaian) keuntungan lebih besar daripada atau sama dengan . Untuk dua pembungkusan yang memuaskan Dan kami secara rasmi menyatakan dengan jumlah berpasangan pembungkusan dalam set dan:

Secara intuitif, ialah set pembungkusan yang boleh diperoleh dengan menggabungkan mana-mana pembungkusan dengan mana-mana pembungkusan , tanpa mengira saiz set dan . Adalah jelas bahawa sebaik sahaja set ditakrifkan, kita boleh mencari set dengan syarat bahawa semua (masing-masing ) elemen tergolong dalam set tertib (masing-masing ). Dengan cara yang sama, mengetahui set membolehkan kita mentakrifkan set. Sesungguhnya, sudah memadai untuk diperhatikan bahawa setiap pakej , yang boleh menghasilkan keuntungan sekurang-kurangnya sama dengan , dalam segi empat tepat, boleh diperolehi sebagai jumlah dua pembungkusan dibenarkan yang ditakrifkan untuk segi empat tepat yang lebih kecil. Secara rasmi: , di mana-mana sahaja Dan untuk sesetengah orang, atau Dan untuk beberapa . Oleh itu, mengetahui dan untuk setiap dan , kita boleh dengan mudah memperoleh (menjana) dengan cara rekursif .

Algoritma asas boleh diperbaiki seperti berikut. Untuk setiap pakej pada helaian lebar dan tinggi , sempadan atas, katakan , untuk keuntungan maksimum, boleh diperolehi apabila kawasan baki dikira. Untuk tujuan ini, pertimbangkan contoh beg galas dengan kapasiti , jenis elemen yang mungkin dalam salinan, masing-masing dengan keuntungan dan berat. Penyelesaian optimum daripada kes ini, atau mana-mana sempadan atas pada nilai ini, memberikan batas atas pada keuntungan maksimum yang boleh diperolehi dengan membungkus elemen yang tinggal ke dalam baki helaian. Adalah jelas bahawa semua elemen seperti itu boleh dialih keluar daripada set kerana ia tidak boleh membawa kepada penyelesaian yang boleh dilaksanakan yang mempunyai keuntungan lebih besar daripada . Dalam pelaksanaan kami, kami mengira nilai sempadan atas pada penyelesaian optimum bagi kes (satu dimensi) masalah ransel (lihat ). Nilai sempadan atas dan diperolehi oleh Haifi dan nilai yang sama yang dicadangkan oleh Yang-Gun dan Kang untuk masalah ransel dua dimensi (ortogon) tanpa kekangan, kami menggunakan nilai minimum ini sebagai bahagian atas terikat.

Di samping itu, ambil perhatian bahawa lebar dan ketinggian helaian boleh dikurangkan kepada dan , masing-masing, menghasilkan kuasa beg beg yang lebih rendah apabila menyelesaikan masalah kelonggaran ransel, justeru sempadan atas yang lebih tepat. Akhir sekali, ambil perhatian bahawa hanya pembungkusan maksimum yang dibenarkan mesti disimpan untuk setiap set, dan mana-mana elemen bukan maksimum boleh diabaikan. Ini mengurangkan bilangan elemen dalam , oleh itu memori dan keperluan masa pengiraan algoritma.

8. Data input dan output sistem

data input:

1. Lebar helaian segi empat tepat;

2. Ketinggian helaian segi empat tepat;

3. Saiz segi empat sama;

Pengeluaran:

5. Segi empat tepat terletak pada skrin monitor;

6. Fail teks dengan maklumat tentang segi empat tepat tertulis;

7. Maklumat tambahan tentang memasang segi empat tepat dalam bentuk pelbagai mesej pada skrin.

8.5. Pembangunan antara muka pengguna

Adalah dinasihatkan untuk membuat antara muka pengguna dalam bentuk grafik, kerana ia adalah paling mudah untuk digunakan.

Borang input dan output data

Rajah 1. Antaramuka Pengguna

Kami mula-mula memasukkan lebar segi empat tepat, tekan enter, ketinggian - masukkan, dan masukkan saiz segi empat sama, contohnya 23 - masukkan, 45 - masukkan, dsb., tekan 0 untuk berhenti memasuki petak dan fail hasil muncul di tempat projek disimpan .png di mana anda boleh melihat pembungkusan petak.

Tetingkap yang sama memaparkan maklumat tentang bilangan segi empat sama saiz tertentu. Tekan 0 dan lihat maklumat tentang masa mengisi kawasan segi empat tepat dengan petak.

Selepas semua tindakan dilakukan, kami mendapat:

Rajah 2. Hasil daripada program tersebut

dan pakej itu sendiri:

Rajah 3. Membungkus segi empat sama ke dalam segi empat tepat

Jadual 1.

Keputusan berangka program

Saiz Segi Empat

Anggaran bilangan segi empat sama

Jumlah bilangan segi empat sama

Kesimpulan: lebih banyak petak yang dimasukkan, lebih lama masa pelaksanaan algoritma.

9. Kesimpulan

Selaras dengan tujuan kajian, tugas-tugas berikut telah ditetapkan dan dilaksanakan:

1. Perumusan masalah pembungkusan pemotongan yang sedang dipertimbangkan dari segi pengaturcaraan matematik dan penilaian kualitatif kaedah untuk penyelesaiannya;

2. Algoritma untuk menyelesaikan masalah pembungkusan segi empat sama pelbagai saiz ke dalam segi empat tepat telah dibangunkan dan dikaji;

3. Keberkesanan kaedah yang dibangunkan dianalisis berdasarkan keputusan eksperimen berangka.

Bibliografi:

1.Tekhtran / Bahan helaian pemotongan [Sumber elektronik] - Mod akses. - URL: http://9132222.ru/catalog/soft/techtran/textran.html (diakses 06/12/2014).

2.Caprara A, Monaci M. Mengenai masalah ransel dua dimensi. Surat Penyelidikan Operasi 2004;32:5–14.

3. Christofides N, Whitlock C. Algoritma untuk masalah pemotongan dua dimensi. Penyelidikan Operasi 1977;25:30–44.

4. Hifi M. Penambahbaikan algoritma tepat Viswanathan dan Bagchi untuk stok pemotongan dua dimensi yang dikekang. Penyelidikan Komputer dan Operasi 1997;24:727–36.

5. Martello S, Toth P. Masalah knapsack: algoritma dan pelaksanaan komputer. Chichester: John Wiley & Sons; 1990.

6. Pisinger D, Sigurd M. Menggunakan teknik penguraian dan pengaturcaraan kekangan untuk menyelesaikan masalah pembungkusan tong dua dimensi. INFORMS Journal on Computing 2007;19:36–51

7.Young-Gun G, Kang MK. Sempadan atas baharu untuk pemotongan dan pembungkusan dua dimensi tanpa kekangan. Jurnal Persatuan Penyelidikan Operasi 2002;53:587–91.