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

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

VADaNang

Thành viên chính thức
Tham gia
4/12/06
Bài viết
65
Được thích
47
+ Mình có 1 bài toán tối ưu chưa tìm ra thuật toán. Mong được giúp đỡ.

Bài toán cụ thể như sau:
Đầu vào:
Ta có N1 cấu kiện có chiều dài L1 (real)
N2 cấu kiện có chiều dài L2 (real)
.....................................................
Nn cấu kiện có chiều dài Ln (real)
Trong đó N1, N2 ... Nn là số cấu kiện của cấu kiện có chiều dài tương ứng L1, L2 ..., Ln.

Đầu ra:

Phân tích tìm ra tổng số tổ hợp của tất cả các cấu kiện trên sao cho thoả mãn điều kiện :
N1x . L1 + N2x.L2 + + Nnx.Ln gần bằng 11,7(m) với sai số cho trước
Trong đó N1x, N2x ... Nnx là số cấu kiện ứng với từng chiều dài L1,L2....
để sao cho số thanh còn lại (không nằm trong các tổ hợp) là ít nhất.

Cụ thể các tổ hợp cần tìm thoả mãn điều kiện:
N11 . L1 + N21x.L2 + + Nn1x.Ln gần bằng 11,7(m) với sai số cho trước
N12 . L1 + N22x.L2 + + Nn2x.Ln gần bằng 11,7(m) với sai số cho trước
..................
v.v.v...........
Trong đó :
N11+N12+......= gần tiến tới N1 (gần bằng N1)
N21+N22+......= gần tiến tới N2 (gần bằng N2)
........................
Nn1+Nn2+......= gần tiến tới Nn (gần bằng Nn)
 
Mấy hôm nay bận quá nên không ngồi viết bài toán gửi cho bác NVSON được. Mong bác thông cảm.
Quả thực mấy vấn đề này phải nhờ các cao thủ về lập trình và giải thuật. Mong mọi người giúp đỡ.
 
Đây là bài toán cắt thép tại công trường, thuật toán này trước đây tôi cũng đã va phải nhưng lâu rồi không để ý nữa.
 
Đúng vậy. Đối với vấn đề này đôi lúc mình làm tay (qua bảng tính excel), nhưng nghĩ để chuyển qua để viết chương trình thì chưa có giải pháp.
 
Co ai giup minh voi!
Minh muon tach so tu 1 chuoi de cho ra gia trij kieu so
Vd: Khoi luong=(3*3+6*8+3.2*5)
ban co the giup minh tach chuoi tren tu dau "=" tro di va cho ra mot gia tri dung bang gia tri cua bieu thuc do
 
Bạn ttphong2007 có 1 bài viết về vấn đề này khá hay... Bạn Search tìm tên bạn ấy sẽ có đo..
Tôi ko nhớ nó nằm ở đâu... Phong giới thiệu cho bạn ấy đoạn code của bạn đi!
ANH TUẤN
 
VADaNang đã tối ưu được bài toán cắt thép chưa ?

Chúng ta hợp tác. Tôi đang có ý định viết chương trình đó đây.

Liên lạc với tôi theo SĐT : 0937271593
mail : trigialai@yahoo.com
 
Chào bạn .
Mình đã làm thực hiện nhưng thuật toán thấy chưa ổn và ngoài ra còn nhiều vấn đề chưa xử lý trong quá trình cắt sắt
Mình gởi file các bạn xem qua .
 

File đính kèm

Lần chỉnh sửa cuối:
VADaNang đã viết:
Chào bạn .
Mình đã làm thực hiện nhưng thuật toán thấy chưa ổn và ngoài ra còn nhiều vấn đề chưa xử lý trong quá trình cắt sắt
Mình gởi file các bạn xem qua .

Đây là phương pháp giải của mình, áp dụng solver cho nó tính.

Mình chưa áp dụng một lần solver cho tất cả được, vì thứ nhất là Change cells quá lớn, Solver chạy rất lâu (10 loại sắt yêu cầu là chạy ngày đêm luôn không ra được :p)

Mình giải quyết bằng cách loại trừ dần, tuy không phải là cách tối ưu nhất theo toán học, nhưng hình như có ít hơn số cây sắt phải sử dụng theo code cũ của bác VADaNang (theo cách diễn đạt của tôi trong file) cũng có thể không đúng, bác VADaNang và bác mai van tri cho ý kiến nhé.
 

File đính kèm

Chào bạn.
Hiện tại mình thử qua một số trường hợp thấy được nhưng đúng với một số trường hợp khác như số liệu này thì chưa hiệu quả nên mình mới đưa ngay trường hợp này lên. (Nói chung như mình đã nói thuật toán còn xử lý thêm nhiều nữa mới tối ưu được)
Thân chào bạn.
 
Theo tôi nghĩ thì đầu tiên mình làm sao phải tìm ra được số cây thép sẽ dùng để cắt, nếu biết được điều này thì coi như đã làm xong tất cả. Theo tôi nghĩ nếu dùng quy tắc loại trừ thì ta vẫn để sót nghiệm. Bởi vì nều có nhiều tổ hợp nhiều cây thép cùng có chiều dài cắt là 11.7m thì chỉ chọn được 1 tổ hợp, Sau đó dùng quy tắc loại trừ ta sẽ có tổ hợp cắt thép tiếp theocũng có chiều dài là 11.7m. Nhưng nội trong những tổ hợp có chiều dài cắt thép là 11.7 thì cũng có thể sắp xếp thành những tổ hợp có chiều dài cắt thép tối ưu là 11.7m những tổ hợp này có thể kết hopự với những tổ hợp cắt thép chưa tối ưu ( <11.7m) để tạo ra những tổ hợp mà có chiều dài đoạn thép dư nhỏ hơn những quy tắc loại trừ.

Vấn đề bây giờ là tìm ra tổng số cây thép cần cắt sau đó sẽ tìm ra cách cắt như thế nào để lượng thép dư là nhỏ nhất. Tôi đang suy nghĩ vấn đề này.
Anh Em coi rồi cho ý tưởng với

Cảm ơn Anh Em vì tất cả.
Mong được học hỏi !
 
File Cat Sat ToiUu cua ban SoiBien sửa lại khi chạy (click vào combo Toi Uu) thi báo lổi : "compile eror ; Can't find project or library" xin SoiBien cho biết lý do. Thanks
 
KimNamCham đã viết:
File Cat Sat ToiUu cua ban SoiBien sửa lại khi chạy (click vào combo Toi Uu) thi báo lổi : "compile eror ; Can't find project or library" xin SoiBien cho biết lý do. Thanks

File mình làm dùng công cụ Solver của Excel. Có lẽ là bạn chưa cài addin này. Bạn hãy vào menu tools, addin, click chọn addin solver trong list (có thể bạn sẽ cần đĩa source của bộ office bạn đang sử dụng trên máy tính)

Thân.
 
Goi cac Anh Em !

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 !
 

File đính kèm

Lần chỉnh sửa cuối:
Hay lắm Mai Văn Trí....Chương trình rât hữu ích cho thi công. Thank
mình ( Thanh _Chương mập ) có vài ý kiến như sau:
Chương trình cắt thép trên ứng dụng cắt thép cho thi công là chính, nhưng ưng với từng giai đoạn thi công ta mới tiến hành cắt thép ( ra thép ) tương ứng với giai đoạn thi công.... nếu chương trình có module import data từ file thống kê thép ứng với cấu kiện ví dụ : tk thép móng, khi đó tiến hành ra thép phần móng.
 
dữ liệu cột "số thanh" và "chiều dài 1 thanh" được nhập tự động từ file thống kê thép thì sẽ rất nhanh..... giảm số lần nhập số thanh và chiều dài thanh thép:
1 lần cho phần thống kê, và 1 lần nữa cho ra thép trong chương trình trên.
 
Thuật toán cho bài toán này quả là quá khó, Tôi đã Test với số liệu (file kèm theo) với files của các bạn gửi lên cho kết quả không theo mong muốn.
File này kèm theo cách giải thủ công, mọi người cố gắng tìm thuật toán nhé!
Chúc sớm thành công!
 

File đính kèm

Xin các bạn cho phản biện.

Trong xây dựng thì thép thanh được nối theo 2 cách thông dụng sau:
* Hàn nối
* Chập lên nhau & nối;
Với hàn nối thì độ dôi không đáng kể;
Với chập nối thì khoảng độ chập (chồng) lên nhau này có ghi trong TCVN;
Thép ngắn được các nhà cung cấp bán theo cấp chiều dài, thường gặp các loại sau: loại 3m, 4,5m , 6m & 9m; Một loại ngắn khác nữa là do ta tạo ra ngắn trong quá trình sử dụng;
Mình đề xuất cách giải theo hướng thép được nối chập lên nhau;
Xin các bạn xem file đính kèm & cho biết ý kiến!
PHP:
Option Explicit
Const Chap As Double = 0.2
Sub ThepNgan()
 Dim lRow As Long, jZ As Long, lDem As Long, jW As Long
 Dim i20 As Double

