Tiện ích tính toán để tiết kiệm khi cắt tấm, cắt thanh.

Liên hệ QC
Bạn cộng các kích thước cho độ rộng vết cắt là xong.test.png
ý b là cộng kích thước mạch cắt vào luôn chỗ kích thước này à, e muốn nó cộng trong đoạn code để cái số ko đổi hoặc b có thể làm thêm 1 ô " trừ mạch cắt" vì thực tế cây 5m ko thể cắt đc thành 2 đoạn 3500 và 1500 được
b xem giúp e, cám ơn b
 
Lần trước tôi đã gửi một file dùng để tính toán các sắp xếp tối ưu những hình chữ nhật nhỏ có cùng kích thước trong một hình chữ nhật lớn để số lượng hình chữ nhật nhỏ được xếp là lớn nhất. Tiện ích này sẽ giúp các bạn tiết kiệm không gian khi sắp xếp hàng hóa, tiết kiệm nguyên liệu khi cắt một tấm lớn ra thành nhiều tấm nhỏ.

Lần này tôi gửi tặng các bạn thành viên GPE một tiệt ích dùng để tiết kiệm khi cắt các thanh nguyên liệu ra thành nhiều thanh ngắn hơn có độ dài khác nhau.

Tôi đã gộp cả hai tiện ích trên vào trong một file đính kèm bên dưới. Để sử dụng, bạn chỉ cần nhập số liệu phù hợp vào các ô màu xanh và bấm nút.

Hi vọng sẽ có ích cho nhiều người.
thêm một điều kiện nữa không thầy số loại trên một cột chạy ra ít nhất không thầy?
 
Lần trước tôi đã gửi một file dùng để tính toán các sắp xếp tối ưu những hình chữ nhật nhỏ có cùng kích thước trong một hình chữ nhật lớn để số lượng hình chữ nhật nhỏ được xếp là lớn nhất. Tiện ích này sẽ giúp các bạn tiết kiệm không gian khi sắp xếp hàng hóa, tiết kiệm nguyên liệu khi cắt một tấm lớn ra thành nhiều tấm nhỏ.

Lần này tôi gửi tặng các bạn thành viên GPE một tiệt ích dùng để tiết kiệm khi cắt các thanh nguyên liệu ra thành nhiều thanh ngắn hơn có độ dài khác nhau.

Tôi đã gộp cả hai tiện ích trên vào trong một file đính kèm bên dưới. Để sử dụng, bạn chỉ cần nhập số liệu phù hợp vào các ô màu xanh và bấm nút.

Hi vọng sẽ có ích cho nhiều người.
Bác ạ, món này có cải tiến gì so với ngày xưa không ạ?

Hiện có điều chỉnh tí tẹo là em phải lưu lại xlsm vì yêu cầu kết quả nhiều hơn số lượng cột hạn hẹp của dạng .xls.
 
món này khó đấy bác, mình ngâm cứu 4 năm nay mà chưa ra
nhưng theo đuổi cũng ngộ đc nhiều điều !
xứng đang là mục tiêu dài hạn !

Trên youtube cũng có 1 vài thuật giải về quy hoạch rời rạc của bác Bùi Thế Tâm có thể tham khảo !
1 số đề tài TS trong nước cũng có đề cập như kỹ thuật tạo sinh cột !
nói chung thế giới vẫn nghiên cứu , chưa có cách nào tối ưu nhất bác ạ

về công cụ thì có thể liệt kê các lát cắt, dùng solver của Excel tính cũng ra, nhưng giới hạn vài chục mẫu thôi !

nếu bác có cùng đam mê thì follow thớt này để update thông tin ^^

https://en.wikipedia.org/wiki/Cutting_stock_problem#:~:text=In operations research, the cutting,arises from applications in industry.

1698409453839.png
 
Lần chỉnh sửa cuối:
Ồ, nếu theo mẫu thử trong link này thì cắt 73 đoạn thì tối ưu nhất, nhưng lại không có thuật toán.
1698418839777.png
Code bác Thắng suýt soát 74, của bác siwtom, thanhlanh thì 82, của phần mềm khác là 75.

Như thế thì có con đường tắt để tối ưu, nhưng chắc khó. :wallbash: :wallbash: :wallbash:
 
