1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Kỹ thuật công nghiệp: Thiết lập mô hình tối ưu hóa cho bài toán điều độ dạng Hybrid flow shop trong ngành sản xuất gạch men, tình huống nghiên cứu: Công ty Dotalia Việt Nam

92 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết lập mô hình tối ưu hóa cho bài toán điều độ dạng Hybrid flow shop trong ngành sản xuất gạch men, tình huống nghiên cứu: Công ty Dotalia Việt Nam
Tác giả Phạm Anh Tuấn
Người hướng dẫn TS. Phan Thị Mai Hà
Trường học Trường Đại học Bách Khoa Tp.HCM
Chuyên ngành Kỹ thuật Công nghiệp
Thể loại Luận văn Thạc sĩ
Năm xuất bản 2020
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 92
Dung lượng 1,75 MB

Cấu trúc

  • Bҧng 1-2. Sӕ liӋu thӕng kê vӅ tiêu thө gҥFK&HUDPLF *UDQLWHQăP-2017 (0)
  • Bҧng 3-1. Doanh thu cӫa '27$/,$WURQJQăPTXD1JXӗQĈӗng Tâm Group)26 Bҧng 3-2. Công suҩt dӵ kiӃn cӫDOzQăP1JXӗn: Công ty DOTALIA) (0)
  • Bҧng 3-3. Quy trình sҧn xuҩt chi tiӃt (47)
  • Bҧng 4-1. Thông sӕ các công viӋc qua các máy tҥi các trҥm (50)
  • Bҧng 4-2. Thӡi gian hoàn thành tҥi các máy (50)
  • Bҧng 4-3. Thӡi gian trӉ cӫa công viӋc ӣ các trҥm (51)
  • Bҧng 4-4. Thӡi gian chuyӇQÿәi giӳa các công viӋc (51)
  • Bҧng 4-ĈiQKJLiP{KuQKWRiQ (0)
  • Bҧng 5-1. Tính hӳu dөng cӫa máy (59)
  • Bҧng 5-2. Thӡi gian xӱ lý công viӋc trên các máy (59)
  • Bҧng 5-3. Thӡi gian trӉ cӫa công viӋc (59)
  • Bҧng 5-4. Thӡi gian thiӃt lұp phө thuӝc vào trình tӵ (60)
  • Bҧng 5-5. So sánh giӳa hai thuұt toán (63)
  • Bҧng 5-6. Tính hӳu dөng cӫa công viӋc trên máy (64)
  • Bҧng 5-7. Thӡi gian thiӃt lұp phө thuӝc vào trình tӵ (64)
  • Bҧng 5-8. Thӡi gian xӱ lý cho tӯng công viӋc (65)
  • Bҧng 5-9. Thӡi gian thiӃt lұp phө thuӝc vào trình tӵ F{QJÿRҥn Ép (66)
  • Bҧng 5-10. Thӡi gian trӉ cӫa công viӋc (67)

Nội dung

NHIӊM VӨ VÀ NӜI DUNG : NhiӋm vө cӫDÿӅ tài là mô hình hóa EjLWRiQÿLӅXÿӝ kӃ hoҥch theo dҥng "hybrid flow shop" vӟi các mөc tiêu cө thӇ QKѭVDX x TӕLѭXKyDEjLWRiQÿLӅXÿӝ thông qua mөc tiêu giҧ

Quy trình sҧn xuҩt chi tiӃt

STT Quy trình chính Thӡi gian chuyӇQÿәi (giӡ) Thӡi gian thӵc hiӋn

6 Ép thành viên x aKWKD\NKX{QYjNtFKWKѭӟc x aSWKD\KRDYăQ

8 7UiQJPHQ,QKRDYăQ ~3-4h rӱa và thay màu sҳc 3~10h/ mҿ

*Ĉ˯QY͓: 1 mҿ trӝQGDRÿӝng tӯ 2000~4500 viên gҥch tùy loҥL[ѭѫQJNtFKWKѭӟc và KRDYăQ\rXFҫu

Cҧ hai dây chuyӅQÿӅXÿmÿѭӧc cân chӍnh ӣ cҧ Pi\pSYjÿҫu xe chӭa ӣ giӳa mӛi F{QJÿRҥn sao cho cùng mӝt tӕFÿӝ và thӡi gian, tӯ ÿyFiFYLrQJҥch sӁ theo thӭ tӵ FIFO (First In ± )LUVW2XW9jRWUѭӟFUDWUѭӟFÿӅ vào lò nung MӝWÿiӇm có thӇ nhұn ra tӯ ÿk\ là quy trình sҧn xuҩt chӫ yӃu vүn là theo dҥQJIORZVKRSQKѭQJGRWKӡi gian ӣ các công ÿRҥn setup/ chuyӇQÿәi nên hiӋn tҥLTXiWUuQKÿLӅXÿӝ NKyÿҥWÿѭӧc kӃt quҧ tӕLѭX

Hình 3-8 SҧQOѭӧng trung bình có thӇ sҧn xuҩt cӫa nhà máy DOTALIA

7UrQFѫVӣ ÿLӅu tra và tìm hiӇu, quan sát trӵc tiӃp, có mӝt sӕ vҩQÿӅ cҫQTXDQWkPQKѭ sau: x ViӋc sӱ dөng thӵc tӃ bӏ ҧQKKѭӣng bӣi rҩt nhiӅu yӃu tӕ QKѭWKӡi gian thiӃt lұp, thӡi gian chuyӇQÿәi, dõy chuyӅn sҧn xuҩt әQÿӏQKôGүQÿӃQNK{QJÿiSӭQJÿѭӧc mөc tiêu sӱ dөQJFNJQJQKѭQKXFҫu cӫa khách hàng x Quy trình ÿLӅXÿӝ hiӋn tҥi ӣ nhà máy DOTALIA chӫ yӃu dӵa vào kinh nghiӋm cӫa FRQ QJѭӡi Tҩt cҧ FiF ÿѫQ ÿһt hàng ӣ WKiQJ WUѭӟF FNJQJ QKѭ NӃ hoҥch tӗn kho WKѭӡng chiӃm toàn bӝ thӡi gian và nó dӉ dàng thҩt bҥi nӃu máy móc ngӯng hoҥt ÿӝng trong quá trình sҧn xuҩt Bên cҥQKÿyQKjPi\YүQFKѭDFySKѭѫQJSKiSÿR OѭӡQJÿӇ tính toán hoһc hӛ trӧ ÿӝi kӃ hoҥch kiӇm tra tính khҧ thi cӫa tiӃQÿӝĈLӅu này không chӍ gây lãng phí thӡLJLDQPjFzQNK{QJÿiQKJLiÿѭӧc hiӋu quҧ cӫa kӃ hoҥch sҧn xuҩt x NӃXFyFiFÿѫQÿһt hàQJÿӝt xuҩWKD\NKiFKKjQJWKD\ÿәi sӕ OѭӧQJVDXNKLÿһt thì nhà máy gҫQQKѭNK{QJWKӇ hӛ trӧ mà phҧi dӡi sang tháng sau

1KѭFiFYҩQÿӅ ÿmWUuQKEj\ErQWUrQYLӋc tìm kiӃm cách tiӃp cұn mӟi vӅ cách lұp P{KuQKÿLӅXÿӝ ÿӇ giҧm thiӇu tәng thӡi gian hoàn thành trong phҥm vi nguӗn lӵc, giҧm thiӃt lұSWKD\ÿәi theo thӡLJLDQYjÿiSӭng nhu cҫu cӫa khách hàng là mӝt trong nhӳng FRQÿѭӡng quan trӑng mà nghiên cӭu này cҫQѭXWLrQ&iFSKѭѫQJSKiSFө thӇ sӁ ÿѭӧc WUuQKEj\WURQJFKѭѫQJWLӃp theo

&K˱˯QJ%͙n b̷Wÿ̯u quá trình nghiên cͱXÿ͋ hi͋u cách xây d͹ng mô hình toán h͕c Ĉ̿c bi t, c̭u trúc thu th̵p, phân tích và nh̵p dͷ li u sͅ ÿ˱ͫc li WNrWURQJFK˱˯QJQj\ Cu͙i cùng, vi c gi̫i thích chi ti͇t v͉ SK˱˯QJSKiSMIP sͅ ÿ˱ͫc xây d͹ng thông qua tình hu͙ng nhà máy DOTALIA

Nghiên cӭu này làm rõ mӝt sӕ EѭӟFÿӇ thiӃt lұp P{KuQKÿLӅXÿӝ phù hӧp Sѫÿӗ chi tiӃWKѫQFӫDTX\WUuQKÿѭӧc minh hӑa trong Hình 4-1

Hình 4-1 Quy trình nghiên cӭu luұQYăQ

;iFÿӏnh các vҩQÿӅ tӗn tҥi trong bài toán lұp kӃ hoҥch WUѭӡng hӧp cӫa DOTALIA FNJQJQKѭJLҧi thích phҥm vi & giӟi hҥn cӫa luұn án

BӣLYuÿmWuPUD vҩQÿӅ nên Eѭӟc tiӃp theo là xem xét tҩt cҧ nhӳng gì liên quan chһt chӁ ÿӃn vҩQÿӅ QKѭÿӏQKQJKƭDWKXұt toán tӯ mӝt sӕ nghiên cӭXÿm[Xҩt bҧn (Tҥp chí,

%iRôÿӇ WuPUDSKѭѫQJSKiSSKKӧp nhҩt cho vҩQÿӅ nghiờn cӭu

Phát triӇn và sӱDÿәi mô hình ÿLӅXÿӝ ÿӇ WѭѫQJӭng vӟL'27$/,$YjÿiSӭng hҫu hӃt các ràng buӝc

Thu thұp và phân tích dӳ liӋu

Dӳ liӋu yêu cҫu không chӍ GR F{QJ W\ ÿѭD UD Pj FzQ Wӯ sӵ quan sát trӵc tiӃp khi nghiên cӭX6DXÿycác thông tin thu thұSÿѭӧFÿmÿѭӧc chuyӇn thành các con sӕ cө thӇ làm dӳ liӋXÿҫu vào cho mô hình

Ký hiӋu, mөc tiêu, ràng buӝc và các giҧ ÿӏQKÿmÿѭӧc dӏch tӯ mô hình toán hӑc sang ngôn ngӳ CÿӇ nhұQÿѭӧc kӃt quҧ tӯ mô hình Phҧn ánh vӅ kӃt quҧ thӵc sӁ ÿѭӧc xem xét MөFÿtFKOjFyÿѭӧc ҧQKKѭӣng thӵFÿӇ so sánh vӟLP{KuQKÿѭӧFÿӅ xuҩWVDXÿy

Chӭng minh và xác nhұn mô hình nӃu nó phù hӧp nhҩt vӟi mô hình và dӳ liӋXÿm cho Cho mӝt bài toán giҧ ÿӏnh vӟi sӕ Oѭӧng công viӋc ݆ ൌ ͵ ÿLTXDKDLWUҥm vӟi ݅ ൌ ʹ YjFyOѭӧng máy là hai và mӝt ӣ mӛi trҥP&iFWK{QJWLQNKiFÿѭӧc cө thӇ trong bҧng GѭӟLÿk\ x ݆ ൌ ͵ x ݅ ൌ ʹ

Thông sӕ các công viӋc qua các máy tҥi các trҥm

Thӡi gian hoàn thành tҥi các máy

Thӡi gian trӉ cӫa công viӋc ӣ các trҥm

Thӡi gian chuyӇQÿәi giӳa các công viӋc

KiӇPWUDÿLӅu kiӋn và mөc tiêu (chú trӑng vào các ràng buӝc #2 - #9)

KӃt quҧ &ҩXKuQK ࡯ ࢓ࢇ࢞ Giá trӏ cӫa tӯng ràng buӝc

Tӯ các kӃt quҧ và phân tích ӣ các khía cҥQKNKiFQKDXÿӇ xem liӋXSKѭѫQJSKiSFҧi tiӃn có giҧi quyӃWÿѭӧc vҩQÿӅ KD\NK{QJ6DXÿyÿѭDUDmӝt kӃt luұn ngҳn gӑn và ÿӅ xuҩt cho các nghiên cӭXWURQJWѭѫQJODL

MÔ HÌNH HÓA BÀI TOÁN ĈһFÿLӇm ÿҫu tiên có thӇ TXDQViWÿѭӧc cӫa bài toán sҧn xuҩt gҥch men là tҩt cҧ các sҧn phҭPÿӅXÿLWKHR mӝt dòng sҧn xuҩt thông qua nhà máy, cho thҩy dҥng bài toán flowshop Các nhà máy sҧn xuҩWÿѭӧc chia thành các bӝ phұn: ÿ~FWUiQJPHQOzQXQJ và phân loҥi HѫQQӳa, ngay cҧ các Doanh nghiӋp vӯa và nhӓ 60(FNJQJFyPӝt sӕ dây chuyӅn tráng men và có hai hoһc nhiӅu lò nung KӃt quҧ là, có mӝt dҥng bài toán hybrid flowshop (HFS) HFS là sӵ kӃt hӧp cӫa hai bài toán ÿLӅXÿӝ nәi tiӃQJÿyOjdҥng flowshop và bài toán máy song song VҩQÿӅ HFS là mӝt chӫ ÿӅ nghiên cӭu tích cӵc và là chӫ ÿӅ chính trong nhiӅu bài phê bình [16,17,25]

Trong nhұQ ÿӏnh WUѭӟF ÿӕi vӟi HFS, WD FNJQJ Fy Pӝt tұp hӧp ܰ công viӋc, ܰ ൌ ሼͳǤ Ǥ Ǥ ݊ሽ Tuy nhiên, mӛi công viӋc không phҧi truy cұp vào mӝt tұp hӧp máy móc mà là mӝt tұp hӧp ܯ trҥm, ܯ ൌ ሼͳǤ Ǥ Ǥ ݉ሽ Tҥi mӑi trҥm ݅ǡ ݅ א ܯ có mӝt tұp ܯ ௜ ൌ ሼͳǤ Ǥ Ǥ ݉ ௜ ሽ gӗm các máy song song có thӇ xӱ lý các công viӋc, WURQJÿyFytWQKҩt mӝt trҥm vӟi nhiӅXKѫQ mӝt máy,׌̳݅ȁܯ ௜ ȁ ൐ ͳǡ ݅ א ܯ Các công viӋc phҧi trҧi qua tҩt cҧ các trҥm và phҧLÿѭӧc 1 máy xӱ lý trong mӑi trҥm Trong phҫn sau, ݌ ௜௟௝ cho biӃt thӡi gian xӱ lý công viӋc ݆ǡ ݆ א ܰ tҥi máy ݈ǡ ݈ א ܯ ௜ trong trҥm ݅

1KѭÿmÿӅ cұp ӣ WUrQWK{QJWKѭӡng, nghiên cӭu chӍ tұp trung vào ba phҫn QKѭÿ~F tráng men, lò nung và phân loҥi khi quá trình tӵ ÿӝng hóa bҳWÿҫu Tuy nhiên, nghiên cӭu này sӁ tìm hiӇu kӻ phҫn trӝn nhҵPÿѭDUDÿѭӧc chính xác thӭ tӵ các công viӋc +ѫQ nӳa, có mӝt sӕ khía cҥnh cҫQÿѭӧc xem xét trong HFS: máy chuyên dөng, thӡi gian thiӃt lұSJLDÿuQKSKө thuӝc vào trỡnh tӵÿӝ trӉ thӡLJLDQô7Kӭ nhҩt, ӣ mӝt trҥm cө thӇ, mӛi công viӋc phҧLÿѭӧc xӱ lý phө thuӝc vào mӛi khu, trên mӝWWURQJKDLPi\6DXÿyF{QJ viӋFÿѭӧc xӱ lý ӣ trҥm thӭ hai trên mӝt trong các máy song song giӕng nhau Có nhiӅu nhóm công viӋc trong mӛi khu Thӭ hai, cҫn có thӡi gian thiӃt lұp ӣ mӝt sӕ trҥm nӃu hai công viӋc liên tiӃp không thuӝc cùng mӝt nhóm

Bên cҥQKÿyNK{QJÿѭӧFSKpSѭXWLrQ F{QJYLӋc Ĉӝ trӉ thӡi gian tӕLÿDFKRELӃt khoҧng thӡi gian trôi qua tӯ khi kӃt thúc xӱ lý mӝt công viӋc trong mӝt trҥm FKRÿӃn khi bҳWÿҫu công viӋc trong trҥm tiӃSWKHRĈӝ trӉ thӡi gian tӕLÿDQj\FyWKӇ vô hiӋu nӃu không có thӡi gian chӡ [26] ĈӇ giҧi quyӃt vҩQÿӅ, tác giҧ ÿӅ xuҩt mӝt quy trình kӃt hӧp dӵa trên giҧi thuұt Mixed Integer Programming (MIP) và mӝt thuұt toán mô phӓng luyӋn kim (SA) Phҫn sau sӁ thҧo luұn chi tiӃt vӅ cách tiӃp cұn cӫa nó

Các giҧ ÿӏnh vӅ mô hình là: (1) Tҩt cҧ các tham sӕ cӫDP{KuQKÿӅXÿѭӧc biӃt tҥi thӡi ÿLӇm giҧi quyӃt mô hình; (2) không có quyӅQѭXWLrQ nào, khi quá trình cӫa mӝWÿѫQ hàng trong trҥm nhҩWÿӏQKÿѭӧc bҳWÿҫXNK{QJÿѭӧFJLiQÿRҥQFKRÿӃn khi viӋc xӱ lý ÿѫQKjQJKRjQWҩt; (3) mӛLÿѫQÿһt hàng gӗm mӝt lô duy nhҩt, mӝWÿѫQÿһt hàng có thӇ có nhiӅXKѫQPӝt lô; tuy nhiên, sӕ Oѭӧng lô phҧi ÿѭӧc xӱ lý trong mӝt lô duy nhҩt trong JLDLÿRҥn xӱ lý hàng loҥWYjNK{QJÿѭӧFSKpSWiFKÿѫQKjQJWKjQKFiFO{

Nghiên cӭu này nhҵm tìm ra giҧi pháp tӕLѭXFKRQKjPi\ÿӇ giҧm thiӇu thӡi gian hoàn thành, giҧm thӡi gian thiӃt lұp và ÿiSӭng nhu cҫu cӫa khách hàng

Có tҩt cҧ Pѭӡi mӝt ràng buӝc WURQJP{KuQKÿѭӧc phát triӇn trong nghiên cӭu này Các ràng buӝFÿѭӧc thӵc hiӋn dӵa trên các nghiên cӭXÿmÿѭӧc công bӕ vӅ HFS và mӝt sӕ yêu cҫu cӫa nhà máy DOTALIA Ĉҫu vào x ݆ ൌ ͳǡ ǥ ǡ ܰ: Sҧn phҭm / Công viӋc cҫQÿѭӧc lên lӏch x ݅ ൌ ͳǡ ǥ ǡ ܯ: Các trҥm sҧn xuҩt vӟi ܯ ௜ ൌ ሼͳǡ ǥ ǡ ݉ ௜ ሽ x ݈ ൌ ͳǡ ǥ ǡ ܮ: Các máy

Thông sӕ x ݌ ௜௟௝ : thӡi gian xӱ lý công viӋc ݆, ݆ א ܰ ӣ máy ݈, ݈ א ܯ ௜ , trong trҥm ݅ x ܧ ௜௝ : tұp hӧSFiFPi\ÿӫ ÿLӅu kiӋn cú thӇ xӱ lý cụng viӋc ݆ ӣ trҥm ݅ ặ ͳ ൑ หܧ ௜௝ ห ൑ ݉ ௜ o หܧ ௜௝ ห ൌ Ͳ nӃu công viӋc ݆ bӓ qua trҥm ݅ o Và, ݌ ௜௟௝ ൌ Ͳ nӃu ݈ ב ܧ ௜௝ x ݈ܽ݃ ௜௟௝ : Thӡi gian trӉ giӳa thӡi gian kӃt thúc xӱ lý công viӋc j ӣ máy l trong trҥm ݅bҳWÿҫu trong trҥm tiӃp theo mà công viӋc j ÿѭӧc xӱ lý o ݈ܽ݃ ௜௟௝ ൏ Ͳ: các hoҥW ÿӝng trùng lһp ห݈ܽ݃ ௜௟௝ ห ൑ ݌ ௜௟௝ hoһc ห݈ܽ݃ ௜௟௝ ห ൑ ݌ ௜ାଵǡ௟ ᇲ ǡ௝ ǡ ׊݈Ԣ א ܧ ௜ାଵǡ௝ o ݈ܽ݃ ௜௟௝ ൐ Ͳ: tӗn tҥi thӡi gian chӡ giӳa các hoҥWÿӝng liên tiӃp o ݈ܽ݃ ௜௟௝ ൌ Ͳ: tình huӕng chuҭn o ݈ܽ݃ ௜௟௝ ൌ Ͳ, ׊݈ א ܯ ௜ , if ݅ ב ܨ ௝ hoһc nӃu vӟi ݈ א ܯ ௜ ǡ ݈ ב ܧ ௜௝ x ܵ ௜௟௝௞ : Thӡi gian thiӃt lұp phө thuӝc trình tӵ dӵa trên máy trên máy ݈ ӣ trҥm ݅ khi xӱ lý công viӋc ݇, ݇ א ܰ, sau khi xӱ lý công viӋc ݆ x ܥ ௜௝ = Thӡi gian hoàn thành công viӋc ݆ ӣ trҥm ݅, x ܥ ௠௔௫ = Thӡi gian hoàn thành tӕLÿD

BiӃn quyӃWÿӏnh ܺ ௜௟௝௞ = 1 nӃu công viӋc ݆ WUѭӟc công viӋc ݇ trên máy ݈ ӣ trҥm ݅ và =0 nӃXQJѭӧc lҥi

Theo các ký hiӋu trên, chúng ta sӁ ÿӅ cұp ÿӃn vҩQÿӅ Qj\QKѭPӝt tәng quan cӫa cӱa hàng OѭXOѭӧng dҥng hybrid Giҧ ÿӏnh vӅ mô hình này rҩt phә biӃn trong các ngành công nghiӋp NӃu mӝt khâu trong quy trình sҧn xuҩt bӏ tҳc nghӁn, các nhà quҧQOêWKѭӡng ngӯng viӋc bә sung các máy móc song song ӣ NKkX ÿy ÿӇ giҧm bӟt nút thҳt Thông WKѭӡng, các máy mӟi sӁ có tӕFÿӝ lӟQKѫQKRһc ciFÿһFÿLӇPÿһc biӋWÿӇ có tӕFÿӝ xӱ lý khác vӟi các máy hiӋn có ĈLӅu này rҩt phә biӃQWURQJF{QJÿRҥn chiӃWUyWYjÿyQJKӝp ӣ các ngành công nghiӋp chӃ biӃn thӵc phҭPFNJQJQKѭWURQJF{QJÿRҥn nung lò nung ӣ sҧn xuҩt gҥch men Bên cҥQKÿyPӝt sӕ sҧn phҭm ÿһc biӋt có thӇ bӓ TXDFiFF{QJÿRҥn, ví dөÿӗ nӝi thҩt cә ÿLӇQFKѭDÿѭӧFÿiQKEyQJKRһc lӟSÿiQKEyQJFKRJҥch men tráng JѭѫQJ

Mһt khác, có mӝt sӕ công viӋFÿһc biӋt chӍ có thӇ gia công trên các loҥi máy chuyên dөng Mi\pSÿDGҥQJÿӏnh dҥQJÿһc biӋt trong ngành gҥch men là mӝt ví dө Các máy ÿһc biӋt dung ÿӇ gia công mӝt sӕ sҧn phҭPÿһc biӋt hoһFQJѭӧc lҥi, mӝt sӕ Pi\ÿDQăQJ có thӇ gia công nhiӅu loҥi sҧn phҭm chӭ không chӍ mӝt loҥi ÿһc biӋt

Có thӇ thҩy, trong nghiên cӭu này, thӡi gian trӉ và thӡi gian thiӃt lұp phө thuӝc trình tӵ FNJQJÿѭӧc coi là mӝt sӕ WUѭӡng hӧp thӵc tӃ Trong các ngành công nghiӋp gҥch men, cҫn phҧi thӵc hiӋn mӝt quy trình rӝQJWURQJF{QJÿRҥQÿ~FNKLVҧn xuҩt mӝt loҥi gҥch Fyÿӏnh dҥng khác ThiӃt lұp này sӁ không cҫn thiӃt nӃu loҥi gҥch tiӃSWKHRFyFQJÿӏnh dҥng Vì thӃ các thiӃt lұp phө thuӝc vào trình tӵ Sӵ chӗQJFKpRFNJQJWӗn tҥi trong sҧn xuҩt gҥch men hoһc trong ngành công nghiӋp bán dүn khi mӝt công viӋc tҥo ra mӝt loҥt viên gҥch men hoһc vi mҥch nhӓ7ѭѫQJWӵ, vӟi mô KuQKQj\ÿӝ trӉ GѭѫQJJLӳa các hoҥWÿӝng liên tiӃp cӫa cùng mӝt công viӋc rҩt hӳu ích Ví dө, phҧi làm khô hoһc làm mát sҧn phҭPWUѭӟc khi tiӃn hành các hoҥWÿӝng tiӃp theo Ví dө các tình huӕng mô hình phӫ ÿӏnh khác, các lô lӟn cӫa sҧn phҭm nhӓ ÿmÿѭӧc mô hình hóa thành công viӋc và không phҧi tҩt cҧ các sҧn phҭPÿӅu cҫQÿѭӧc hoàn thành trên mӝWF{QJÿRҥn WUѭӟc khi bҳWÿҫu hoҥWÿӝng ӣ F{QJÿRҥn sau

Minimize ܥ ௠௔௫ ሺͳሻ x Mөc tiêu là giҧm thiӇu tәng thӡi gian hoàn thành cӫa tҩt cҧ các công viӋc ݆ א ܰ

Subject to: ෍ ෍ ܺ ௜௟௝௞ ൌ ͳ ௟אெ ೔ ௝אሼேǡ଴ሽ ǡ ݆ǡ ݇ א ܰǢ ݆ ് ݇Ǣ ݅ א ܯǡ ሺʹሻ x (2): Ràng buӝc ÿӇ ÿҧm bҧo rҵng mӑi công viӋc nên thӵc hiӋn WUѭӟc mӝt công viӋc trên mӝt máy ӣ mӛi trҥm/ѭXêUҵQJÿӕi vӟi mӛi JLDLÿRҥn và máy, tác giҧ sӁ sӱ dөng mӝt công viӋc ҧo ÿӭQJWUѭӟc công viӋFÿҫu tiên ӣ mӛLPi\ĈLӅu này cho phép xem xét thӡi gian thiӃt lұSEDQÿҫu

44 ෍ ෍ ܺ ௜௟௞௝ ൑ ͳ ௟אெ ೔ ௝אே ǡ ݇ א ܰǡ ሺ͵ሻ x (3) Ràng buӝFÿӇ ÿҧm bҧo mӑi công viӋFÿӅu có mӝt công viӋc kӃ sau ෍ ܺ ௜௟௛௝ ൒ ܺ ௜௟௝௞ ௛אሼேǡ଴ሽ ǡ ݆ǡ ݇ǡ ݄ א ܰǢ ݆ ് ݄ ് ݇ǡ ሺͶሻ x Ràng buӝc (4) bҳt buӝc: nӃu mӝt công viӋc ÿѭӧc xӱ lý trên mӝt máy nhҩWÿӏnh ӣ mӝt trҥm thì nó phҧi có mӝt công viӋc tiӅn nhiӋm trên cùng mӝWPi\Ĉk\OjFiFK ÿӇ buӝc các nhiӋm vө phҧi nhҩt quán trong máy ෍ ൫ܺ ௜௟௝௞ ൅ ܺ ௜௟௞௝ ൯ ൑ ͳ ௟אெ ೔ ǡ ݆ א ܰǢ ݇ ൌ ݆ ൅ ͳǡ ǥ ǡ ݊Ǣ ݆ ് ݇ǡ ሺͷሻ x Bӝ ràng buӝc (5) tránh xuҩt hiӋn ѭXWLrQFKpR/ѭXêUҵng chӍ xem xét nhӳng lӵa chӑn thay thӃ ෍ ܺ ௜௟଴௞ ൑ ͳ ୩אே ǡ ݅ א ܯǢ ݈ א ܯ ௜ ǡ ሺ͸ሻ x Ràng buӝc (6) buӝc công viӋc giҧ 0 chӍ có thӇ là tiӅn nhiӋm cӫa nhiӅu nhҩt mӝt công viӋc trên mӛi máy ӣ mӛi trҥm ܥ ௜଴ ൌ Ͳǡ ݅ א ܯሺ͹ሻ x Ràng buӝc (7) chӍ ÿѫQJLҧQOjÿҧm bҧo công viӋc giҧ ÿѭӧc hoàn thành tҥi thӡi ÿLӇm 0 trong tҩt cҧ các trҥm ܥ ௜௞ ൅ ܸ൫ͳ െ ܺ ௜௟௝௞ ൯ ൒ ܥ ௜௝ ൅ ܵ ௜௟௝௞ ൅ ݌ ௜௟௝௞ ǡ ݇ א ܰǢ ݆ א ሼܰǡ ͲሽǢ ݆ ് ݇ǡ ሺͺሻ x Bӝ ràng buӝc (8) kiӇm soát thӡi gian hoàn thành các công viӋc ӣ trҥm ÿҫu tiên Giá trӏ 9ÿҥi diӋn cho mӝt sӕ lӟQGRÿyUjQJEXӝc trӣ QrQGѭWKӯa nӃu biӃn gán bҵQJ/ѭXêcác mӕi quan hӋ ѭXWLrQÿѭӧc xem xét bҵQJFiFKWtQKÿӃn viӋc hoàn thành tҩt cҧ các công viӋc tiӅn nhiӋm cӫa mӝt công viӋc nhҩWÿӏnh ܥ ௜௞ ൅ ܸ൫ͳ െ ܺ ௜௟௝௞ ൯ ൒ ቐܥ ௜ିଵǡ௞ ൅ ෍ ෍ ൫݈ܽ݃ ௜ିଵǡ௟ ᇲ ǡ௞ Ǥ ܺ ௜ିଵǡ௟ ᇲ ǡ௛ǡ௞ ൯ ௟אெ ೔షభ ௛אሼேିଵǡ଴ሽ ǡ ܥ ௜௝ ቑ ൅ ܵ ௜௟௝௞ ൅ ݌ ௜௟௞ ǡ ݇ א ܰǢ ݆ א ሼܰǡ ͲሽǢ ݆ ് ݇ሺͻሻ x Bӝ ràng buӝc (9) cho biӃt thӡi gian hoàn thành ӣ các trҥm tiӃp theo Ӣ ÿk\[HP xét thӡi gian hoàn thành cӫa cùng mӝt công viӋc trong trҥm WUѭӟc theo thӡi gian trӉ

45 ܥ ௠௔௫ ൒ ܥ ௜௝ ǡ ׊݆ א ܰǡ ݅ א ܯǡ ሺͳͲሻ x ;iFÿӏnh thӡi gian hoàn thành tӕLÿD ܺ ௜௟௝௞ א ሼͲǡͳሽǢ ݆ǡ ݇ א ܰǢ ݆ ് ݇ǡ ሺͳͳሻ ܥ ௜௝ ൒ Ͳሺͳʹሻ x Cuӕi cùng, (11) và (12) chӍ [iFÿӏnh các biӃn quyӃWÿӏnh

&K˱˯QJQj\Vͅ ch͑ ra cách ho̩Wÿ͡ng cͯa hai thu̵WWRiQÿmFK͕QWUrQKDLWU˱ͥng hͫp: WU˱ͥng hͫp ví dͭ YjWU˱ͥng hͫp nhà máy DOTALIA Tͳ ÿyÿ˱DUDm͡t b̫ng ÿ͋ so sánh k͇t qu̫ giͷa hai cách ti͇p c̵Qÿyvà ch͑ UDêQJKƭDFͯa m͟i WU˱ͥng hͫp Cu͙i cùng, phân tích k͇t qu̫ Yjÿ˱DUDP͡t s͙ ÿ͉ xṷt cho nhà máy

Trong phҫn này, ví dө GѭӟLÿk\VӁ minh hӑa vҩQÿӅ ÿLӅXÿӝ HFS Chúng ta có mӝt ví dө vӟi 5 công viӋc và 3 trҥm vӟi hai máy ӣ trҥm thӭ nhҩt và thӭ hai và chӍ có mӝt máy ӣ trҥm thӭ ED/ѭXêYtGө Qj\ÿѭӧc lҩy tӯ nghiên cӭu cӫa Ruiz và cӝng sӵ QăP

Bҧng 5-ÿѭDUD tính hӳu dөng cho các công viӋc trên máy ӣ tӯng trҥm và thӡi gian xӱ lý WѭѫQJӭng trong bҧng 5-2

Bҧng 5-2 Thӡi gian xӱ lý công viӋc trên các máy

Bҧng 5-3 và bҧng 5-4 chӍ ra giá trӏ ÿӝ trӉ và thӡi gian thiӃt lұp phө thuӝc vào trình tӵ, WѭѫQJӭQJ/ѭXêUҵQJ³-´FyQJKƭDOjWKӡi gian thiӃt lұp là 0

Bҧng 5-3 Thӡi gian trӉ cӫa công viӋc

Bҧng 5-4 Thӡi gian thiӃt lұp phө thuӝc vào trình tӵ

Tính hӳu dөng cӫa máy

Thӡi gian xӱ lý công viӋc trên các máy

Bҧng 5-3 và bҧng 5-4 chӍ ra giá trӏ ÿӝ trӉ và thӡi gian thiӃt lұp phө thuӝc vào trình tӵ, WѭѫQJӭQJ/ѭXêUҵQJ³-´FyQJKƭDOjWKӡi gian thiӃt lұp là 0.

Thӡi gian trӉ cӫa công viӋc

Thӡi gian thiӃt lұp phө thuӝc vào trình tӵ

7K{QJWKѭӡng nhӳQJQJѭӡi giҧi bài toán MIP sӁ khám phá tҩt cҧ các giҧi pháp khҧ thi bҵng cách sӱ dөng mөc tiêu và so sánh chúng dӵa trên các giá trӏ cӫa hàm mөc tiêu Vӟi ví dө này, chúng ta sӁ lҩy tҩt cҧ dӳ liӋu, VDXÿyVӱ dөng ngôn ngӳ lұp trình C# sau NKLÿmtham khҧo mô hình toán hӑFÿӇ tìm ra giҧi pháp tӕLѭXWURQJWUѭӡng hӧp này là tìm make-span

Thӭ tӵ các công viӋc ߨ ൌ ሼʹǡ͵ǡͶǡͷǡͳሽ vӟi sӵ phân công công viӋc cho máy ӣ mӛi JLDLÿRҥQQKѭVDX:

Hình 5-1 BiӇXÿӗ Gantt cho giҧi pháp ࡯ ࢓ࢇ࢞ @

Hình 5-2 Cҩu hình máy cho mô hình MIP

48 7URQJÿyPӛi cӝWÿҥi diӋn cho các máy ӣ mӛi trҥm cho công viӋc ӣ vӏ WUtWѭѫQJӭng trong thӭ tӵ và khӟp vӟi biӇXÿӗ Gantt trong Hình 5-1 Rõ ràng viӋc phân công ӣ trên có tӯ TXDQÿLӇm ràng buӝc vӅ mӭFÿӝ ѭXWLrQJLӳa các công viӋc vӟi các ràng buӝc vӅ tính hӳu dөng

Có thӇ thҩy thӡi gian trӉ cho phép chӗng chéo các hoҥWÿӝng trong khi trong các tình huӕQJNKiFÿӝ trӉ này buӝc mӝt khoҧng thӡi gian chӡ giӳa các hoҥWÿӝng liên tiӃp cӫa cùng mӝt công viӋc Ví dө: công viӋc 1 ӣ JLDLÿRҥn 2 có thӇ ÿѭӧc bҳWÿҫu ngay sau khi thiӃt lұSÿѭӧc hoàn thành tӯ công viӋFQKѭQJGRWKӡi gian trӉ tӯ JLDLÿRҥn 1, chӍ cho phép thӵc hiӋn sau 10 lҫn tiӃp theo trong khi công viӋc 5 ӣ JLDLÿRҥn 2 có thӇ xӱ lý sӟm KѫQWKұm chí không hoàn toàn kӃt thúc ӣ JLDLÿRҥn 1

Bên cҥQKSKѭѫQJSKiSMIP, tác giҧ FNJQJFXQJFҩp mӝt cách tiӃp cұn khác cho ví dө Qj\Oj3KѭѫQJSKiSӫ mô phӓQJ&iFEѭӟFQKѭVDX: x %ѭӟc 1: Khӣi tҥo o D&jLÿһt tham sӕÿһt sӕ lҫn lһp lҥi (R), sӕ JLDLÿRҥn (S) và sӕ lҫn lһp lҥi (I) o (b) Tҥo giҧi phiSEDQÿҫu: Tҥo ra chuӛi hiӋn tҥi bҵng cách sӱ dөng NEH- là mӝt trong nhӳQJSKѭѫQJSKiSKHXULVWLF5XL] x %ѭӟc 2: ĈiQKJLiKjP mөFWLrXÿiQKJLiFKӭFQăQJSKKӧp cho giҧi pháp ban ÿҫu x %ѭӟc 3: Tҥo giҧi pháp lân cұn: Tҥo giҧi pháp mӟi (Bҵng cách di chuyӇQWUDRÿәi theo cһp) x %ѭӟc 4: ĈiQKJLiKjPPөFWLrXÿiQKJLiFKӭFQăQJSKKӧp cho giҧi pháp lân cұn x %ѭӟc 5: So sánh: NӃu khoҧng tҥo cӫa giҧi pháp lân cұn nhӓ KѫQNKRҧng tҥo cӫa giҧLSKiSEDQÿҫu, hãy thay thӃ giҧLSKiSEDQÿҫu NӃu không, hãy sӱ dөng hàm

%ROW]PDQQÿӇ thay thӃ x %ѭӟc 6: KiӇm tra kӃt thúc lһp lҥi: kӃWWK~FJLDLÿRҥn hiӋn tҥi và chuyӇQVDQJEѭӟc

7 nӃu sӕ lҫn lһp hoàn thành bҵng I; nӃu khác quay lҥLEѭӟc 3 x %ѭӟc 7: KiӇm tra kӃWWK~FJLDLÿRҥn: kӃt thúc lһp lҥi hiӋn tҥi và chuyӇQVDQJEѭӟc

9 nӃu sӕ JLDLÿRҥQÿmKRjQWKjQKEҵng S; nӃu khác quay lҥLEѭӟc 8 x %ѭӟc 8: Cұp nhұt nhiӋWÿӝ: Cұp nhұt nhiӋWÿӝ FKRJLDLÿRҥn mӟi và quay lҥLEѭӟc

3 x %ѭӟc 9: KiӇm tra kӃt thúc cuӕi cùng: kӃt thúc thuұt toán nӃu sӕ lҫn lһp lҥi hoàn thành bҵng R; nӃu không, hãy chuyӇQVDQJEѭӟc 10

Hình 5-3 Thêm công viӋc vào khoҧng trӕng giӳa hai công viӋc khác

49 x %ѭӟc 10: Tҥo giҧi pháp lân cұn: Chӑn mӝt giҧi pháp mӟi (Bҵng cách di chuyӇn nghӏFKÿҧo) và quay lҥLEѭӟc 4

Thông tin chi tiӃt vӅ 6$QKѭVDX:

Quay lҥi ví dө, giҧLSKiSEDQÿҫXÿѭӧc tҥo ngүu nhiên tӯ không gian khҧ thi Trong nghiên cӭu này, thuұWWRiQ1(+ÿѭӧFÿӅ xuҩt bӣi Nawaz [18] ÿӇ ÿLӅXÿӝ flow shop vӟi mөc tiêu thӡi gian hoàn thành tҩt cҧ các công viӋFÿӇ Fyÿѭӧc câu trҧ lӡLEDQÿҫX/ѭX ý rҵng quy trình NEH dӵDWUrQêWѭӣng: các công viӋc có tәng thӡi gian xӱ lý cao trên tҩt cҧ FiFPi\QrQÿѭӧc lên lӏch càng sӟm càng tӕt [16,17] Bên cҥQKÿyQӃu công viӋc nào bӓ qua mӝWF{QJÿRҥn thì thӡi gian xӱ lý sӁ ÿѭӧc coi là 0 ĈiQKJLiJLҧLSKiSEDQÿҫu là mӝt phҫn cӫDTXiWUuQKWUѭӟc khi tҥo ra giҧi pháp lân cұn bҵng cách sӱ dөng chuyӇQÿӝQJWUDRÿәi theo cһp

Toán tӱ di truyӅn cӫa SA có ҧQKKѭӣng rҩt lӟQÿӃn hiӋu suҩWQKѭWURQJ+uQK-2 NӃu toán tӱ di truyӅn cӫa SA rҩt nhӓ, SA sӁ hiӃm khi tìm thҩy giҧi pháp tӕLѭXKRһc gҫn tӕi ѭXYuQyNK{QJWKӇ tìm kiӃm tҩt cҧ không gian giҧi pháp trong mӝt khoҧng thӡi gian hӧp Oê1Jѭӧc lҥi, nӃu toán tӱ di truyӅn cӫa SA rҩt lӟn, SA sӁ thӵc hiӋn tìm kiӃm ngүu nhiên trong không gian giҧi pháp vì nó chӑn giҧi pháp khҧ thi tiӃp theo mӝWFiFKÿӗng nhҩt trên không gian giҧi pháp Có vҿ hàm lân cұn sӱ dөng toán tӱ di truyӅn nhӓ và lӟQÿӅu thích hӧp [27,28]

Trong mӝt giҧi pháp cө thӇ, mӝt toán tӱ di truyӅn hoán song song WKD\ÿәi trình tӵ bҵng cách thay thӃ hai công viӋFÿmFKӑn sau khi chӑQKDLÿiӇm di chuyӇn ngүu nhiên trong trình tӵ Tӯ ÿyVDXEDOҫn lһp lҥi cho cҧ tҥRYjÿiQKJLiNӃt quҧ cuӕi cùng là mӝt

Hình 5-4 GiҧLSKiSEDQÿҫu và giҧi pháp lân cұn tӯ thuұt toán SA

50 thӭ tӵ cӫa các công viӋFʌ ^`Yӟi viӋc phân công công viӋc cho máy ӣ mӛi JLDLÿRҥn là theo sau:

Có thӇ thҩy, thuұt toán SA không thӇ ÿӅ xuҩt giҧi pháp tӕLѭXWӕt nhҩt QKѭQJQyJҫn giӕng vӟi giҧi pháp tӕLѭXQKҩt so vӟi kӃt quҧ cӫDSKѭѫQJSKiS0,3WURQJSKҫQÿҫu tiên

KӃt quҧ so sánh giӳa MIP và SA

BҧQJGѭӟLÿk\VRViQKJLӳa hai thuұt toán vӟi giҧ ÿӏnh rҵng phҫn còn lҥi cӫa các tham sӕ NKiFNK{QJWKD\ÿәi, QKѭWKӡi gian xӱ lý, thӡi gian trӉ FNJQJQKѭWKӡi gian thiӃt lұp 'RÿyFK~QJWDFyWKӇ xem xét kӻ KѫQÿӝ chính xác và thӡi gian tính toán tӯ mӛLSKѭѫQJ pháp.

So sánh giӳa hai thuұt toán

MIP Mô phӓng luyӋn kim - NEH

Giai ÿRҥn ࢏ Máy ࢒ Công viӋc ࢐ ܥ ௠௔௫ Thӡi gian ܥ ௠௔௫ Thӡi gian

* L˱X ê U̹ng dͷ li u thͥL JLDQ WUrQ ÿ˱ͫc th͹c hi n trên Máy tính xách tay Dell Inspiron 3542 i5 4210U / 4G / 500G và Máy tính xách tay HP EliteBook 840 G6 i5- 8365U / 8GB / 256GB

Cҧ hai thuұWWRiQQrXWUrQÿӅXÿѭӧc lұp trình bҵng ngôn ngӳ C# Tùy theo sӕ Oѭӧng ÿҫu vào mà mӛLQJѭӡi sӁ ÿѭDUDJLҧi pháp phù hӧp Nói mӝt cách chi tiӃWWURQJWUѭӡng hӧp dӳ liӋu nhӓ, MIP sӁ chính [iF KѫQ Yj JҫQ QKѭ Oj JLҧi pháp tӕL ѭX KѫQ6$ 7uy nhiên, SA sӁ hӳXtFKKѫQFKRQJѭӡi viӃt vӅ mһt dӳ liӋu lӟn và thӡi gian ngҳn

Hình 5-5 Cҩu hình máy cho giҧi thuұt SA

TÌNH HUӔNG NGHIÊN CӬU NHÀ MÁY DOTALIA

Tҥi nhà máy DOTALIA, có hai dây chuyӅn sҧn xuҩt gҫQQKѭJLӕng nhau, trӯ mӝt sӕ trҥm có chӭFQăQJNKiFQKDX7KHRTXDQViWtác giҧ có thӇ FRLÿk\OjPӝt trҥm vӟi nhiӅu máy móc khác chӭFQăQJYjNK{QJOLrQTXDQQKѭmô hình WRiQÿmÿѭӧFÿӅ cұp ӣ trên

Tҩt cҧ FiFÿҫXYjRÿѭӧc tәng hӧSQKѭErQGѭӟi: x ݅ ൌ ͺ x ݆ ൌ ʹ͵

Tính hӳu dөng cӫa công viӋc trên máy

(2) Ĉ~F Nung Tráng men/ in Nung Công viӋc ࢐ 1 {1-6} {1-4} {1-6} {1-6}

Có thӇ thҩ\ÿLӇm khác biӋt chính ӣ mүu này là máy móc chuyên dөng cҫn cho công ÿRҥQeS,QWiFÿӝQJÿӃn tính chҩt cӫa sҧn phҭPĈӕi vӟLFiFF{QJÿRҥn còn lҥi, chӍ yêu cҫu thӡi gian thiӃt lұp giӳa các sҧn phҭPQKѭNtFKWKѭӟc khác nhau hoһc trӝn vұt liӋu Chi tiӃt tӯng sҧn phҭm và mӕi quan hӋ giӳa 2 loҥLÿѭӧc liӋWNrQKѭGѭӟLÿk\:

Thӡi gian thiӃt lұp phө thuӝc vào trình tӵ

Nhóm I II III IV V I II III IV V

Thӡi gian xӱ lý cho tӯng công viӋc

Trҥm ࢏ Trӝn Sҩy khô (1) Làm khô Sҩy khô (2) Ép Nung Tráng men/ In Nung Nhóm Sҧn phҭm Loҥi Loҥi {1-4,5-6} {1-4} {1-6} {1-6} {1-3} {1,2} {1} {2} {1,2}

Thӡi gian thiӃt lұp phө thuӝc vào trình tӵ F{QJÿRҥn Ép

Thӡi gian trӉ cӫa công viӋc

Trӝn Sҩy khô (1) Ӫ Sҩy khô (2) Ép Nung Tráng men/ in Nung

7Uѭӟc khi ÿӅ cұSÿӃn kӃt quҧ, nghiên cӭu này chӑn mӝt sӕ các sҧn phҭm chӫ ÿҥo ӣ mӛi nhóm sҧn phҭm chính ÿӇ ÿҥi diӋn Có thӇ thҩy trong bҧng, có 5 nhóm chính sӁ ÿѭӧc xem xét và có ít nhҩt 3 sҧn phҭm cө thӇ1KѭYұy, tәng sӕ công viӋc sӁ OrQÿӃn 23 và trҧLTXDJLDLÿRҥn 'ѭӟLÿây là mӝt sӕ các giao diӋn giúp cho QJѭӡi dùng có thӇ nҳm bҳWÿѭӧFFiFWK{QJWLQÿҫu vào:

Hình 5-6 Sӕ Oѭӧng máy trong mӛi trҥm

Hình 5-9 Thӡi gian xӱ Oêÿҫu vào

Hình 5-8 Thӡi gian trӉ ÿҫu vào

57 Thӭ tӵ cӫa công viӋc ÿѭӧc thӇ hiӋQQKѭVDX ʌ ^ô, ô, ô, ô, ô, ô, ô, ô, ô, ô, ô, ô, ô, ô, ô, ô, ô, ô, ô, ô} vӟi viӋc phân công công viӋc cho máy ӣ mӛi trҥm:

Tuy nhiên, vӟi sӕ Oѭӧng công viӋFYjJLDLÿRҥn này, thuұt toán này sӁ không thӇ giҧi quyӃt bӝ nhӟ hҥn chӃ theo hình 5-11

Hình 5-10 Thӡi gian thiӃt lұSÿҫu vào

58 4XDÿy, có thӇ nhұn thҩy giҧi thuұt ÿѭӧFÿӅ xuҩWFKѭDÿӫ hiӋu quҧ vӟi các bài toán lӟn, FNJQJQKѭFKѭDFyÿҫ\ÿӫ sӵ hӛ trӧ vӅ máy móc ÿӇ có thӇ giҧi quyӃt bài toán thӵc tӃ Do vұy, tác giҧ cҫn dành thӡi gian nghiên cӭXÿӇ có thӇ ÿӅ xuҩt các giҧi thuұt mӟi hiӋu quҧ KѫQQӃu muӕQKѭӟng tӟi các bài toán thӵc tӃ

Hình 5-11 KӃt quҧ NK{QJÿѭӧc giҧi quyӃt do hҥn chӃ vӅ cҩu hình máy

KӂT LUҰN Ĉҫu tiên, theo sӵ hiӇu biӃt cӫa tác giҧ, nghiên cӭu này ÿѭӧc xem là mӝt trong nhӳng nӛ lӵFÿҫu tiên trong viӋc tìm hiӇu mô hình toán hӑc vӅ bài toán ÿLӅXÿӝ Hybrid Flow shop (HFS) WURQJ WUѭӡng hӧp thӵc tӃ Trong nghiên cӭu này, tác giҧ ÿm sӱ dөng hai SKѭѫQJSKiSFKtnh, mӝt là mô hình toán hӑc MIP và thӭ hai là SKѭѫQJSKiSKHXULVWLFV cho bài toán ÿLӅX ÿӝ này ӣ cҧ hai WUѭӡng hӧp ví dө nhӓ Yj WUѭӡng hӧp nhà máy DOTALIA ± mӝt trong nhӳng nhà sҧn xuҩWKjQJÿҫu trong ngành gҥch men ViӋt Nam

Thӭ hai, nghiên cӭu này không chӍ sӱ dөng các yӃu tӕ FѫEҧn cӫDEjLWRiQÿLӅXÿӝ mà còn xem xét thêm mӝt sӕ ÿһFÿLӇm thӵc tӃĈyOjsӵ tӗn tҥi cӫa các máy song song không liên quan ӣ mӛi JLDLÿRҥn ÿLӇn hình cho mӝt trong nhӳng ÿLӇm ÿһc biӋt trong ÿLӅXÿӝ HFS, tính hӳu dөng cӫa máy, khҧ QăQJFiFF{QJYLӋc có thӇ bӓ TXDFiFJLDLÿRҥn, thӡi gian thiӃt lұp phө thuӝc vào trình tӵ và thӡi gian trӉ giӳa các hoҥWÿӝng Thӭ ba, hàm mөc tiêu là giҧm thiӇu sai sӕ (bài toán NP-hard), hai cách tiӃp cұn ÿmÿѭӧFÿӅ xuҩt và ÿiQKJLiEҵng viӋc so sánh kӃt quҧ1KѭÿѭӧFWUuQKEj\WURQJ&KѭѫQJ0,3OjOӵa chӑn tӕt nhҩWFKRWUѭӡng hӧp dӳ liӋu nhӓ Yjÿѭӧc yêu cҫu trong thӡi gian ngҳn 1Jѭӧc lҥi, giҧi thuұt SA sӁ cung cҩp giҧi pháp tӕLѭXFKRFiFWUѭӡng hӧp dӳ liӋu lӟn vӟi viӋc sӱ dөng NEH QKѭKѭӟng dүn cho JLDLÿRҥn EDQÿҫu Cuӕi cùng, hai thuұWWRiQÿyÿѭӧc xây dӵng trên nӅn tҧng ngôn ngӳ C# Chúng có thӇ giúp ích vӅ thӡi gian tính toán và dӉ dàng tҥo ra các giao diӋn thân thiӋn vӟLQJѭӡi dùng thông qua ӭng dөng

Trong nghiên cӭu này, mһc dù sӵ phӭc tҥp cӫa bài toán ÿLӅXÿӝ +)6ÿmÿѭӧc xem xét và giҧi quyӃt thông qua các ràng buӝc kӇ trên, thì vүn còn mӝt sӕ giҧ thiӃt FKѭDViW vӟi thӵc tӃ Ví dө, giҧ ÿӏnh không có lӛi khi xӱ lý các công viӋc trên máy móc, không có sӵ cӕ FNJQJQKѭNK{QJWәn hҥi trên máy móc Mһt khác, tҩt cҧ dӳ liӋXÿѭӧc sӱ dөng ÿӅXPDQJWtQK[iFÿӏnhÿm biӃWWUѭӟc và không cho phép quyӅQѭXWLrQ9uYұ\ÿӇ tiӃp cұn gҫQKѫn vӟi thӵc tiӉn hiӋn tҥi thì các yӃu tӕ thӵc tӃ vӅ thӡi gian ngӯng, thӡi gian ÿѭӧFSKpSѭXWLrQQJj\ÿiRKҥQôFҫn phҧi thҧo luұn thờm Ĉk\FNJQJOjPӝt trong nhӳQJKѭӟQJÿӇ phát triӇn các nghiên cӭu tiӃp theo

[1] Davoli et al., (2010), A stochastic simulation approach for production scheduling and investment planning in the tile industry, International Journal of Engineering,

Science and Technology, Vol 2, No 9, 2010, pp 107-124

[2] Giret, A., & Botti, V., (2009), Engineering Holonic manufacturing systems,

Computer in Industry, the article in press DOI:10.1016/j.compind.2009.02.007

[3] Insights Into the World Ceramic Tiles Market (2019-2024): Trends & Challenges Shaping the Future of the Industry, 2019, Research and Markets, Available at https://www.prnewswire.com/news-releases/insights-into-the-world-ceramic-tiles- market-2019-2024-trends challenges-shaping-the-future-of-the-industry-

[4] Grossmann I., (2005), Enterprise-wide optimization: a new frontier in process systems engineering, AIChE Journal,51:1846±57

[5] Duarte, P M et al., (2008), Optimal sizing, scheduling and shift policy of the grinding section of a ceramic tile plant, Computer & Operation Research, volume

[6] Hoai Lam, 2019, Gҥch ӕp lát ViӋW1DPYѭѫQOrQWRSWUrQWKӃ giӟi, Available at http://vneconomy.vn/gach-op-lat-viet-nam-vuon-len-top-4-tren-the-gioi-2019112 8120809915.htm, xem 02/01/2020

[7] ReportLinker, Vietnamese ceramic tiles market is expected to register a CAGR of 8%, Available at https://www.globenewswire.com/news-release/2020/05/28/ 2039900/0/en/Vietnamese-ceramic-tiles-market-is-expected-to-register-a-CAGR- of-8.html, xem 02/01/2020

[8] Vietnam Ceramic tiles Market - Growth, Trends, and Forecast (2019 - 2024), 2019, Available at https://www.mordorintelligence.com/industry-reports/vietnam- ceramic-tiles-market, xem 02/01/2020

[9] SN, Ngành sҧn xuҩt gҥch ӕS OiW ÿDQJ Fy QKLӅX Fѫ Kӝi, Available at https://www vlxd15.com/tin-tuc/nganh-san-xuat-gach-op-lat-dang-co-nhieu-co-hoi.html, xem 02/01/2020

[10] Tomas, B & Juan, A M., (2006), An empirical study of lean production in the ceramic tile industry in Spain, International Journal of Operations & Production

[11] Rowley, C., (1996), Flexible specialization: some comparative dimensions and evidence from the ceramic tile industry, New Technology, Work and Employment,

[12] MacCarthy, B L., & Liu, J (1993) Addressing the gap in scheduling research: a review of optimization and heuristic methods in production scheduling

International Journal of Production Research, 31(1), 59±79

[13] Graves, S C (1981), A Review of Production Scheduling Operations Research, 29(4), 646±675

[14] Jackson, S., Wilson, J R., & MacCarthy, B L (2004) A New Model of Scheduling in Manufacturing: Tasks, Roles, and Monitoring Human Factors: The Journal of the Human Factors and Ergonomics Society, 46(3), 533±550

[15] Rodammer, F A., & White, K P (1988) A recent survey of production scheduling IEEE Transactions on Systems, Man, and Cybernetics, 18(6), 841±85

[16] Framinan, J M., Leisten, R and García, R R., (2014) Manufacturing Scheduling

Systems: An Integrated View on Models, Methods and Tools, Springer London

[17] Ruiz, R et al (2008) Modeling realistic hybrid flexible flowshop scheduling problems, Computers & Operations Research 35 (2008) 1151±1175, doi:10.1016/j.cor.2006.07.014

[18] Nawaz et al., (1983) A new improved NEH heuristic for permutation flowshop scheduling problems, International Journal of Production Economics, Volume 193,

[19] Glover and Kochenberger, (2003) Handbook of Metaheuristics International

Series in Operations Research & Management Science

[20] Bertel and Billaut, (2004) A genetic algorithm for an industrial multiprocessor flow shop scheduling problem with recirculation European Journal of Operational

[21] Morita and Shio, (2005) Hybrid Branch and Bound Method with Genetic Algorithm for Flexible Flowshop Scheduling Problem JSME International Journal

[22] Phuc, P (2016) General Mathematical Model for Flow Shop and Job Shop Scheduling when each workstation has several identical parallel machines and revisit workstation is allowed, Proceedings of the 14th International Congress on

Logistics and SCM Systems, Industrial Systems Engineering Department International University-National University HoChiMinh City, VietNam

[23] Naderi, et al (2014) Hybrid flexible flowshop problems: Models and solution methods Applied Mathematical Modelling 28 (2014) 5767 ± 5780

[24] DongTam Group, Available at https://dongtam.com.vn/en/production/main- products.html, xem 02/01/2020

[25] Rubén, R., Funda, S S., & Thijs, U., (2006) Modeling realistic hybrid flexible flow shop scheduling problems Computers & Operations Research 35 (2008), 1151±

[26] Harbaoui, H., Bellenguez ± Morineau, O., & Khalfallah, S (2016) Scheduling a two-stage hybrid flow shop with dedicated machines, time lags, and sequence- dependent family setup times 2016 IEEE International Conference on Systems,

[27] Mirsanei, H S, et al (2010) A simulated annealing algorithm approach to hybrid flow shop scheduling with sequence-dependent setup times, J Intell Manuf (2011)

[28] Ha, P (2017) A simulated annealing algorithm for vehicle scheduling problem

Science and Technology Development Journal, vol 20, No Q4- 2017

Code in C# - Mix Integer Programming using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using FindMinCMax.Entity; using FindMinCMax.Input; namespace FindMinCMax

{private const int V = 1000000000; public int[] jobsPermutation { get; set; } = { 2, 1, 3, 4, 5 }; public int[][] jobAssignments {new[] {2, 1, 0, 2, 1}, new[] {1, 2, 1, 0, 2}, new[] {0, 1, 1, 1, 1}

// row: stages, column position: corresponding to job permutation, cell: assigned machine to a job at a stage private int[][] _machines; private int[][][] _eligibility; private int[][][] _processingTimes; private int[][][] _lagTimes; private int[][][][] _setupTimes; private List Jobs; private List Stages; private int _numOfJobs; private int _numOfStages; public JobsProcessingUtils()

} private void InitJobs(int jobsCount)

{Jobs = new List(jobsCount); for (var i = 0; i < jobsCount; ++i)

{Jobs.Add(new Job { Id = i, CurrentTime = 0 });

} private void InitStagesAndTheirMachines(int stagesCount)

{Stages = new List(stagesCount); for (var i = 0; i < stagesCount; ++i)

{Stages.Add(new Stage { Id = i, Machines = new List(_machines[i].Length) });

{var machinesCount = _machines[i].Length; for (var l = 0; l < machinesCount; ++l)

{Stages[i].Machines.Add(new Machine { Id = l, AvailableTime = 0, CurrentJobPosition = -1 });

{var cMax = 0; for (var k = 0; k < _numOfJobs; ++k)

{// find total processing time of job k var jobId = jobsPermutation[k]; var jobPosition = jobId - 1; for (var i = 0; i < _numOfStages; ++i)

{// 1 BEFORE PROCESSING var machineId = jobAssignments[i][k]; if (machineId == 0)

} var machinePosition = machineId - 1; varprocessingTime_processingTimes[i][machinePosition][jobPosition]; var setupTime = 0; varpreviousJobPositionStages[i].Machines[machinePosition].CurrentJobPosition; if (previousJobPosition >= 0)

{setupTimeMath.Max(_setupTimes[i][machinePosition][previousJobPosition][jobPosition], 0); } var lagTime = 0; if (i > 0)

{// not the first stage var previousMachinePosition = jobAssignments[i - 1][k] - 1; lagTime = previousMachinePosition >= 0

} var headTime = Math.Max(Jobs[jobPosition].CurrentTime + lagTime,

Stages[i].Machines[machinePosition].AvailableTime); var offerAddedBySetupTime = Math.Min(0, headTime - setupTime -

// 2 WHILE PROCESSING var timeTaken = headTime + processingTime - offerAddedBySetupTime;

// $@"Stage {i + 1}, Machine {machinePosition + 1}, Job {jobPosition + 1}, CurrentTime {Jobs[jobPosition].CurrentTime + lagTime}, HeadTime {headTime}, SetupOffer {offerAddedBySetupTime} -> TimeTaken {timeTaken}");

Stages[i].Machines[machinePosition].AvailableTime = timeTaken;

Stages[i].Machines[machinePosition].CurrentJobPosition = jobPosition; // - END OF WHILE PROCESSING

//Console.WriteLine($@"Job {jobPosition}: Cmax: {Jobs[jobPosition].CurrentTime}"); cMax = Math.Max(cMax, Jobs[jobPosition].CurrentTime);

Run all case using System; using System.Collections; using System.Collections.Generic; using System.Linq; using FindMinCMax.Entity; using FindMinCMax.Input; using FindMinCMax.Utils; namespace FindMinCMax.Helpers

{public int NumOfJobs { get; set; } = 0; public int JobPermutationCount { get; set; } private bool[] IsAvailable { get; set; }

*/ public int[] X { get; set; } private JobsProcessingUtils _utils; private int[][][] _eligibility; private int _numOfStages = 0; private bool[][][] IsMachineAvailable { get; set; } public int[][] JobAssignments { get; set; } private int JobAssignmentsCount { get; set; } public int ResultCmax = 1000000000; public int[] ResultJobPermutation; public int[][] ResultJobAssignments; public List Results { get; set; } = new List(); public JobHelper()

//Console.WriteLine($@"Num of permutations: {NumOfPermutation}"); } private void PermuteJobs(int i)

{Console.Write($@"{JobPermutationCount}: "); for (var i = 0; i < NumOfJobs; ++i)

/// Process a specific job flow, find the best machine assignment to this job flow /// public void ProcessPermutationX()

{IsAvailable = new bool[NumOfJobs]; for (var i = 0; i < NumOfJobs; ++i)

Console.WriteLine("assignment count " + JobAssignmentsCount);

JobAssignments = new int[_numOfStages][]; var maxNumOfJobs = InputData.NumOfJobs; for (var i = 0; i < _numOfStages; ++i)

JobAssignments[i] = new int[maxNumOfJobs]; for (var j = 0; j < maxNumOfJobs; ++j)

{JobAssignments[i][j] = 0; var maxNumOfMachines = InputData.MaxNumOfMachinesEachStage; IsMachineAvailable[i][j] = new bool[maxNumOfMachines]; for (var l = 0; l < maxNumOfMachines; ++l)

} private void PermuteAssignments(int i, int j)

{var jobPosition = X[j] - 1; var numOfMachines = _eligibility[i][jobPosition].Length; if (numOfMachines == 0)

{for (var machine = 0; machine < numOfMachines; ++machine)

JobAssignments[i][j] = _eligibility[i][jobPosition][machine]; //machine + 1;

}; var cMax = _utils.FindCMax(); var jobs = new Neighbor

Results = new List(); // clear list alternative results

{Results.Add(jobs); // add same job config for optimal Cmax

{Console.WriteLine($@"Job assignment {JobAssignmentsCount}:"); for (var i = 0; i < _numOfStages; ++i)

Simulated Annealing using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using FindMinCMax.Input; using FindMinCMax.Utils; namespace FindMinCMax.Helpers

{private const int MAX_INT = 1000000000; private const double TOLERANCE = 0.000001d; public int LoopCount { get; set; } public int NumOfJobs { get; set; } public Neighbor InitJobs { get; set; } public int[] ResultJobPermutation { get; set; } public int[][] ResultJobAssignment { get; set; } public int ResultCmax { get; set; } private JobHelper _jobHelper; public SimulatedAnnealingAlgo()

InitJobs = GetInitialJobsPermutationUsingNEH(); var jobs = InitJobs;

Console.WriteLine("Done initializing"); var result = jobs; var rand = new Random(); var beta = rand.NextDouble(); for (var k = 0; k < LoopCount; ++k)

// STEP 2: Evaluate nearby region of previous best pick var neighbor = GetBestNeighborOf(jobs.JobsPermutation); if (neighbor.Cmax < result.Cmax)

{// G(Sc) < (G(S0) result = neighbor; jobs = neighbor;

} else if (neighbor.Cmax < jobs.Cmax)

{// G(Sc) >= G(Sk) var u = rand.NextDouble(); // random (1, 0) var p = CalculateP(jobs.Cmax, neighbor.Cmax, beta); if (u Math.Abs(jobA.APT - jobB.APT) < TOLERANCE

: jobA.APT > jobB.APT ? 1 : -1); return jobs.ToJobNameArray();

{var sortedJobs = GetSortedJobsByTotalAPT(); if (NumOfJobs < 2)

{return new Neighbor(sortedJobs.ToJobNameArray());

} var currentJobs = new List { sortedJobs[0].JobName }; var bestJobs = new Neighbor(); for (var j = 1; j < NumOfJobs; ++j)

{Console.WriteLine("Processing job " + (j + 1)); var nextJob = sortedJobs[j].JobName; currentJobs = PutJobToTheBestPosition(currentJobs, nextJob, out bestJobs);

} private List PutJobToTheBestPosition(List jobs, int jobName, out Neighbor bestJobs)

{var jobPermutation = jobs.ClonedInstance().ToList(); jobPermutation.Insert(0, jobName); var bestAppendedJobs = new Neighbor { JobsPermutation jobPermutation.ToArray() }; bestAppendedJobs.CalculateCmax(); for (var position = 1; position appendedJobs.Cmax)

} bestJobs = bestAppendedJobs; return bestAppendedJobs.JobsPermutation.ToList();

{var jobs = new List(NumOfJobs); for (var j = 0; j < NumOfJobs; ++j)

{var job = new AptJob { JobName = j + 1, TotalAPT = 0 }; for (var i = 0; i < InputData.NumOfStages; ++i)

{var stageName = i + 1; job.TotalAPT += CalculateAPT(stageName, job.JobName);

Math.Abs(jobA.TotalAPT - jobB.TotalAPT) < TOLERANCE

: jobA.TotalAPT > jobB.TotalAPT ? 1 : -1); return jobs;

/// Calculate average processing time for the stage stageName of job jobName

/// APT of the job private double CalculateAPT(int stageName, int jobName)

{var jobPosition = jobName - 1; var stagePosition = stageName - 1; var eligibility = InputData.Eligibility; var processingTimes = InputData.ProcessingTimes; var totalProcessingTime = 0d; var numberOfMachines = eligibility[stagePosition][jobPosition].Length; if (numberOfMachines == 0)

{return 0; // prioritize not fungible job

{var machinePosition = eligibility[stagePosition][jobPosition][l] - 1; totalProcessingTime + processingTimes[stagePosition][machinePosition][jobPosition];

} private Neighbor GetBestNeighborOf(IReadOnlyCollection jobsPermutation)

{var bestNeighbor = new Neighbor { Cmax = MAX_INT }; for (var i = 0; i < jobsPermutation.Count - 1; ++i)

{var neighborJobs = GetNeighborJobs(jobsPermutation, i); var neighbor = new Neighbor { JobsPermutation = neighborJobs }; neighbor.CalculateCmax(); if (neighbor.Cmax < bestNeighbor.Cmax)

} private double CalculateP(int cmaxK, int cmaxC, double beta)

{return Math.Exp((cmaxK - cmaxC) / beta);

} private int[] GetNeighborJobs(IEnumerable host, int swapIndex)

{var neighbor = host.ClonedInstance(); var tmp = neighbor[swapIndex]; neighbor[swapIndex] = neighbor[swapIndex + 1]; neighbor[swapIndex + 1] = tmp; return neighbor;

} private static void PrintJobAssignments(int[][] jobsAssignment)

{Console.WriteLine(@"=> Job assignment: "); for (var i = 0; i < 3; ++i)

} private static void PrintJobsPermutation(int[] jobsPermutation)

{Console.WriteLine(@"=> Job permutation: "); for (var i = 0; i < jobsPermutation.Length; ++i)

{public int[] JobsPermutation { get; set; } public int[][] JobsAssignment { get; set; } public int Cmax { get; set; } public Neighbor()

JobsAssignment = jobHelper.ResultJobAssignments.ClonedInstance(); Cmax = jobHelper.ResultCmax;

//Console.WriteLine(@"===> SA Cmax: " + Cmax);

{public int JobName { get; set; } public double APT { get; set; } public double TotalAPT { get; set; }

{public static int[] ToJobNameArray(this List jobs)

{return jobs.Select(job => job.JobName).ToArray();

Ngày đăng: 03/08/2024, 13:50

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w