1   'Tao Du Lieu Ngau Nhen'
    Range("A2:A201").Select
    Selection.FormulaR1C1 = "=2+INT(75*RAND())/10"
    Selection.Copy
    Range("A2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
 
2   'Copy Du Lieu Sang Cot Ben De Lam Bang Chung'
    Selection.Copy:                 Range("B2").Select
    ActiveSheet.Paste:              Application.CutCopyMode = False
    Range("B1").Select:             Selection.Value = "Copy"
3   'Xep Cot Theo Chieu Giam Dan'
    SortCol Columns("B:B"), Range("B2")
5   'Tim Nhung Thanh Qua Ngan De Noi 3'
    lRow = Range("B65432").End(xlUp).Row
    Range("C2:D" & lRow + 9).Clear
    i20 = 11.7 + Chap - Cells(2, 2).Value
    For jZ = lRow To 2 Step -1
        If Cells(jZ, 2) >= i20 Then Exit For
    Next jZ
    i20 = (lRow - jZ) Mod 2
    Range("B2:B" & jZ + i20).Copy Destination:=Cells(2, 3)
    Range(Cells(jZ + i20 + 1, 2), Cells(lRow, 2)).Copy Destination:=Cells(jZ + i20 + 1, 4)
6   'Gop 2 Thanh Qua Ngan Mot Thanh'
    lDem = Range("C65432").End(xlUp).Row + 1
    For jZ = lDem To (lRow + lDem) \ 2
        With Range("C" & Range("C65432").End(xlUp).Row + 1)
            .Value = Cells(jZ, 4) + Cells(lRow - jW, 4) - Chap
            .Interior.ColorIndex = 38
        End With
        jW = 1 + jW
    Next jZ
7   'Nhu Dong (3)'
    SortCol Columns("C:C"), Range("C2")
8   'Chia Nhom Theo Dung Sai'
    i20 = Cells(2, 3) - Chap:                 lDem = 0
    For jZ = 2 To lRow
        With Cells(jZ, 3)
            If .Value < i20 Then
                .Offset(-1, 1) = lDem:            lDem = 1
                i20 = Cells(jZ, 3) - Chap
            Else
                lDem = lDem + 1
            End If
        End With
        If jZ > lRow / 2 And i20 < 5.7 Then Exit For
    Next jZ
End Sub
Mã:
[B]Sub SortCol(Rng As Range, Clls As Range)[/B]
 Rng.Select
 Selection.Sort Key1:=Clls, Order1:=xlDescending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal
[B]End Sub[/B]
http://www.nowupload.com/:EMQ
:EMQ
 
Lần chỉnh sửa cuối:
+ Góp ý một chút về code

đoạn này
PHP:
1   'Tao Du Lieu Ngau Nhen' 
    Range("A2:A201").Select 
    Selection.FormulaR1C1 = "=2+INT(75*RAND())/10" 
    Selection.Copy 
    Range("A2").Select 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
        :=False, Transpose:=False

Nên sửa thành:

PHP:
1   'Tao Du Lieu Ngau Nhen' 
    Range("A2:A201").Select 
    Selection.FormulaR1C1 = "=2+INT(75*RAND())/10" 
    Selection.Value=Selection.Value

+ Có chưa được tối ưu bác SA ah, với cả thế này -> hóa ra là cắt ngẫu nhiên -> sau đó mới xét cái còn lại,..

+ Tuy vậy đây cũng là 1 cách làm rất hay -> có tính thực tế khi đã cắt ngẫu nhiên dở dang,
.
 
SA_DQ đã viết:
Trong xây dựng thì thép thanh được nối theo 2 cách thông dụng sau:
* Hàn nối
* Chập lên nhau & nối;
Với hàn nối thì độ dôi không đáng kể;
Với chập nối thì khoảng độ chập (chồng) lên nhau này có ghi trong TCVN;
Thép ngắn được các nhà cung cấp bán theo cấp chiều dài, thường gặp các loại sau: loại 3m, 4,5m , 6m & 9m; Một loại ngắn khác nữa là do ta tạo ra ngắn trong quá trình sử dụng;
Mình đề xuất cách giải theo hướng thép được nối chập lên nhau;
Xin các bạn xem file đính kèm & cho biết ý kiến!
.........................................
Bài toán trên có vấn đề như sau:
1. Loại thép đặt tại nhà máy khác Ltc = 11.7m (với số lượng lớn thì họ mới sản xuất, và phải được tư vấn chấp thuận)
Để đặt loại hàng này ta phải Tính và thống kê các loại thép của công trình, và khi mua về ta chỉ việc sử dụng => Không cần bài toán nối thép.
2. Trong quá trình thi công phải kết hợp giữa thanh nguyên (cắt từ thép có Ltc = 11.7m) và các thanh thép (ngắn) còn dư trong quá trình làm. Không để cuối công trình mới thực hiện việc ghép nối. Hoặc giả sử thi công 1 cấu kiện bê tông cốt thép có 1 loại thép duy nhất thì ta phải thực hiện việc cắt nối sao cho tiết kiệm nhất: KL thi công <= KL thiết kế x hệ số hao hụt.
3. Việc tạo ra một loại thanh mới (để ghép nối với các loại thanh dư) phải căn cứ vào chiều dài thanh dư, thép tiêu chuẩn L=11.7m và các loại thanh Li cần làm chứ không thể tạo ra loại mới theo phương pháp ngẫu nhiên được.

Quay về bài toán này, Ví dụ chỉ xét đến chiều dài, chưa xét đến số lượng thanh
Giả sử có các loại thanh Li <11.7m cần làm
Lnoi - Chiều dài nối tối thiểu giữa 2 thanh
Bài toán đặt ra: Cắt từ các thanh 11.7m ra các loại thanh Li và đoạn dư Lj (nếu có)
- Tổ hợp các loại thanh để kiểm tra điều kiện: Sum Li (i = 1 - n) = 11.7 => Ta đã loại ra các thanh có thể cắt từ 11.7m mà không phải nối.
- Các thanh Li còn lại sẽ được cắt từ cây 11.7 và dư 1 đoạn Lj, trong quá trình thực hiện kiểm tra:
Hoặc Sum Lj (j =1-m) + (m -1) x Lnoi = Li (m càng nhỏ càng tối ưu; = 2: nối 2 thanh)
Hoặc Lj + L(j+1)/2 + Lnoi = Li (thanh Lj nối với 1/2 thanh Lj+1 được thanh Li nào đó)
Hoặc ……………………………….
(Các điều kiện cho vào kiểm tra sao cho tổ hợp các thanh dư tạo thành thanh cần cắt)
Bài toàn này thuật toán quá phức tạp nên chúng ta nên tiến hành từng bước 1 cho từng trường hợp. Ví dụ 1 loại thanh, 2 loại, … 10 loại (quá lý tưởng).

Mời các bạn thử sức!
 
Ban su dung phan mem WinQSB lam ngon lanh!

_________________________

Viết bài bằng tiếng Việt có dấu bạn nhé!
 
Chỉnh sửa lần cuối bởi điều hành viên:
Cắt Nối Thép Thi Công "Tối Ưu"

VADaNang đã viết:
+ Mình có 1 bài toán tối ưu chưa tìm ra thuật toán. Mong được giúp đỡ.

Bài toán cụ thể như sau:
Đầu vào:
Ta có N1 cấu kiện có chiều dài L1 (real)
N2 cấu kiện có chiều dài L2 (real)
.....................................................
Nn cấu kiện có chiều dài Ln (real)
Trong đó N1, N2 ... Nn là số cấu kiện của cấu kiện có chiều dài tương ứng L1, L2 ..., Ln.

Đầu ra:

Phân tích tìm ra tổng số tổ hợp của tất cả các cấu kiện trên sao cho thoả mãn điều kiện :
N1x . L1 + N2x.L2 + + Nnx.Ln gần bằng 11,7(m) với sai số cho trước
Trong đó N1x, N2x ... Nnx là số cấu kiện ứng với từng chiều dài L1,L2....
để sao cho số thanh còn lại (không nằm trong các tổ hợp) là ít nhất.

Cụ thể các tổ hợp cần tìm thoả mãn điều kiện:
N11 . L1 + N21x.L2 + + Nn1x.Ln gần bằng 11,7(m) với sai số cho trước
N12 . L1 + N22x.L2 + + Nn2x.Ln gần bằng 11,7(m) với sai số cho trước
..................
v.v.v...........
Trong đó :
N11+N12+......= gần tiến tới N1 (gần bằng N1)
N21+N22+......= gần tiến tới N2 (gần bằng N2)
........................
Nn1+Nn2+......= gần tiến tới Nn (gần bằng Nn)

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é!
 

File đính kèm

Bài toán tối ưu cắt thép

Gởi các Anh Em chương trình cắt thép tôi mới sửa lại khắc phục 1 số lỗi. Anh Em kiểm tra và cho ý kiến giúp.
 

File đính kèm

Cảm ơn các bác, tôi mới ra trường vừa đi thi công thì vướng ngay bài toán này. Mong các bác tiếp tục hoàn thiện các tiện ích này để cho anh em thi công đỡ vất vả hơn. Một lần nữa cảm ơn các bác!
 
Bác Mai Văn Trí có thể tích hợp cả nối thép vào phần mềm của bác được ko? Ở một số công trường ko có điện để hàn nên nối thép bằng cách buộc có chiều dài mối nối khoảng 30D khá lãng phí, bác có thể bổ xung vào cho tiện ích của bác một mội mối nối cho một thanh thép ko? Xin cảm ơn bác!
 
Lần chỉnh sửa cuối:
bác SQ_DA àh link của bác tui không download được bác vui lòng gửi cho tui 1 bản cắt thép vào địa chỉ npthao80@yahoo.com được kô tui; cảm ơn bác nhiều nhé tui đang cần gấp
 
Cám ơn bạn rất nhiều mình đang vướng mắc vấn đề cắt thép này.Mong mọi người cố gắng giúp đỡ!
 
Bài toán cắt nối thép tối ưu là một vấn đề hết sức quan trọng trong việc tiết kiệm được vật liệu, Nhất là đối với dân thi công trực tiếp như mình. Giá thép bây giờ cao cắt cổ mình lại không biết gì về lập trình tính toán. Mong các bạn cùng góp sức hoàn chỉnh phai cắt nối thép. Nếu được thì tôi xin mua bản quyền. Chào các bạn
 
cai cat thep cua Mai Văn Trí hay đấy nhưng không thật sự tối ưu
điển hình là tôi làm từ bài ví dụ của cậu thì chỉ sử dụng 14 cây thôi mà bạn phải dùng đến 15 cây
tôi mới gia nhập nên không biết cách gởi bài các bạn chỉ đi tôi sẽ gởi cách tính
 
Phai cắt thép của Mai Văn Trí không thể dùng được trong khi thi công. Thực tế mình thi công phải nối thép với chiều dài nối buộc là 30d (d là đường kính thanh thép). Chiều dài 1 cây thép nguyên là 11.7m, Nếu như có 1 chủng loại thép Của hạng mục tường cánh gồm có n1 cây A1(fi25) chiều dài mỗi cây là 40m và n2 cây A2 (fi16) chiều dài mỗi cây là 30m (Ví dụ như thế đi) thế thì phải cắt như thế nào và nối như thế nào?. Phai của bác Mai Văn Trí không thể thực hiện được. Vì vậy mà phai đó không có tính thực tế. Cái thể loại này từ trước đến nay mình toàn tính thủ công rất mệt. Mong các cao thủ ra tay xử lý vấn nạn trên. Nó rất có ích trong thi công. Rất tiếc mình không biết về lập trình nên không có ý kiến gì thêm. Chào tất cả các bạn.!
 
nguyen vuong ! khi thi công nối thép thì bạn phải chủ động nối thép ở đoạn nào chứ và định ra chiều dài thanh để đưa vô tính tối ưu khi phối hợp cắt thôi. chứ làm như bạn nói sao làm được trong 1 câu kiện theo từng người thì cách bố trí khác nhau
 
Hiện nay tôi đang hoàn thiện code Cắt nối thép tối ưu, với ví dụ cụ thể như sau:
Có 5 loại thanh ký hiệu 1, 2, 3, 4, 5
tương ứng chiều dài: L1, L2, L3, L4, L5 (chiều dài có thể là tùy ý: Li >= 1170cm hoặc Li < 1170cm)
tương ứng số lượng: N1, N2, N3, N4, N5
Cần sử dụng bao nhiêu cây thép tiêu chuẩn L=1170 (hoặc Lj nào đó do ta quy định) để cắt nối thành số lượng các thanh trên, phương án cắt nối như thế nào?
Tối ưu ở đây bao gồm:
1 . Phải đưa ra phương án cắt nối để số lượng thanh thép gia công = (N1+N2+N3+N4+N5) -> Min
2. Số cây thép L1170 sử dụng là ít nhất (< hơn định mức cho phép, hoặc nhỏ hơn cả thiết kế nữa là tốt nhất = cắt ngắn đi mỗi thanh 5-3cm).

Có thể sau 1 lần tính kết quả đạt mỹ mãn hoặc cũng phải tính đi tính lại vài ba lần mới đạt kết quả mong muốn.

Ngôn ngữ Visual Studio 2008, để sử dụng máy tính cần cài:
- Excel 2007
- .net Famework 3.5
- Visual studio Tools for Office V3.0

Dự kiến đầu tháng 11 tôi sẽ upload lên, bác nào quan tâm cho ý kiến nhé!
 
Gửi bạn mai van tri! đầu tiên mình cám ơn bạn đã hổ trợ A & E xây dựng
minh có các loại thép cần cắt là D10: 29c 1.82m, 46c 11.7, 20c 10.8, 18c 2.08, 17c 7.15, 21c 3.33, 181c 1.46m.
Mình cắt thủ công thì sử dụng 113cây D10 nhưng Chương trình của bạn tính 115cây D10.
Vậy bạn ráng hòan thiện chường trình nhé
 
cai ong mai van tri hay day nhung chua cat duoc
toi cat từ ví dụ thì ít hơn cái làm sẳn
dù sao phải nhận định rằng ông mai văn trí rất tích cực
cần phải nghiên cứu thêm!
 
Gửi bạn mai van tri! đầu tiên mình cám ơn bạn đã hổ trợ A & E xây dựng
minh có các loại thép cần cắt là D10: 29c 1.82m, 46c 11.7, 20c 10.8, 18c 2.08, 17c 7.15, 21c 3.33, 181c 1.46m.
Mình cắt thủ công thì sử dụng 113cây D10 nhưng Chương trình của bạn tính 115cây D10.
Vậy bạn ráng hòan thiện chường trình nhé


cây 11700 thì đem vào cắt làm gì
cho nó chạy chậm
 
Gửi bạn mai van tri! đầu tiên mình cám ơn bạn đã hổ trợ A & E xây dựng
minh có các loại thép cần cắt là D10: 29c 1.82m, 46c 11.7, 20c 10.8, 18c 2.08, 17c 7.15, 21c 3.33, 181c 1.46m.
Mình cắt thủ công thì sử dụng 113cây D10 nhưng Chương trình của bạn tính 115cây D10.
Vậy bạn ráng hòan thiện chường trình nhé
 
cây 11700 thì đem vào cắt làm gì
cho nó chạy chậm[/quote]
 
Việc giải bài toán này chính xác thì đã có khá lâu rồi (hình như là năm 1961). Nhưng để chạy trong trường hợp nhiều loại thép và chiều dài 1 thanh của từng loại nhỏ hơn nhiều với chiều dài định hình thì rất rất chậm. Nói chung tìm lời giải để nhanh mà chính xác tuyệt đối với số lượng lớn thì ko có lời giải.
 
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.

File update 15/9/2011
file hướng dẫn (kèm theo chương trình): http://www.mediafire.com/file/7tzjisg1s74hh4q/Hep.rar
file chương trình: http://www.mediafire.com/file/z0l9l8u8b22s2nn/CutBarsSteel.zip
[video=youtube;P1mVv_sd9e8]http://www.youtube.com/v/P1mVv_sd9e8[/video]
 

File đính kèm

Lần chỉnh sửa cuối:
Bác nguyentuhp ơi. Bác làm ơn đơn giản hóa phai cài đặt Cutbarsteel đi, cài phức tạp quá mà tôi có cài đặt được đâu. Chưa biết hiệu quả tính toán như thế nào. Máy của em cài mãi mà chưa được. Tôi lại dùng excell 2003 và cad 2004 thôi. Theo yêu cầu của bác phải là excell 2007 và cad 2008 cơ. Lại phải cài thêm cái netframe gì đó nữa, phức tạp quá. Đã vậy giá cả phần mềm lại hơi cao. Tôi thấy không ổn. Mua phần mềm của công ty hài hòa cũng không đắt bằng của bác. Mọi người có thấy như vậy là vô lý không.
 
Choa!!! Cái soft của bác nguyentuhp cài đặt loằng ngoằng quá. Em ước tính là để sài được cái soft của Bác ngoài chi phí bỏ ra mua soft ra em phải bỏ ra 1 khoản đi học thêm 1 chút về IT để cài đặt được chương trình, chưa hết chắc phải bỏ thêm 1 ít kha khá để nâng cấp cái máy tính lên nữa đê có thể cài đặt được office 2007 và AutoCad 2007.
Đơn giản hóa đi bác ơi! Em không biết phương pháp cắt nối thép của Bác tối ưu đến đâu nhưng trước hết em nghĩ bác nên tôi ưu cách cài đặt sử dụng chương trình đã! Cứ để như này chắc 1 mình Bác sài cái soft của Bác quá!!!
http://www.giaiphapexcel.com/forum/member.php?u=18155
 
các bạn post phần mềm để anh em chiasẽ, đừng post quảng cáo

Cái cut bar steel quỷ sứ gìđó chì là file quảng cáophần mềm và bản demo mà có rất nhiều bạn post len lam gì ko biết. Vì một việt nam tiến bộ chúng ta hãy chia sẽ phần mềm mình có mộtcách free. Chúc mọi ngườikhỏe mạnh
 
Có ai ở HN quen các thầy cô giáo ở khoa kinh tế xây dựng trường ĐHXD HN thì có thể liên hệ xin bài toán này, ngày trước tôi có được học bài toán này và bài toán vận tải, rất hay nhưng lâu rồi không còn nhớ nữa. Đây là một trong số các bài toán kinh tế trong xây dựng.
Tôi cũng sẽ liên hệ lại với bạn học cũ xem có ai còn nhớ không rồi tôi sẽ post lên chia sẻ cùng mọi người. Vì một việt nam tiến bộ ...
 
ban ah
minh dang vuong phan nay
nhung chua biet the nao
độ tin cậy là bao nhiêu nhỉ
àh, co thể các bạn biết phuong pháp cắt thép, dùng cad ấy
nhưng tổng hợp lâu quá
hi
đây là số máy của mình
0918919985
có gì trao đổi nhé
 
Ồ, lâu nay mình cứ mãi mê đi tìm Key của phần mềm Cut Bars Steel mà không làm sao tìm được nay đọc bài của bác nduyh thì buồn quá hết cả hi vọng.
Ngoài những cách trên thì còn phần mềm Bar Cut Optimizer & Manager. version 123 cũng dùng cho chức năng này nhưng cũng không có pass và giao diện tiếng anh các bác à
 
binhkyen, nếu bạn cần tôi có thể gửi cho bạn
 
Cảm ơn bạn VTD XD, nếu có thể bạn cho tôi thì tôi cảm ơn bạn nhiều lắm. bạn có thể gửi cho tôi vào binhkyen@gmail.com hoặc gửi lên diễn đàn để mọi người cùng chia sẻ không.
 
Bạn VTD XD có thể gửi cho tôi cái pass phần mềm Bar Cut Optimizer & Manager. version 123 được không? Thật sự tôi đã đọc hết tất cả những bài viết của các bạn trong diễn dàn này rồi. Tôi cũng đã thử dùng qua các chương trình mà các bạn đã thảo luận. Cái Cut Bars Steel thì tôi cũng đã cài được và cũng đã dùng thử rồi, nhưng tác giả cố không cho cả việc dùng thử, chương trình này cài đặt quả là rất tốn thời gian và khó.
Những ai đã từng đi thi công, từng phụ trách việc ra detail thép thi công cho công trình mới thấy giá trị của việc cắt thép hợp lý và tiết kiệm. Theo tôi thì chúng ta không cần quan tâm đến việc nối thép, vì bộ phận shop drawing của công trường khi vẽ BV shop đã làm rồi, họ cũng đã tính toán vị trí mối nối ở nhịp và ở gối như thế nào cho hợp lý! Chúng ta sẽ chỉ quan tâm làm sao cho ra những tổ hợp cắt thép sao cho tối ưu nhất (đoạn dư thừa còn lại từ cây 11.7m là nhỏ nhất). Do đó bài toán của chúng ta thực chất là bài toán về qui hoạch tuyến tính để tìm ra tổ hợp tối ưu.
Tôi cũng là dân thi công, từng làm qua công tác shop drawing, từng phụ trách ra detail thép cho công trình. Vì vậy tôi cũng rất quan tâm đến vấn đề này.
Bạn VTD XD có thể gửi cho tôi cái pass phần mềm Bar Cut Optimizer & Manager. version 123 được không. email của tôi :longsonvt@yahoo.com
 
.... Cái Cut Bars Steel thì tôi cũng đã cài được và cũng đã dùng thử rồi, nhưng tác giả cố không cho cả việc dùng thử ...
Phiên bản này dùng thử bình thường bạn à!

... Theo tôi thì chúng ta không cần quan tâm đến việc nối thép, vì bộ phận shop drawing của công trường khi vẽ BV shop đã làm rồi, họ cũng đã tính toán vị trí mối nối ở nhịp và ở gối như thế nào cho hợp lý! Chúng ta sẽ chỉ quan tâm làm sao cho ra những tổ hợp cắt thép sao cho tối ưu nhất (đoạn dư thừa còn lại từ cây 11.7m là nhỏ nhất)...
Cái này bạn hiểu cứng nhắc quá! giả sử cần 1 thanh chiều dài 14m, thiết kế đâu quy định là dùng 2 thanh 7m? bạn có thể tận dụng các thanh thép thừa ví dụ: 2.5 m + 11.7m = 14.2m; 1m + 6m + 7.4m = 14.4m - Trường hợp này là tính nối thép đó bạn!

Ví dụ
Không sử dụng nối thép - Phiên bản dùng thử: Cần sử dụng 113 cây L1170, dư 1 đoạn 8.7m
D|20|mm|No|1|2|3|4|5|6|7|8|
Kjoint|10|D|L (cm)|333|444|300|200|100|350|480|790|
Ljoint|20|cm|Quantity|90|48|20|50|80|54|42|18|
Err+|30|cm|OK|90|48|20|50|80|54|42|18|
Err-|5|cm|not OK|0|0|0|0|0|0|0|0|
960|24|40|1170|2| | | | | |1| |
540|30|18|1170| | | | | |1| |1|
442|26|17|1170| |1| | | |2| | |
364|26|14|1170| |1| |3|1| | | |
234|26|9|1170| |1|2| |1| | | |
182|26|7|1170| |1| | |7| | | |
16|4|4|1170|2| | |2|1| | | |
14|7|2|1170|1| | | | |1|1| |
26|26|1|1170| |1|1||4| | | |
870|870|1|1170| | |1| | | | | |

Nếu tính nối thép - Phiên bản đăng ký: Sử dụng 111 cây L1170, dư 1 đoạn 5.2m
D|20|mm|No|1|2|3|4|5|6|7|8|
Kjoint|10|D|L (cm)|333|444|300|200|100|350|480|790|
Ljoint|20|cm|Quantity|90|48|20|50|80|54|42|18|
Err+|20|cm|OK|90|48|20|50|80|54|42|18|
Err-|5|cm|not OK|0|0|0|0|0|0|0|0|
80|4|20|1170|2| | |2|1| | | |
40|4|10|1170|2| |1|1| | | | |
56|7|8|1170|1| | | | |1|1| |
28|4|7|1170|2| | | |5| | | |
40|40|1|1170| | |1| | |1|1| |
520|520|1|1170| | | | |3|1| | |
-36|-4|9|2340| |1| | | |4|1| |
-36|-4|9|2340| |1|1| | | | |2|
-24|-3|8|2340|1| | | |2|1|3| |
0|0|6|2340| |5| | |1| | | |
Do đó bài toán của chúng ta thực chất là bài toán về qui hoạch tuyến tính để tìm ra tổ hợp tối ưu ....
Bài toán dạng này là Tổ hợp tối ưu, để đưa ra kết quả chính xác dạng bài toán này là không thể, nhưng đưa ra kết quả chấp nhận được là có thể và việc lập được phương trình bài toán quy hoạch này cũng không phải đơn giản.
 
Lần chỉnh sửa cuối:
Tôi sẽ có vài suy nghĩ sau!vì hôm nay ngồi viết rất nhiều nhưng giữa chừng máy bị treo phải restart nên mất hết rồi.
 
Lần chỉnh sửa cuối:
Gửi anh nguuyentuhp !

1. Có thể phiên bản dùng thử của anh tôi cài không hoàn chỉnh nên dùng chưa được.
2. Trong các bài viết của các anh trên DĐ tôi thấy có nhiều ý kiến cho rằng ta chỉ cần đi tìm cắt tổ hợp cắt thép sao cho hợp lý thôi là đủ rồi, tức là bài toán của chúng ta gói gọn trong việc cắt thép mà thôi, và cái hướng mà anh Mai-Van-Trí đi tìm là hợp lý, chỉ có điều độ chỉnh xác mà chương trình ảnh viết là có tin tưởng tuyệt đối được không thôi.
3. Từ thực tế thi công ngoài công trường, Tôi có vài dòng suy nghĩ gửi đến anh như sau:
+ Anh muốn tạo ra cây thép dài 14m bằng cách tận dùng thép thừa : 2.5m +11.7m = 14.2m (tức là dùng 1 mối nối dài 0.2m); hoặc 1m + 6m + 7.4m = 14.4m (tức là dùng 2 mối nối, chiều dài mỗi mối nối là 0.2m)? Xin thưa rằng đâu phải anh muốn nối thép ở bất kỳ vị trí nào là được đâu. Vị trí nối thép phải được thực hiện tại 1 vị trí sao cho hợp lý nhất, tức là tại đó moment là nhỏ. Hiện nay ngoài công trường, nối thép có 3 kiểu nối: nối chồng bằng kẽm buộc (chiều dài nối là dài nhất); nối hàn (1 mặt hoặc 2 mặt - chiều dài từ 5d-10d); nối bằng ren ốc (coupler - chiều dài nối là = 0). Ví dụ như ta cần tiến hành nối thép của 1 dầm liên tục nhiều nhịp, việc nối thép chỉ có thể được áp dụng cho các thép chủ trên và dưới, thép tăng cường không được nối. Thép chủ trên sẽ được nối càng gần giữa nhịp càng tốt, thép chủ dưới nối càng gần gối càng tốt. Tất nhiên là sẽ có 1 khoảng cách theo quy định của thiết kế hoặc theo tiêu chuẩn quy phạm hiện hành.
+ Ở công trường có một bộ phận phụ trách việc triển khai BV thi công từ BV thiết kế - bộ phận Shop Drawing, trong quá trình triển khai BV thi công, họ đã tính toán xem là nối thép ở vị trí nào rồi cũng như là sẽ xác định được chiều dài đoạn nối (tất nhiên họ cũng phải trải qua nhiều phương án rồi mới cho ra vị trí nối cuối cùng), BV Shop trước khi đưa ra thi công phải được duyệt qua trước (BCH công trường rồi tới TVGS). Sau đó ta sẽ có 1 bảng thống kê thép theo thi công thực tế có cắt nối thép (tức là trong bảng thống kê này, sẽ chỉ bao gồm những thanh thép đã được cắt ra hết rồi, nó sẽ nhỏ hơn hoặc bằng 11.7m). Từ bảng thống kê này ta (những người tính cắt thép) lọc ra các thanh có cùng đường kính để tiến hành làm bài toán cắt thép. Và công việc của chúng ta là ở đây - giải quyết bài toán cắt thép tối ưu.
+ Tóm lại, sau khi ra detail thép ta sẽ có 1 bảng tổng hợp bao gồm: 1 cột chiều dài thép và 1 cột số lượng tương ứng của mỗi loại thép. Từ bảng trên ta đi tìm ra những tổ hợp cắt thép tối ưu nhất (đoạn dư thừa của cây 11.7m sau khi cắt là ngắn nhất). Vì vậy chúng ta không cần quan tâm đến việc nối thép: do nối thép phải đúng vị trí hợp lý (có moment nhỏ nhất). và việc này chỉ có chúng ta tự làm thôi , máy tính không giúp được. Điều chúng ta cần quan tâm là chỉ giải quyết mỗi bài toán cắt thép đúng nghĩa thôi.
Vài dòng suy nghĩ, nếu được xin anh cho ý kiến!
 
Lần chỉnh sửa cuối:
Tôi thấy bạn vẫn chưa hiểu hết ý nghĩa của việc cắt thép tối ưu. Trình tự triển khai thép cho 1 kết cấu, hạng mục, công trình, dự án như sau:
1. Tổng hợp khối lượng thép thiết kế
2. Tính toán gia công (hạ liệu) để mua thép
Bài toán kinh tế đặt ra là so sánh giữa: KL thép thi công và KL thép thiết kế x hệ số hao hụt theo định mức ( KL Định mức)
Nếu hiểu theo cách của bạn giả sử "bộ phận Shop Drawing" cứ bố trí cứng nhắc theo cách hiểu của họ thì bạn phải gia công theo đúng cách đó và KL thép thi công lúc này chắc chắn đến 90% sẽ lớn hơn rất nhiều so với KL thép Định mức. Đã sinh ra ông bạn "bộ phận Shop Drawing" mà không triển khai cắt thép như thế nào cho Tối ưu, tiết kiệm thì nên bỏ ông này đi.

Thông thường cách làm như sau: Tính toán hạ liệu thép xong, sau đó mới bố trí các thanh có mối nối trong cấu kiện sao cho hợp lý bằng cách bố trí: lớp trên - lớp dưới, hoán vị các thanh nối với nhau. Vị trí hợp lý ở đây phải hiểu theo khả năng chịu lực, dễ thi công + thẩm mĩ, ...
+ Chịu lực: Đối với thép chịu kéo - Mối nối nên tránh ở những vị trí chịu lực lớn, cái này bạn quan tâm đến Mô men dương, tránh vị trí mô men lớn nhất. TCXD đã quy định chung chung bạn đừng dại chọn vị trí Mô men nhỏ nhất (tối ưu an toàn về khả năng chịu lực của kết cấu nhất), bạn phải hiểu rằng từ chỗ "chấp nhận được" chuyển sang "tối ưu nhất" cần 1 chi phí rất lớn. Trong 1 mặt cắt ngang của kết cấu số mối nối không vượt quá 25% (cốt trơn), 50% (cốt có gờ)
+ Dễ thi công + thẩm mĩ: thông thường bố trí đối xứng dọc theo tim của cấu kiện để Công nhân dễ nhớ, thao tác sẽ nhanh hơn.
...
Sau đó tiến hành bản vẽ thi công chi tiết: Cắt thép từ cây thép tiêu chuẩn như thế nào, bố trí mối nối ra sao -> Đây mới thực sự là cắt nối thép tối ưu đó bạn.
 
Cắt thép tối ưu

Tôi xin có vài dòng mạo muội!
Về cơ bản cái gốc của vấn đề bạn nguyentuhp giải quyết hoàn toàn đúng. Bộ phận shopdrawing hay bất kỳ bộ phận nào cũng đều phục vụ cho nhà thầu thi công thế nào tiết kiệm nhất về mặt chi phí (vật liệu và cả nhân công).
Vị trí nối cốt thép có thể tận dụng những cây thừa (cây ngắn) miễn sao thỏa chiều dài đoạn nối chồng trong vùng chịu kéo hoặc trong vùng chịu nén (tất nhiên còn tùy thuộc vào quan điểm của tư vấn, nếu họ không approve thì cũng bằng thừa). Quan điểm của cá nhân mình là nối chỗ nào cũng được (should chứ không phải do not) miễn sao thỏa đk trong vùng chịu nén hay kéo) tuy nhiên cần phải cân nhắc lại là tận dụng những cây thừa sẽ tiết kiệm vật liệu nhưng phải so sánh với thời gian và công lắp đặt có lắc nhắc không. Tất nhiên có rẻ hơn 1 đồng nhưng thời gian cũng như nhau thì nhà thầu cũng nên làm.
Ví dụ : 1 cây thép thừa có đường đính d = 40, dài 3m nếu nối chồng 60d, chiều dài tận dụng được là 3m-2.4 =0.6m. Sắt vụn mình ví dụ bằng 30% giá gốc (giả sử giá gốc là 10.000đồng/kg), bạn đã tận dụng được 0.6m*9.87kg/m*10.000*100% - 3m*9.87kg/m*10.000*30% = 9.87*10.000*(0.6*100%-3*30%) < 0 => không có lợi về mặt vật liệu (chưa kể đến nhân công). Vì thế mình nghĩ phần mềm bạn viết rất hiệu quả khi người dùng biết áp dụng vào từng trường hợp cụ thể. Vài dòng nhăng cuội, nếu có điều gì không phải mong bạn bỏ qua.
 