Link trên tổng cộng 219 thanh con, mình cố lắm được 45 thanh con ah`
1699077449757.png

40
1699081723586.png

cũng có trường hợp nhiều hơn nhưng vẫn hội tụ khá nhanh !
1699024976805.png

nói chung mình vẫn trong quá trình nghiên cứu ^^
mục tiêu 219 thanh con vẫn quá xa @@
 
Lần chỉnh sửa cuối:
tổng cộng 219 thanh con, mình cố lắm được 45 thanh con
Tớ không hiểu lắm. 45 thanh kia nghĩa là tương ứng sẽ có 15 kiểu cắt ấy hả?
Chỉ cần 2x, 3x, 4x, ... hoặc nx với lần lượt 15 thanh là ra? Và đảm bảo cộng 2x, 3x, 4x, ... hoặc nx = 73 hả?

Còn bảng số liệu với 4520 là số lượng từng thanh bao nhiêu nhỉ?
Để tớ test với code của các bác xem tối ưu là bao nhiêu thanh?
 
Tớ không hiểu lắm. 45 thanh kia nghĩa là tương ứng sẽ có 15 kiểu cắt ấy hả?
Chỉ cần 2x, 3x, 4x, ... hoặc nx với lần lượt 15 thanh là ra? Và đảm bảo cộng 2x, 3x, 4x, ... hoặc nx = 73 hả?
ví dụ trong Link vì kết quả quá dài , 73 thanh, nên họ gộp những thanh giống nhau lại , mất 73 thanh để cắt 219 thanh con
trong hình mình liệt kê từng thanh cho nó ấn tượng thôi , 45 thanh con sẽ dùng hết 15 thanh dài

Còn bảng số liệu với 4520 là số lượng từng thanh bao nhiêu nhỉ?

bác thử !
463​
16​
467​
8​
473​
4​
475​
8​
479​
4​
555​
4​
713​
4​
1183​
8​
1276​
16​


Để tớ test với code của các bác xem tối ưu là bao nhiêu thanh?
hiện tại khả năng của code chỉ hiệu quả trong vòng 50 thanh con đổ lại cho mọi trường hợp (mình đoán thế ) !
50 -> 70 tính toán hơi chậm !
70 -> 100 cho vài trường hợp đặc biệt !
chắc 1 2 năm nữa mới có thêm chút tiến bộ @@

1699201710669.png

13805
15205
15605
17105
18205
18805
19305
20005
20505
21005
21405
21505
22004
Sum64
Số thanh cần22

ví dụ mở rộng thêm mẫu cắt !
1699202873247.png
13802
15202
15602
17102
18202
18802
19302
20002
20502
21002
21402
21502
22002
13502
15502
15502
17502
18502
18502
19502
23501
20701
23501
21901
21801
22501
Sum46
Số thanh cần16

phần phế phẩm nhiều , nhưng hok thể tối ưu hơn !
1699204133085.png

13802
15202
15603
17104
18205
18806
19307
20001
20502
21003
21404
21505
22006
Sum50
Số thanh cấn19
 
Lần chỉnh sửa cuối:
Đáp số 4520 nè:

SLL1L2L3L4L5L6L7L8
4​
1276​
1276​
555​
479​
467​
467​
2​
1276​
463​
463​
463​
463​
463​
463​
463​
1​
713​
713​
713​
475​
475​
475​
475​
475​
1​
1183​
1183​
713​
475​
475​
475​
2​
1183​
1183​
1183​
473​
473​
2​
1276​
1276​
1276​
463​
 
Lần chỉnh sửa cuối:
dùng 12 thanh là đáp án đúng rùi ák, phần mềm Cutting Optimization cũng nhiêu đó thui !
bác test thử mẫu này !
độ khó cũng trung bình,
kết quả dài quá mình đính kèm Excel ^^

1699251728102.png
 

File đính kèm

  • ABC.xlsx
    277.8 KB · Đọc: 6
dùng 12 thanh là đáp án đúng rùi ák, phần mềm Cutting Optimization cũng nhiêu đó thui !
bác test thử mẫu này !
độ khó cũng trung bình,
kết quả dài quá mình đính kèm Excel ^^

View attachment 296462
Code trong chủ đề này vẫn ra được 39 thanh đấy.
Mà ứng dụng của bạn đẹp đấy, rất dễ nhìn. Nếu thêm tùy biến các thanh giống nhau ghép lại thì đẹp.
Solver excel nó cũng kém, đổi vị trí kiểu cắt ra trước hoặc sau là kết quả nó nhảy lung tung luôn.
Và để tối ưu nhất chắc là chấp nhận hụt vài thanh trong ngân sách cho phép.
 
thanks bác đã hỗ trợ test
bác test dùm e thêm mẫu bên dưới giúp nha (có file đính kèm) !
View attachment 296524
Các code đều cho ra 13 hết. Thường thì có nhiều đoạn nhỏ sẽ tương đối tiết kiệm.

Còn code lượm trên mạng nhưng tính từ bảng thống kê thép rồi chạy ra luôn mà tớ chưa mò sửa được. Hehe.
Bài toán tối ưu thép biến thành bài toán sưu tầm code. Khi nào ổn nhớ share lên nghen. --=0 --=0 --=0
1:
1​
2x1276 + 1x555 + 1x479 + 2x467
2​
2x1276 + 1x555 + 1x479 + 2x467
3​
2x1276 + 1x555 + 1x479 + 2x467
4​
2x1276 + 1x555 + 1x479 + 2x467
5​
1x1276 + 7x463
6​
1x1276 + 1x463 + 6x463
7​
3x713 + 5x475
8​
2x1183 + 1x713 + 3x475
9​
2x1183 + 1x1183 + 2x473
10​
3x1183 + 2x473
11​
3x1276 + 1x473
12​
3x1276 + 1x463
13​
1x463

2:
1​
3x1276 + 1x555
2​
3x1276 + 1x555
3​
2x1276 + 1x1276 + 1x555
4​
3x1276 + 1x555
5​
3x1276 + 1x479
6​
1x1276 + 2x1183 + 1x713
7​
2x1183 + 1x1183 + 1x713
8​
3x1183 + 1x713
9​
1x713 + 3x479 + 4x475 + 1x467
10​
4x475 + 5x473
11​
7x467 + 2x463
12​
6x463 + 3x463
13​
5x463
 
Các code đều cho ra 13 hết
Test như vậy thì sao mà ra được vấn đề. Ngoài số lượng thanh nguyên sử dụng còn xét đến các thanh thừa nữa. Ví dụ ở phương án 1 thanh thứ 13 chỉ mới cắt 1 thanh 463, còn dư 4057. Vậy nếu bớt 1 thanh 463 ở số lượng thanh còn cắt thì phương án 1 chỉ còn dùng 12 thanh nguyên, các phương án khác có bớt được 1 thanh nguyên như vậy không. Hoặc cần cắt thêm 3 thanh 1276 thì phương án 1 vẫn chỉ dùng 13 thanh, các phương án khác có thể cắt với 13 thanh như vậy không.
 
Test như vậy thì sao mà ra được vấn đề. Ngoài số lượng thanh nguyên sử dụng còn xét đến các thanh thừa nữa. Ví dụ ở phương án 1 thanh thứ 13 chỉ mới cắt 1 thanh 463, còn dư 4057. Vậy nếu bớt 1 thanh 463 ở số lượng thanh còn cắt thì phương án 1 chỉ còn dùng 12 thanh nguyên, các phương án khác có bớt được 1 thanh nguyên như vậy không. Hoặc cần cắt thêm 3 thanh 1276 thì phương án 1 vẫn chỉ dùng 13 thanh, các phương án khác có thể cắt với 13 thanh như vậy không.
Khó lắm bác ạ, cái này chắc không tối ưu được mà sẽ có code tối ưu được hệ này nhưng lại không với hệ khác.
Em thử solver với chỉ 3 loại thanh thôi mà đổi vị trí các trường hợp là nó ra kết quả khác ngay.
Nên em nghĩ, phải chấp nhận lãng phí nếu trong giới hạn cho phép.
 
test thử bớt 1 thanh 463
thêm 3 thanh 1276
 

File đính kèm

  • ABC3.xlsx
    301.8 KB · Đọc: 6
Web KT
Back
Top Bottom