Thuật toán bài toán tối ưu về xây dựng (6 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Chào các bác, Hiện nay tôi đang nghiên cứu về các thuật toán tối ưu và muốn vận dụng vào thử nghiệm trong lĩnh vực thi công, vì vậy xin được hỏi các bác là ngoài bài toán tối ưu về cắt thép tiết kiệm nhất (thừa ít nhất) thì còn những bài toán tối ưu nào có ứng dụng khả thi nào trong thực tế (cần thiết nhất, mang tính chất thực tế ứng dụng cao nhất mà không phải theo sách vở)? Mong mọi người đặc biệt là các bác có nhiều kinh nghiệm thi công chỉ bảo giúp. Xin đa tạ
 
Có bác nào có phần mềm CP Manager mà đã phá được khoá cứng không. Bán rẻ lại cho tớ. Tớ đang nhức đầu với mấy cái vụ cắt nối thép sao cho tiết kiệm này. Mua Bản quyền đắt lắm, tớ lại thuộc dạng sinh viên mới đi làm có vài năm. Tiền đâu mà mua bản quyền.
 
Xin chào các bác. Tôi thì ko biết gì về lập trình hay VBA gì cả. Mấy hôm nay tôi có down được 1 phần mềm khá hay có thể ứng dụng rất tốt trong việc cắt thép thi công sao cho tiết kiệm nhất. Rất tiếc rằng phần mềm này lại có bản quyền và thời hạn dùng thử chỉ có 30 ngày thôi. Hơn nữa nó chỉ cắt thép thôi chứ không thể tính nối chồng theo như yêu cầu được. Dù sao cũng là tốt lắm rồi đó. Dung lượng khoảng hơn 8M. Bác nào thích thì chỉ tôi cách upload lên diễn đàn tôi sẽ up lên cho các bác dùng thử.
 
Cắt thép tối ưu - Cut Bars Steel
Từ số số liệu đầu vào là số lượng các loại thanh, đường kính thanh, chiều dài thanh thép tiêu chuẩn, sai số cắt, chiều dài mối nối và phương án đó có thực sự tối ưu hay không, mời bạn Test thử Cut Bars Steel.

Phần mềm bác em có cài vào và chạy thử, nhưng lúc tính các tổ hợp lại báo lỗi gì đó về lệnh solver, bác chỉ em cách sửa với. Mà bản này bác không cho dùng để cắt nối thanh lớn hơn 11,7m, muốn dùng mất 500k?
 
Chào các bác, Hiện nay tôi đang nghiên cứu về các thuật toán tối ưu và muốn vận dụng vào thử nghiệm trong lĩnh vực thi công, vì vậy xin được hỏi các bác là ngoài bài toán tối ưu về cắt thép tiết kiệm nhất (thừa ít nhất) thì còn những bài toán tối ưu nào có ứng dụng khả thi nào trong thực tế (cần thiết nhất, mang tính chất thực tế ứng dụng cao nhất mà không phải theo sách vở)? Mong mọi người đặc biệt là các bác có nhiều kinh nghiệm thi công chỉ bảo giúp. Xin đa tạ

Có chứ, bài toán Tiến độ thi công đó bạn, tối ưu thời gian, chi phí,...vv
 
Không hổ danh chuyên gia lập trình bách khoa!
Cảm ơn anh trí nhiều lắm.
Em cũng đã lập trình bên excel và giải bằng abqm. Kết quả giống anh hoàn toàn. Nhưng các bước thì quá chi phức tạp.
Khâm phục! Khâm phục!
 
Vấn đề bạn nêu ra phụ thuộc vào thiết kế mà?
Sao lại ôm cái khổ vào mình thế?
 
Tưởng gì chứ cắt thép tối ưu thì Tây người ta đã viết phần mềm từ lâu rồi. Chẳng qua là đắt quá nên ko bác nào dám bỏ tiền ra mà mua thôi. Đây xin mời các bác thử dùng phần mềm sau: Cái này tôi tìm crack mãi mà ko có. Vậy bác nào có crack thì cho tớ xin nhé. Đây là link download http://www.megaupload.com/?d=HHR684RF
Tôi xài được 30 ngày thì hết hạn. Ko biết phải làm sao xài tiếp nữa. Ai có cách gì hay xin chỉ giáo.
 
Sao??? Ko bác nào có ý kiến gì sao?. Có bác nào tìm được crack cutlogic1d không. Nếu ai tìm được xin hãy lên tiếng đi cho anh em được nhờ. Phần mềm hay mà không có thuốc giải xem ra hơi phí.
 
binhkyen, nếu bạn cần tôi có thể gửi cho bạn
Mình cũng sử dụng qua Bar Cut Optimizer & Manager. version 123. Đây là chương trình cắt thép khá hay. Nhưng chỉ là bản dùng thử thôi ah. Bạn có key thì chia sẻ mình với, bạn có thể up lên diễn đàn hoặc mail cho mình được không, mail của mình lightindarkdq@gmail.com. Thanks bạn nhiều
 
Trước giờ toàn tự ra detail,tự cắt.Mình cũng không thấy hao hụt nhiều lắm,chủ yếu là mình ra làm sao cho dể cắt và nối đúng vị trí thôi,đừng nối lung tung là được.Mình đọc các bài nãy giờ mà chưa tìm ra được phương pháp tối ưu nào.Cũng ráng tìm tòi cho ra phương pháp cắt để giảm KL hao hụt xuống thấp nhất.
 
Anh Trí có thể gởi phần mềm cắt thép này lên tham khảo được không? Nếu anh có thể, gởi qua cho em 1 bản để sử dụng. Cám ơn anh! Email: someone_pt_2006@yahoo.com.vn
 
Toi moi viet duoc mot chuong trinh cat nhung thanh vat lieu co 1 chieu dai dinh hinh, Chi can nhap bang thong ke vat lieu vao va nhap them chieu dai dinh hinh la cac ban co the co duoc mot ket qua se phai cat thanh thep nhu the nao de luong du thep la nho nhat.


Anh Em kiem tra roi cho y kien ca noi dung va hinh thuc nhe !
Bạn trí cho mình hỏi là down file của bạn về mở ra sao ko chỉnh sửa được gì hết vậy bạn, nhập các thông số nó ko có tác dụng gì hết hay là thiếu file gì ko? nhờ bạn giúp đỡ hộ? cám ơn bạn nhiều!
 
Máy bác ơi em mới làm quen phần mềm cắt thép v2 nhưng không rõ cách sử dụng cho lắm,bác nào có thẻ hướng dẫn e cách sử dụng không.Tiện thể cho e tham khảo chương trìng nào mà xuất ra bản vẽ chio tiết thanh thép và đoạn nối chồng không.e xin cảm ơn.gửi qua mail cho e nhé vutamphuoc@yahoo.com.vn
 
đúng là kỹ sư VN mình ko thể so sánh với dàn kỹ sư nước ngoài vì ko phải mình ko có trình độ mà là mình thiếu phương tiện KHKT và chương trình hỗ trợ, và cái cốt yếu là vẫn còn mang đầu óc phương Đông cổ hủ lạc hậu, ko chia sẽ kinh nghiệm, vào wed muốn chép tài liệu về học thì phải đăng ký thành viên đủ thứ. Hậu bối có gì mạo phạm các bậc tiền bối tha thứ cho đây chỉ là nỗi lòng của tôi thôi ka...ka...dạng SV mới ra trường như tôi thì lấy đâu tiền mà mua phần mềm 10 triệu đồng của các bác chứ thiệt là.
 
Mình đã đọc qua nhưng chưa thấy tối ưu tý nào
Nó hầu như là các phương án lựa chọn của bạn chứ mục tiêu của mình là lượng thép vụn nhỏ nhất
 
cam on ban nguyentuhp nhung to thay trong to hop van chua cho duoc doan noi chong hoac han vi khi thay doi du lieu chay ket qua khong thay doi
 
Mình đang phải giải bài toán về tối ưu hoá tiến độ thi công theo quan hệ thời gian-chi phí. Làm thủcông mệt quá. Mình nghe nói phầnmềm WinQSB lập cho bài toán nàycũng được thì phải. Bạn đã lập thử chưa? Bạn có thể hướng dẫn mình làm được không?
 
CẮT NỐI THÉP TỐI ƯU:
Việc tổ hợp các thanh = 1170cm để cắt đã có nhiều người thực hiện, nhưng chưa tính đến việc nối chúng trong quá trình cắt. Điều này hiển nhiên hao hụt rất lớn vượt quá định mức cho phép, không có hiệu quả và hiển nhiên là Không tối ưu.
Thực tế, việc nối thép là hiển nhiên, có khi cho phép bố trí lên tới 50% số lượng thanh trong một mặt cắt của cấu kiện.
1. Khi ta nhìn thấy Số lượng thanh cần cắt nối quá lớn ta thấy quá phức tạp, nhưng nếu ta biết, ví dụ: 2 cây L =1170cm cắt nối thành 3 loại thanh: 2 x L1, 1 x L2, 3 x L3 thì ta thấy quá đơn giản và dễ dàng thực hiện được - có 1 mối nối.
2. Việc tổ hợp và cắt theo kiểu thống kê từng thanh 1 như file gửi của bạn VA Đà Nẵng, bạn Trí sẽ khó khăn cho việc thi công, giả sử số lượng các thanh lớn: Chúng ta phải tổng hợp lại các trường hợp chương trình đã thực hiện. Phải nhặt ra từng loại để tổ hợp lại những loại cắt giống nhau để gia công đồng loạt.
3. Việc tối ưu: phải được thực hiện từ nhiều trường hợp sau đó tổng kết, so sánh, chọn lựa mới có được nên dữ liệu và cách tính phải mở cho người dùng lựa chọn.
Từ ý tưởng trên tôi đã thực hiện bài toán theo cách sau:

(Tổ hợp 4 loại thanh - Trường hợp tổng quát sau đó giảm dần xuống 1 thanh)
n lần: N x 1170 - SSD < = i.L1 + j.L2 + k.L3 + l.L4 < = N x 1170 + SSA
SSD - sai số dương cho phép cắt dài hơn: để người dùng tự chọn
SSA - sai số âm cho phép cắt ngắn hơn: để người dùng tự chọn
Và thỏa mãn các điều kiện:
n.i <= N1 n.j <= N2
n.k <= N3 n.l <= N4
N1, N2, N3, N4, .. Nn số thanh tương ứng với L1, L2, L3, L4, ….. Ln cần thực hiện và tôi thấy hợp lý, tiết kiệm.

' 1 đoạn code:
Select Case nBar
Case Is >= 4
PP = 2: Bars = 4
Case Is = 3
PP = 4: Bars = 6
Case Is = 2
PP = 6: Bars = 8
Case Is = 1
PP = 8: Bars = 10
End Select

iOf = 1
For p = 1 To PP
For iJ = 1 To nBar: If nBar = 1 Then GoTo Line
For iZ = iJ + 1 To nBar: If nBar = 2 Then GoTo Line
For iG = iZ + 1 To nBar: If nBar = 3 Then GoTo Line
For iH = iG + 1 To nBar
Line:
For i = 0 To Bars: If nBar = 1 Then GoTo Lines
For j = 0 To Bars: If nBar = 2 Then GoTo Lines
For k = 0 To Bars: If nBar = 3 Then GoTo Lines
For l = 0 To Bars
Lines:
TempL = LenCheck(nBar, iRow, iCol, iJ, iZ, iG, iH, i, j, k, l, p, SSD, SSA) = True
If TempL Then
If nBar = 1 Then GoTo Line1: If nBar = 2 Then GoTo Line2
If nBar = 3 Then GoTo Line3

Cells(iRow + iOf, iCol + iH) = l
Line3:
Cells(iRow + iOf, iCol + iG) = k
Line2:
Cells(iRow + iOf, iCol + iZ) = j
Line1:
Cells(iRow + iOf, iCol + iJ) = i

cBar = 1
Cells(iRow + iOf, iCol) = "=1170*" & p & ""
Do
Cells(iRow + iOf, iCol - 1) = cBar
KiemTra = Check(nBar, iRow, iCol, iOf, iJ, iZ, iG, iH) = True
If KiemTra Then ' Do nothing
Else
Cells(iRow + iOf, iCol - 1) = cBar - 1: Exit Do
End If
cBar = cBar + 1
Loop
iOf = iOf + 1
End If
If nBar = 3 Then GoTo line33: If nBar = 2 Then GoTo line22
If nBar = 1 Then GoTo line11
Next l
line33:
Next k
line22:
Next j
line11:
Next i
If nBar = 3 Then GoTo line333: If nBar = 2 Then GoTo line222
If nBar = 1 Then GoTo line111
Next iH
line333:
Next iG
line222:
Next iZ
line111:
Next iJ, p

…………………………

Vòng lặp nhiêu hơi phức tạp, bạn có thể thay = các trường hợp (hơi dài nhưng dễ hiểu)

Select Case nBar
Case Is >= 4
PP = 4: i1 = 4: i2 = 4: i3 = 4: i4 = 4
For p = 1 To PP
For iJ = 1 To nBar: For iZ = iJ + 1 To nBar: For iG = iZ + 1 To nBar: For iH = iG + 1 To nBar
For i = 0 To i1: For j = 0 To i2: For k = 0 To i3: For l = 0 To i4
TempL = LenCheck(nBar, iRow, iCol, iJ, iZ, iG, iH, i, j, k, l, p, SSD, SSA) = True
If TempL Then
Cells(iRow + iOf, iCol + iJ) = i: Cells(iRow + iOf, iCol + iZ) = j
Cells(iRow + iOf, iCol + iG) = k: Cells(iRow + iOf, iCol + iH) = l
cBar = 1
Cells(iRow + iOf, iCol) = "=1170*" & p & ""
Do
Cells(iRow + iOf, iCol - 1) = cBar
KiemTra = Check(nBar, iRow, iCol, iOf, iJ, iZ, iG, iH) = True
If KiemTra Then ' Do nothing
Else
Cells(iRow + iOf, iCol - 1) = cBar - 1: Exit Do
End If
cBar = cBar + 1
Loop
iOf = iOf + 1
End If
Next l: Next k: Next j: Next i
Next iH: Next iG: Next iZ: Next iJ
Next p

Case Is = 3
PP = 8: i1 = 8: i2 = 8: i3 = 8: i4 = 0
For p = 1 To PP
For iJ = 1 To nBar: For iZ = iJ + 1 To nBar: For iG = iZ + 1 To nBar
For i = 0 To i1: For j = 0 To i2: For k = 0 To i3
TempL = LenCheck(nBar, iRow, iCol, iJ, iZ, iG, iH, i, j, k, l, p, SSD, SSA) = True
If TempL Then
Cells(iRow + iOf, iCol + iJ) = i: Cells(iRow + iOf, iCol + iZ) = j
Cells(iRow + iOf, iCol + iG) = k:
cBar = 1
Cells(iRow + iOf, iCol) = "=1170*" & p & ""
Do
Cells(iRow + iOf, iCol - 1) = cBar
KiemTra = Check(nBar, iRow, iCol, iOf, iJ, iZ, iG, iH) = True
If KiemTra Then ' Do nothing
Else
Cells(iRow + iOf, iCol - 1) = cBar - 1: Exit Do
End If
cBar = cBar + 1
Loop
iOf = iOf + 1
End If
Next k: Next j: Next i
Next iG: Next iZ: Next iJ
Next p
.........

(File đính kèm)
Hy vọng sẽ giúp được một phần nào công việc của các bạn.
Nhập liệu: Sheet Data, sang Sheet Cacular để thực hiện
Tự mò mẫm học nên còn nhiều sai sót, mong mọi người đóng góp ý kiến nhé!
bạn nối ngẫu nhiên vậy thì cần cắt thép làm chi nữa,cứ đưa cây thép 11.7m lên, thiếu tới đâu nối tới luôn cho nhanh, dư thì cắt.
 
Web KT

Bài viết mới nhất

Back
Top Bottom