Cái này tôi thấy người ta quảng cáo có phần mềm CP Manager có thể giải quyết được bài toán cắt nối thép theo yêu cầu. Tôi hỏi thì thấy giá tới 2500 EUR (Gớm thật - Mua phần mềm này chắc phải mua cùng con dao cắt cổ luôn cho rồi). Bác nào có phiên bản gì giá cả hợp lý thì còn mua được. Cao quá thì bó tay.
 
em cũng dân xây dựng đây . nhưng em chỉ nghĩ là làm bằng tay với excel chứ chưa bao giờ nghĩ viết thuật toán bác nào có chương trình thì gửi cho em với addess của em là: tienthanh_lg85@yahoo.com
 
Bác mai_van_tri hay bác nguyentuhp có thể đưa giải thuật (viết bằng giả mã hay pascal chẳng hạn) giúp mọi người được không?
Em muốn hiểu rõ bản chất. Cảm ơn 2 bác trước !
 
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.
 
Đọc kỹ từng phần thảo luận của các bạn thì mình hiểu đại ý thế này:
- Thép là một thành phần không thể thiếu trong bất cứ công trình xây dựng nào.
- Thép chiếm 1 tỷ trọng tương đối lớn trong gói chi phí vật liệu xây dựng.
- Thế nhưng, khi bạn nhập nguyên liệu về, thì nảy sinh vấn đề là làm sao để tỷ lệ hao phí của thép trên tổng nguyên vật liệu thép là nhỏ nhất.
- Và bạn đang loay hoay đi tìm thuật toán tối ưu để dùng trong việc tính toán ra thép, (cắt thép) làm sao cho số thép vụn hao phí là thấp nhất. Nghĩa là bạn đang cố tìm tòi cho ra phương pháp cắt để giảm KL hao hụt xuống thấp nhất.
Tóm lại, nếu cách mình hiểu vấn đề của bạn là đúng thì oke. "Vấn đề tìm phương pháp cắt để giảm khối lượng hao hụt xuống thâp nhất" đơn giản thôi. Để cho dễ hiểu phương pháp mà bmcn2 đưa ra nhằm giải quyết vấn đề này, các bạn tạm thời quên đi các phần mềm hỗ trợ hay kiến thức hàn lâm ở giảng đường đại học nhé. Các bạn chỉ cần nhớ kỹ năng tổng hợp và các phép toán cộng, trừ , nhân, chia thôi. Nếu các bạn đồng ý để bmcn2 đưa ra phương pháp cho vấn đề này thì tối nay (nếu không đủ thời gian thì thêm tối mai nữa) bmcn2 sẽ đưa lên p/p tối ưu.
Lưu ý là: thường thì sau 10h đêm bmcn2 mới có không gian yên tĩnh cho vấn đề này.
 
Trong xây dựng thì có 2 loại bản vẽ, bản vẽ kiến trúc và bản vẽ thi công. Mà có công trình nào giống công trình nào đâu. Chỉ có quy chuẩn kỹ thuật kết cấu sắt thép ở từng hạng mục kết cấu thôi.
Trực tiếp vấn đề nhé:

  1. Bản vẽ thi công, có phần bản vẽ kết cấu thép công trình. Căn cứ trên bản vẽ kết cấu này, ta lập nên bảng thống kê các loại thép. Kê ra các loại thép cần dùng, nhớ đừng kê thiếu nhé.
  2. Cũng trên bản vẽ này, ở từng hạng mục betong cốt thép và nhớ là có thêm phần sắt chờ, ta liệt kê ra chi tiết , số lượng, chủng loại thép cần dùng. ( Với thép cuộn, trong công trình dân dụng, thường dùng 2 loại sắt pi 6 và pi 8, còn thép thanh thì có loại pi10 đến pi 36, tùy bản vẽ kết cấu thép thôi, thường chiều dài thép thanh là 11.7m, thường dùng thép thanh là loại thép gân)
  3. Lưu ý là: tùy theo bãn vẽ mà chi tiết và số lượng các loại thép thanh phải cắt khác nhau nhé. (pi mấy, chiều bao nhiêu, vị trí của nó là gì, thanh chịu lực chính hay thanh tăng cường, hàn nối hay nối chập, còn gọi là nối gối đầu?)
  4. Với loại thép thanh phải cắt thì bạn hỏi bản vẽ đó các câu hỏi sau, ví dụ:

  • Với pi 24 thì cần bao nhiêu cây 4,6m, bao nhiêu cây 4m, bao nhiêu cây 1,8m bao nhiêu cây 1,2m?
Đến đây thì bạn đã chọn được phương án cắt tối ưu chưa?
Ví dụ: yêu cầu của hạng mục công trình là dùng 100 thanh pi 24. Thế nhưng, nếu bạn cứ cắt theo kiểu cần đâu cắt đó thì chắc 1 điều là bạn cần phải nhập thêm vài chục thanh nữa và số sắt vụn do đó dư quá nhiều luôn, không dùng được thì bán đi rồi ới bmcn2 đi nhậu phát nhé
 
Lần chỉnh sửa cuối:
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

Bạn ơi!
Bạn nói:
Mình đã đọc qua nhưng chưa thấy tối ưu tý nào

Bạn đã đọc qua cái gì (bài nào mà chưa thấy tối ưu vậy?
Và:
mục tiêu của mình là lượng thép vụn nhỏ nhất
Vâng, hiểu. Mình từng thấy 1 phần mềm có tính năng tương tự như cái phần mềm mà các bạn muốn có. Nhưng cái phần mềm đó là của người Nhật và nó thì được dùng trong ngành điện tử.
Theo cảm nhận của mình thì trên gpe này, không thiếu những tài năng lập trình và họ thừa khả năng để viết ra bất cứ phần mềm nào để phần mềm đó trở thành công cụ nhằm giải quyết mục tiêu của yêu cầu công việc. Trong trường hợp này thì bmcn2 tạm đặt tên cho nó là cut steel optimal software (phần mềm cắt thép tối ưu). Bạn chỉ việc đặt hàng bằng cách đưa lên bản mô tả thiết kế phần mềm mà bạn muốn. Thế là vài tháng sau, ta sẽ có được 1 cái cut steel optimal software Made In GPE.
bmcn2 trực tiếp một năm ở công trường, và học được từ những người thợ giỏi phương pháp làm thế nào để đáp ứng mục tiêu của bạn (lượng thép vụn nhỏ nhất). Bạn chọn ra 1 bản vẽ kết cấu thép của một công trình thực tế đi. Chuẩn bị đủ các số liệu về thép của bản vẽ đó. bmcn2 lấy các số liệu bằng cách hỏi và bạn trả lời. Sau đó bmcn2 căn cứ trên thông tin bạn cấp để đưa ra phương thức cắt như thế nào để lượng thép vụn nhỏ nhất.
 
Lần chỉnh sửa cuối:
đú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à.
Lương của kỹ sư nước ngoài là 25 ngàn dollar/năm (giá năm 2005, bmcn2 nhớ như vậy, là dân mới ra trường đó nhé). Còn lương của kỹ sư VN thì làm theo năng suất-hưởng theo nhu cầu nên có 1,8 triệu đồng/tháng thôi. Của người ta thì ngàn, nhưng là ngàn dollar, còn của mình thì triệu, nhưng là triệu đồng.
 
Lần chỉnh sửa cuối:
Bạn ơi!
Bạn nói:

Bạn đã đọc qua cái gì (bài nào mà chưa thấy tối ưu vậy?
Và:
Vâng, hiểu. Mình từng thấy 1 phần mềm có tính năng tương tự như cái phần mềm mà các bạn muốn có. Nhưng cái phần mềm đó là của người Nhật và nó thì được dùng trong ngành điện tử.
Theo cảm nhận của mình thì trên gpe này, không thiếu những tài năng lập trình và họ thừa khả năng để viết ra bất cứ phần mềm nào để phần mềm đó trở thành công cụ nhằm giải quyết mục tiêu của yêu cầu công việc. Trong trường hợp này thì bmcn2 tạm đặt tên cho nó là cut steel optimal soft (phần mềm cắt thép tối ưu). Bạn chỉ việc đặt hàng bằng cách đưa lên bản mô tả thiết kế phần mềm mà bạn muốn. Thế là vài tháng sau, ta sẽ có được 1 cái cut steel optimal soft made in gpe.
bmcn2 trực tiếp một năm ở công trường, và học được từ những người thợ giỏi phương pháp làm thế nào để đáp ứng mục tiêu của bạn (lượng thép vụn nhỏ nhất). Bạn chọn ra 1 bản vẽ kết cấu thép của một công trình thực tế đi. Chuẩn bị đủ các số liệu về thép của bản vẽ đó. bmcn2 lấy các số liệu bằng cách hỏi và bạn trả lời. Sau đó bmcn2 căn cứ trên thông tin bạn cấp để đưa ra phương thức cắt như thế nào để lượng thép vụn nhỏ nhất.

Thú vị thật. Ý tưởng của mình là thế này:
Viết ra một intelligent-software với các tính năng sau:
- Đọc được bản vẽ kết cấu thép công trình. Ta nhập bản vẽ vào. Rồi nhấn nút đọc. Nó xuất ra bảng kết quả đọc của nó là một bảng dữ liệu thống kê các đối tượng sau:
Cột a: Các loại thép cần dùng trong bản vẽ
Cột b: Tổng lượng thép cần dùng của mỗi loại ( đơn vị là kg, tấn hoặc mét, có nút tùy chọn đơn vị xuất)
Vấn đề là phải thống nhất tiêu chuẩn hiển thị ngôn ngữ ký hiệu của bản vẽ.
Hi, bạn nào có hứng thú thì bổ sung hoặc phát triển thêm ý tưởng nha. Lợi ích đầu tiên của tính năng thứ nhất là bạn biết rõ các số liệu của vật liệu thép.
 
Lần chỉnh sửa cuối:
+ Bài này phải dùng thuật toán Vét cạn thôi
Vét tất cả các phương án rồi tìm ra -> phương án tối ưu,

+ hoặc là phương án quy hoạch tuyến tính - nhưng khó tìm được bằng solver

Vét cạn, vét sạch rồi thì còn đâu mà bán phế liệu để nhậu chứ. Từ từ rồi optimal solutions in this case sẽ có thôi mà.
 
Việc giải bài toán này chính xác thì đã có khá lâu rồi (hình như là năm 1961). Nhưng để chạy trong trường hợp nhiều loại thép và chiều dài 1 thanh của từng loại nhỏ hơn nhiều với chiều dài định hình thì rất rất chậm. Nói chung tìm lời giải để nhanh mà chính xác tuyệt đối với số lượng lớn thì ko có lời giải.
Sao không có lời giải chứ? Chỉ là xét trên một tổ hợp rời rạc thôi mà
 
Bác Mai Văn Trí có thể tích hợp cả nối thép vào phần mềm của bác được ko? Ở một số công trường ko có điện để hàn nên nối thép bằng cách buộc có chiều dài mối nối khoảng 30D khá lãng phí, bác có thể bổ xung vào cho tiện ích của bác một mội mối nối cho một thanh thép ko? Xin cảm ơn bác!
Tối ưu sẽ trở thành tối thui khi bạn cố gắng tiết kiệm thép theo kiểu "đo lọ nước mắm-đếm củ dưa hành" dẫn đến chất lượng và tuổi thọ công trình bị ảnh hưởng. Ở VN đã có quá nhiều công trình chưa xong đã sập, chưa dùng đã sửa.
 
Phiên bản này dùng thử bình thường bạn à!


Cái này bạn hiểu cứng nhắc quá! giả sử cần 1 thanh chiều dài 14m, thiết kế đâu quy định là dùng 2 thanh 7m? bạn có thể tận dụng các thanh thép thừa ví dụ: 2.5 m + 11.7m = 14.2m; 1m + 6m + 7.4m = 14.4m - Trường hợp này là tính nối thép đó bạn!

Ví dụ
Không sử dụng nối thép - Phiên bản dùng thử: Cần sử dụng 113 cây L1170, dư 1 đoạn 8.7m
D|20|mm|No|1|2|3|4|5|6|7|8|
Kjoint|10|D|L (cm)|333|444|300|200|100|350|480|790|
Ljoint|20|cm|Quantity|90|48|20|50|80|54|42|18|
Err+|30|cm|OK|90|48|20|50|80|54|42|18|
Err-|5|cm|not OK|0|0|0|0|0|0|0|0|
960|24|40|1170|2| | | | | |1| |
540|30|18|1170| | | | | |1| |1|
442|26|17|1170| |1| | | |2| | |
364|26|14|1170| |1| |3|1| | | |
234|26|9|1170| |1|2| |1| | | |
182|26|7|1170| |1| | |7| | | |
16|4|4|1170|2| | |2|1| | | |
14|7|2|1170|1| | | | |1|1| |
26|26|1|1170| |1|1||4| | | |
870|870|1|1170| | |1| | | | | |

Nếu tính nối thép - Phiên bản đăng ký: Sử dụng 111 cây L1170, dư 1 đoạn 5.2m
D|20|mm|No|1|2|3|4|5|6|7|8|
Kjoint|10|D|L (cm)|333|444|300|200|100|350|480|790|
Ljoint|20|cm|Quantity|90|48|20|50|80|54|42|18|
Err+|20|cm|OK|90|48|20|50|80|54|42|18|
Err-|5|cm|not OK|0|0|0|0|0|0|0|0|
80|4|20|1170|2| | |2|1| | | |
40|4|10|1170|2| |1|1| | | | |
56|7|8|1170|1| | | | |1|1| |
28|4|7|1170|2| | | |5| | | |
40|40|1|1170| | |1| | |1|1| |
520|520|1|1170| | | | |3|1| | |
-36|-4|9|2340| |1| | | |4|1| |
-36|-4|9|2340| |1|1| | | | |2|
-24|-3|8|2340|1| | | |2|1|3| |
0|0|6|2340| |5| | |1| | | |

Bài toán dạng này là Tổ hợp tối ưu, để đưa ra kết quả chính xác dạng bài toán này là không thể, nhưng đưa ra kết quả chấp nhận được là có thể và việc lập được phương trình bài toán quy hoạch này cũng không phải đơn giản.

Thử giải quyết bằng nhóm rời rạc đi
 
Thú vị thật. Ý tưởng của mình là thế này:
Viết ra một intelligent-software với các tính năng sau:
- Đọc được bản vẽ kết cấu thép công trình. Ta nhập bản vẽ vào. Rồi nhấn nút đọc. Nó xuất ra bảng kết quả đọc của nó là một bảng dữ liệu thống kê các đối tượng sau:
Cột a: Các loại thép cần dùng trong bản vẽ
Cột b: Tổng lượng thép cần dùng của mỗi loại ( đơn vị là kg, tấn hoặc mét, có nút tùy chọn đơn vị xuất)
Vấn đề là phải thống nhất tiêu chuẩn hiển thị ngôn ngữ ký hiệu của bản vẽ.
Hi, bạn nào có hứng thú thì bổ sung hoặc phát triển thêm ý tưởng nha. Lợi ích đầu tiên của tính năng thứ nhất là bạn biết rõ các số liệu của vật liệu thép.

Bổ sung thêm cột c nè:
Cột c: loại thép và quy cách (pi và chiều dài l) của mỗi loại.

???
 
Theo cảm nhận của mình thì trên gpe này, không thiếu những tài năng lập trình và họ thừa khả năng để viết ra bất cứ phần mềm nào để phần mềm đó trở thành công cụ nhằm giải quyết mục tiêu của yêu cầu công việc. Trong trường hợp này thì bmcn2 tạm đặt tên cho nó là cut steel optimal software (phần mềm cắt thép tối ưu). Bạn chỉ việc đặt hàng bằng cách đưa lên bản mô tả thiết kế phần mềm mà bạn muốn. Thế là vài tháng sau, ta sẽ có được 1 cái cut steel optimal software Made In GPE.
bmcn2 trực tiếp một năm ở công trường, và học được từ những người thợ giỏi phương pháp làm thế nào để đáp ứng mục tiêu của bạn (lượng thép vụn nhỏ nhất). Bạn chọn ra 1 bản vẽ kết cấu thép của một công trình thực tế đi. Chuẩn bị đủ các số liệu về thép của bản vẽ đó. bmcn2 lấy các số liệu bằng cách hỏi và bạn trả lời. Sau đó bmcn2 căn cứ trên thông tin bạn cấp để đưa ra phương thức cắt như thế nào để lượng thép vụn nhỏ nhất.
Không có số liệu, thông tin gì hết, chán thật. Thôi thì thế này vậy, bcm2 tạm đưa ra vài số liệu giả định nghèo nàn sau:
A. Thép khoanh, pi 6, cắt đai bô cột và đà.
1. Số lượng đai cột: 20.000 cái, loại: ( cỡ đai) 200x200
2. Số lượng đai đà: 37.000 cái, loại: ( cỡ đai) 150x250
Đầu tiên, bạn phải biết rõ các số liệu sau:
a: 100kg sắt pi 6 dài bao nhiêu cm (m)
b: với đai cột và đai đà thì chiều dài l của mỗi thanh thép là bao nhiêu cm? Ở đây, bmcn2 cho l đai cột= 1x900cm, đai đà=1x900. Bạn chỉ việc sắp xếp cho công nhân ra sắt hàng loạt (duỗi thẳng thép khoanh) và cắt mỗi thanh theo chiều dài đúng = số đai cắt cho mỗi thanh thép duỗi. (quản đốc+kỹ sư trưởng+quản lý vật tư là nhóm chịu trách nhiệm vấn đề này)
Tự hiểu tiếp đi nha, còn nếu như bạn muốn kiểm soát tốt tất cả nguyên vật liệu cho 1 hoặc hàng loạt công trình với mục tiêu thỏa cái phương trình bên dưới đây thì oke, tuyển một chuyên gia quản trị tài nguyên công trình, thế là xong.
X1=Y1+i1% (1)
X1: tổng khối lượng sắt thép dùng cho công trình theo dự toán
Y1: tổng khối lượng sắt thép thực tế cần dùng theo tổng khối lượng sắt thép được tính trên chi tiết bản vẽ.
i1: tỷ lệ phần trăm hao hụt cho phép (còn gọi là giới hạn % hao phí).

( Với số lượng nhiều như thế thì bạn đặt hàng thẳng cho nhà cung cấp thép luôn, đảm bảo chẳng có bất cứ mẫu thép vụn nào)
Trong trường hợp bạn không tuyển được hoặc không tìm ra chuyên gia nào cộng tác với bạn trong lĩnh vực quản trị tài nguyên công trình thì thử tuyển bmcn2 này xem.
 
Lần chỉnh sửa cuối:
VADaNang đã tối ưu được bài toán cắt thép chưa ?

Chúng ta hợp tác. Tôi đang có ý định viết chương trình đó đây.

Liên lạc với tôi theo SĐT : 0937271593
mail : trigialai@yahoo.com
Theo tôi nghĩ thì đầu tiên mình làm sao phải tìm ra được số cây thép sẽ dùng để cắt, nếu biết được điều này thì coi như đã làm xong tất cả. Theo tôi nghĩ nếu dùng quy tắc loại trừ thì ta vẫn để sót nghiệm. Bởi vì nều có nhiều tổ hợp nhiều cây thép cùng có chiều dài cắt là 11.7m thì chỉ chọn được 1 tổ hợp, Sau đó dùng quy tắc loại trừ ta sẽ có tổ hợp cắt thép tiếp theocũng có chiều dài là 11.7m. Nhưng nội trong những tổ hợp có chiều dài cắt thép là 11.7 thì cũng có thể sắp xếp thành những tổ hợp có chiều dài cắt thép tối ưu là 11.7m những tổ hợp này có thể kết hopự với những tổ hợp cắt thép chưa tối ưu ( <11.7m) để tạo ra những tổ hợp mà có chiều dài đoạn thép dư nhỏ hơn những quy tắc loại trừ.

Vấn đề bây giờ là tìm ra tổng số cây thép cần cắt sau đó sẽ tìm ra cách cắt như thế nào để lượng thép dư là nhỏ nhất. Tôi đang suy nghĩ vấn đề này.
Anh Em coi rồi cho ý tưởng với

Cảm ơn Anh Em vì tất cả.
Mong được học hỏi !
Hay lắm Mai Văn Trí....Chương trình rât hữu ích cho thi công. Thank
mình ( Thanh _Chương mập ) có vài ý kiến như sau:
Chương trình cắt thép trên ứng dụng cắt thép cho thi công là chính, nhưng ưng với từng giai đoạn thi công ta mới tiến hành cắt thép ( ra thép ) tương ứng với giai đoạn thi công.... nếu chương trình có module import data từ file thống kê thép ứng với cấu kiện ví dụ : tk thép móng, khi đó tiến hành ra thép phần móng.
dữ liệu cột "số thanh" và "chiều dài 1 thanh" được nhập tự động từ file thống kê thép thì sẽ rất nhanh..... giảm số lần nhập số thanh và chiều dài thanh thép:
1 lần cho phần thống kê, và 1 lần nữa cho ra thép trong chương trình trên.
+ Bài này phải dùng thuật toán Vét cạn thôi
Vét tất cả các phương án rồi tìm ra -> phương án tối ưu,

+ hoặc là phương án quy hoạch tuyến tính - nhưng khó tìm được bằng solver
Bài toán trên có vấn đề như sau:
1. Loại thép đặt tại nhà máy khác Ltc = 11.7m (với số lượng lớn thì họ mới sản xuất, và phải được tư vấn chấp thuận)
2. Trong quá trình thi công phải kết hợp giữa thanh nguyên (cắt từ thép có Ltc = 11.7m) và các thanh thép (ngắn) còn dư trong quá trình làm. Không để cuối công trình mới thực hiện việc ghép nối. Hoặc giả sử thi công 1 cấu kiện bê tông cốt thép có 1 loại thép duy nhất thì ta phải thực hiện việc cắt nối sao cho tiết kiệm nhất: KL thi công <= KL thiết kế x hệ số hao hụt.
Hoặc ……………………………….
(Các điều kiện cho vào kiểm tra sao cho tổ hợp các thanh dư tạo thành thanh cần cắt)
Bài toàn này thuật toán quá phức tạp nên chúng ta nên tiến hành từng bước 1 cho từng trường hợp. Ví dụ 1 loại thanh, 2 loại, … 10 loại (quá lý tưởng).

Mời các bạn thử sức!
Thú vị thật. Ý tưởng của mình là thế này:
Viết ra một intelligent-software với các tính năng sau:
- Đọc được bản vẽ kết cấu thép công trình. Ta nhập bản vẽ vào. Rồi nhấn nút đọc. Nó xuất ra bảng kết quả đọc của nó là một bảng dữ liệu thống kê các đối tượng sau:
Cột a: Các loại thép cần dùng trong bản vẽ
Cột b: Tổng lượng thép cần dùng của mỗi loại ( đơn vị là kg, tấn hoặc mét, có nút tùy chọn đơn vị xuất)
Vấn đề là phải thống nhất tiêu chuẩn hiển thị ngôn ngữ ký hiệu của bản vẽ.
Hi, bạn nào có hứng thú thì bổ sung hoặc phát triển thêm ý tưởng nha. Lợi ích đầu tiên của tính năng thứ nhất là bạn biết rõ các số liệu của vật liệu thép.
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.
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ạ

1. Có thể phiên bản dùng thử của anh tôi cài không hoàn chỉnh nên dùng chưa được.
2. Trong các bài viết của các anh trên DĐ tôi thấy có nhiều ý kiến cho rằng ta chỉ cần đi tìm cắt tổ hợp cắt thép sao cho hợp lý thôi là đủ rồi, tức là bài toán của chúng ta gói gọn trong việc cắt thép mà thôi, và cái hướng mà anh Mai-Van-Trí đi tìm là hợp lý, chỉ có điều độ chỉnh xác mà chương trình ảnh viết là có tin tưởng tuyệt đối được không thôi.
3. Từ thực tế thi công ngoài công trường, Tôi có vài dòng suy nghĩ gửi đến anh như sau:
+ Anh muốn tạo ra cây thép dài 14m bằng cách tận dùng thép thừa : 2.5m +11.7m = 14.2m (tức là dùng 1 mối nối dài 0.2m); hoặc 1m + 6m + 7.4m = 14.4m (tức là dùng 2 mối nối, chiều dài mỗi mối nối là 0.2m)? Xin thưa rằng đâu phải anh muốn nối thép ở bất kỳ vị trí nào là được đâu. Vị trí nối thép phải được thực hiện tại 1 vị trí sao cho hợp lý nhất, tức là tại đó moment là nhỏ. Hiện nay ngoài công trường, nối thép có 3 kiểu nối: nối chồng bằng kẽm buộc (chiều dài nối là dài nhất); nối hàn (1 mặt hoặc 2 mặt - chiều dài từ 5d-10d); nối bằng ren ốc (coupler - chiều dài nối là = 0). Ví dụ như ta cần tiến hành nối thép của 1 dầm liên tục nhiều nhịp, việc nối thép chỉ có thể được áp dụng cho các thép chủ trên và dưới, thép tăng cường không được nối. Thép chủ trên sẽ được nối càng gần giữa nhịp càng tốt, thép chủ dưới nối càng gần gối càng tốt. Tất nhiên là sẽ có 1 khoảng cách theo quy định của thiết kế hoặc theo tiêu chuẩn quy phạm hiện hành.
+ Ở công trường có một bộ phận phụ trách việc triển khai BV thi công từ BV thiết kế - bộ phận Shop Drawing, trong quá trình triển khai BV thi công, họ đã tính toán xem là nối thép ở vị trí nào rồi cũng như là sẽ xác định được chiều dài đoạn nối (tất nhiên họ cũng phải trải qua nhiều phương án rồi mới cho ra vị trí nối cuối cùng), BV Shop trước khi đưa ra thi công phải được duyệt qua trước (BCH công trường rồi tới TVGS). Sau đó ta sẽ có 1 bảng thống kê thép theo thi công thực tế có cắt nối thép (tức là trong bảng thống kê này, sẽ chỉ bao gồm những thanh thép đã được cắt ra hết rồi, nó sẽ nhỏ hơn hoặc bằng 11.7m). Từ bảng thống kê này ta (những người tính cắt thép) lọc ra các thanh có cùng đường kính để tiến hành làm bài toán cắt thép. Và công việc của chúng ta là ở đây - giải quyết bài toán cắt thép tối ưu.
+ Tóm lại, sau khi ra detail thép ta sẽ có 1 bảng tổng hợp bao gồm: 1 cột chiều dài thép và 1 cột số lượng tương ứng của mỗi loại thép. Từ bảng trên ta đi tìm ra những tổ hợp cắt thép tối ưu nhất (đoạn dư thừa của cây 11.7m sau khi cắt là ngắn nhất). Vì vậy chúng ta không cần quan tâm đến việc nối thép: do nối thép phải đúng vị trí hợp lý (có moment nhỏ nhất). và việc này chỉ có chúng ta tự làm thôi , máy tính không giúp được. Điều chúng ta cần quan tâm là chỉ giải quyết mỗi bài toán cắt thép đúng nghĩa thôi.
Vài dòng suy nghĩ, nếu được xin anh cho ý kiến!
Tôi thấy bạn vẫn chưa hiểu hết ý nghĩa của việc cắt thép tối ưu. Trình tự triển khai thép cho 1 kết cấu, hạng mục, công trình, dự án như sau:
1. Tổng hợp khối lượng thép thiết kế
2. Tính toán gia công (hạ liệu) để mua thép
Bài toán kinh tế đặt ra là so sánh giữa: KL thép thi công và KL thép thiết kế x hệ số hao hụt theo định mức ( KL Định mức)
Nếu hiểu theo cách của bạn giả sử "bộ phận Shop Drawing" cứ bố trí cứng nhắc theo cách hiểu của họ thì bạn phải gia công theo đúng cách đó và KL thép thi công lúc này chắc chắn đến 90% sẽ lớn hơn rất nhiều so với KL thép Định mức. Đã sinh ra ông bạn "bộ phận Shop Drawing" mà không triển khai cắt thép như thế nào cho Tối ưu, tiết kiệm thì nên bỏ ông này đi.

Thông thường cách làm như sau: Tính toán hạ liệu thép xong, sau đó mới bố trí các thanh có mối nối trong cấu kiện sao cho hợp lý bằng cách bố trí: lớp trên - lớp dưới, hoán vị các thanh nối với nhau. Vị trí hợp lý ở đây phải hiểu theo khả năng chịu lực, dễ thi công + thẩm mĩ, ...
+ Chịu lực: Đối với thép chịu kéo - Mối nối nên tránh ở những vị trí chịu lực lớn, cái này bạn quan tâm đến Mô men dương, tránh vị trí mô men lớn nhất. TCXD đã quy định chung chung bạn đừng dại chọn vị trí Mô men nhỏ nhất (tối ưu an toàn về khả năng chịu lực của kết cấu nhất), bạn phải hiểu rằng từ chỗ "chấp nhận được" chuyển sang "tối ưu nhất" cần 1 chi phí rất lớn. Trong 1 mặt cắt ngang của kết cấu số mối nối không vượt quá 25% (cốt trơn), 50% (cốt có gờ)
+ Dễ thi công + thẩm mĩ: thông thường bố trí đối xứng dọc theo tim của cấu kiện để Công nhân dễ nhớ, thao tác sẽ nhanh hơn.
...
Sau đó tiến hành bản vẽ thi công chi tiết: Cắt thép từ cây thép tiêu chuẩn như thế nào, bố trí mối nối ra sao -> Đây mới thực sự là cắt nối thép tối ưu đó bạn.
Trong xây dựng thì có 2 loại bản vẽ, bản vẽ kiến trúc và bản vẽ thi công. Mà có công trình nào giống công trình nào đâu. Chỉ có quy chuẩn kỹ thuật kết cấu sắt thép ở từng hạng mục kết cấu thôi.
Trực tiếp vấn đề nhé:

  1. Bản vẽ thi công, có phần bản vẽ kết cấu thép công trình. Căn cứ trên bản vẽ kết cấu này, ta lập nên bảng thống kê các loại thép. Kê ra các loại thép cần dùng, nhớ đừng kê thiếu nhé.
  2. Cũng trên bản vẽ này, ở từng hạng mục betong cốt thép và nhớ là có thêm phần sắt chờ, ta liệt kê ra chi tiết , số lượng, chủng loại thép cần dùng. ( Với thép cuộn, trong công trình dân dụng, thường dùng 2 loại sắt pi 6 và pi 8, còn thép thanh thì có loại pi10 đến pi 36, tùy bản vẽ kết cấu thép thôi, thường chiều dài thép thanh là 11.7m, thường dùng thép thanh là loại thép gân)
  3. Lưu ý là: tùy theo bãn vẽ mà chi tiết và số lượng các loại thép thanh phải cắt khác nhau nhé. (pi mấy, chiều bao nhiêu, vị trí của nó là gì, thanh chịu lực chính hay thanh tăng cường, hàn nối hay nối chập, còn gọi là nối gối đầu?)
  4. Với loại thép thanh phải cắt thì bạn hỏi bản vẽ đó các câu hỏi sau, ví dụ:

  • Với pi 24 thì cần bao nhiêu cây 4,6m, bao nhiêu cây 4m, bao nhiêu cây 1,8m bao nhiêu cây 1,2m?
Đến đây thì bạn đã chọn được phương án cắt tối ưu chưa?
Ví dụ: yêu cầu của hạng mục công trình là dùng 100 thanh pi 24. Thế nhưng, nếu bạn cứ cắt theo kiểu cần đâu cắt đó thì chắc 1 điều là bạn cần phải nhập thêm vài chục thanh nữa và số sắt vụn do đó dư quá nhiều luôn, không dùng được thì bán đi rồi ới bmcn2 đi nhậu phát nhé
Thú vị thật. Ý tưởng của mình là thế này:
Viết ra một intelligent-software với các tính năng sau:
- Đọc được bản vẽ kết cấu thép công trình. Ta nhập bản vẽ vào. Rồi nhấn nút đọc. Nó xuất ra bảng kết quả đọc của nó là một bảng dữ liệu thống kê các đối tượng sau:
Cột a: Các loại thép cần dùng trong bản vẽ
Cột b: Tổng lượng thép cần dùng của mỗi loại ( đơn vị là kg, tấn hoặc mét, có nút tùy chọn đơn vị xuất)
Cột c: loại thép và quy cách (pi và chiều dài l) của mỗi loại.
Vấn đề là phải thống nhất tiêu chuẩn hiển thị ngôn ngữ ký hiệu của bản vẽ.
Hi, bạn nào có hứng thú thì bổ sung hoặc phát triển thêm ý tưởng nha. Lợi ích đầu tiên của tính năng thứ nhất là bạn biết rõ các số liệu của vật liệu thép.

Thiếu đủ thứ, nhưng không sao, ta hiểu được vấn đề và có optimal solutions. Viết ra một intelligent-software để dùng cho cả 1 dự án luôn à? Cái đó để cho các chuyên gia lập trình lo. Tạm thời gửi cho những ai quan tâm 1 file chút ý kiến và phương trình mà mình dùng trong trường hợp giải quyết vấn đề thép vụn công trình.
 

File đính kèm

Lần chỉnh sửa cuối:
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.
Chuẩn :D
Các bạn đưa ra nhờ giải thì cũng phải nêu rõ các điều kiện, nếu không phải dân kỹ thuật sao hiểu hết các điều kiện ràng buộc nếu các bạn ko đưa ra.
Tất cả các chỗ nối (nếu có) tránh điểm môment chịu lực cực đại hoặc đảo dấu thì chỉ người làm kết cấu rõ thôi, còn người lập trình thì ko rõ, vậy các bác phải nêu rõ dữ liệu, điều kiện ra
 
Đừng nói với tui là dân kỹ sư xây dựng đã quên tuốt, quên sạch bài toán vận tải nha. Còn như nói chưa quên nhưng không hiểu sâu thì chịu khó tìm đọc hoặc gặp Giáo sư Hoàng Tụy (Hoàng Tụy được coi là cha đẻ của lĩnh vực Tối ưu hóa toàn cục (Global Optimization) trong Toán học Ứng dụng.)
 
Mình đọc phần lớn chỉ thấy tổ hợp cắt thép cho chiều thanh 11.7m. Bây giờ mình muốn tận dụng lại thép thừa của lần cắt trước đó nữa thì sao. Cụ thể như sau mình cần cắt số lượng thanh có chiều lại l1, l2, l3, ..., ln các thanh này thì được cắt từ các thanh có chiều dài 11.7m, L1, L2, L3, .., Lx thì mình làm thế nào. Có bạn nào đã nghĩ ra thuật toán để giải quyết chưa ????
 
Qua lau khong vao forum nay. Khong ngo anh em quan tam nhieu vay. De toi co gang viet lai toan bo bai toan cat thep toi uu cho de dung va loai bo bot loi chuong trinh.
 
Phần mềm cắt thép thi công đây, nhanh chóng- hiệu quả- thiết thực
Mọi người cùng trải nghiệm nhé
 

File đính kèm

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.

File update 15/9/2011
file hướng dẫn (kèm theo chương trình): http://www.mediafire.com/file/7tzjisg1s74hh4q/Hep.rar
file chương trình: http://www.mediafire.com/file/z0l9l8...tBarsSteel.zip
paperclip.png
Tập tin đính kèm

là anh em thì đừng lừa nhau? đã là bạn bè nên chia sẽ? ai biết cách cài đặt chương trình này? dung bản trail thôi? giúp mình mail : lee.traan.1987@gmail.com
 

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

Back
Top Bottom