王 欣
(南京六合中等專業學校,南京 211500)
近年來,全球范圍內環境問題日益嚴重,引起了人們對可持續發展更深的思考。作為現代制造業的重要組成部分,機械制造在其發展過程中也面臨著日益嚴峻的環境挑戰[1-3]。傳統的制造模式在追求高產出的同時,往往忽視了資源的有效利用及對環境的不良影響,導致能源消耗過大、廢棄物排放增多等問題。隨著綠色理念的提出和可持續發展理念的普及[4],綠色制造已成為實現制造業可持續發展的必然選擇。
綠色制造旨在通過優化生產過程、改進產品設計和提高資源利用效率等手段,實現滿足人類需求的同時最大限度地減少對環境的不良影響。然而,機械綠色制造系統的優化問題涉及到多個相互關聯的目標,如資源利用效率、能源消耗、廢棄物排放等,這些目標往往相互沖突,使得優化過程變得復雜而困難。傳統的單目標優化方法難以有效解決這些多目標優化問題[5],因此,尋找一種高效而準確的優化方法顯得尤為重要。
非支配排序遺傳算法(NSGA-Ⅱ)作為一種經典的多目標優化算法,在解決復雜多目標優化問題方面具有顯著優勢。然而,傳統的NSGA-Ⅱ算法在應用于機械綠色制造系統優化時仍然存在一些問題,如收斂速度慢、易陷入局部最優等[6]。因此,本研究旨在對NSGA-Ⅱ算法進行改進,以更好地適用于機械綠色制造系統的多目標優化問題。通過構建機械綠色制造系統的多目標優化模型,并結合實際案例進行數值實驗,驗證了所提方法的有效性和優越性,并展望了未來進一步改進和推廣該方法的方向。
多目標優化(Multi-Objective Optimization,簡稱MOO)是指在優化問題中,同時優化兩個或多個目標函數的問題。通常情況下,這些目標函數是矛盾的,不能同時達到最優解。MOO的目標是找到所有可能的解,這些解被稱為Pareto最優解(Pareto-Optimal Solutions),這些解之間不存在支配關系(Dominance)[7]。
多目標優化方法主要分為傳統優化方法和智能優化算法(圖1)。

圖1 算法分類圖
多目標遺傳算法(Multi-Objective Genetic Algorithm,MOGA)是一類用于解決多目標優化問題的進化算法。其中,非支配排序遺傳算法(Non-dominated Sorting Genetic Algorithm,NSGA)及其改進版本NSGA-Ⅱ是常用的多目標遺傳算法之一。NSGA-Ⅱ算法的基本思想如下:
1)非支配排序。根據支配關系將種群劃分為不同的非支配層次,層次越高的解越優越,不受其他解支配。
2)擁擠度距離。為了維護種群的多樣性,NSGA-Ⅱ引入了擁擠度距離的概念,用于衡量解在目標空間上的分布密度。在選擇操作時,擁擠度距離較大的解更有可能被選擇。
3)遺傳操作。NSGA-Ⅱ采用了交叉和變異操作來生成新的個體,并保留部分原始種群,以實現種群的演化。
改進NSGA-Ⅱ算法在原始NSGA的基礎上進行了一些優化,以提高算法的性能,改進交叉和變異策略、更精細的非支配排序等,使得NSGA-Ⅱ在解決多目標優化問題時具有更快地收斂速度和更好地多樣性維持能力,基本原理如圖2所示。

圖2 改進 NSGA-Ⅱ 算法流程圖
多目標優化算法在機械系統設計中有著廣泛的應用。例如,在機械結構設計中,設計者通常需要考慮結構強度、剛度、重量等多個指標,而這些指標往往存在相互制約的關系。多目標優化算法能夠在設計中同時考慮這些指標,并找到最優的解決方案。
在機械制造領域,工期目標(Time,T)是指完成特定項目、任務或生產過程所需的時間。在多目標優化中,機械工期目標通常是一個需要平衡的重要目標之一。本文采用關鍵路徑法(Critical Path Method,CPM)計算項目完成工期,基于任務之間的依賴關系和持續時間來構建項目網絡圖,通過計算最早開始時間和最晚開始時間,找出影響整體工期的關鍵任務路徑。
項目生產成本(Cost,C)是指在項目的整個生命周期內所涉及的資源和費用支出的總和,包括項目從規劃、設計、開發、實施、測試到維護和運營等各個階段的成本。項目生產成本是項目管理和決策中一個關鍵的指標,對于預算控制、資源分配、投資決策和經濟效益評估都具有重要影響。項目生產成本可以分為直接成本、間接成本、可變成本、固定成本、總成本幾個主要方面。
項目環境目標(Environment,簡稱“E”)是指在項目執行過程中所設定的與環境保護和可持續發展相關的目標和指標。這些目標旨在確保項目在實施過程中對環境造成最小的負面影響,促進資源的可持續利用,減少環境污染和生態破壞,以及促進社會經濟的可持續發展。
項目資源目標(Resource,簡稱“R”)是指在項目執行過程中所設定的與資源管理和利用相關的目標和指標,旨在優化項目的資源配置,確保項目能夠高效地利用人力、物力、財力等資源,從而實現項目的順利實施和目標達成。
本文使用 Python 語言實現算法運行:
1)創建種群,包含了50個個體
population = toolbox.population(n=50)
2)接下來,創建了一個改進的NSGA-Ⅱ算法實例,指定了演化參數如種群大小、交叉概率、變異概率。運行改進的NSGA-Ⅱ算法,得到最終的非支配解集和演化日志
final_population, logbook = algorithm.run(population)
3)輸出最終的非支配解集:根據演化結果,輸出最終的非支配解集,展示了在多目標問題中的不同權衡的解
pareto_front = tools.sortNondominated(final_population, len(final_population), first_front_only=True)[0]
print("Final Pareto Front:")
for ind in pareto_front:
print(ind.fitness.values)
為了更全面地驗證本文所提出的改進NSGA-II算法的有效性與性能,研究人員選擇了在多目標優化領域中廣泛應用的ZDT(Zitzler-Deb-Thiele)系列測試函數作為評估基準。常見的ZDT測試函數包括ZDT1、ZDT2、ZDT3等,其中每個函數都有不同的特點和難度級別。這些函數通常用于測試算法的收斂性能、多樣性維持能力、邊界處理能力等方面。本文選擇ZDT1和ZDT2測試函數來評估改進的NSGA-II算法在找到并產生分布性良好的帕累托前沿方面的性能,用于測試多目標優化算法的多樣性維持能力和收斂性能(表1)。

表1 測試函數表達方式及約束條件
基于改進NSGA-Ⅱ算法優化測試結果如圖3所示,橫坐標表示目標1的值,縱坐標表示目標2的值,點線代表實驗求得的近似帕累托前沿值,而曲線則代表真實的帕累托前沿值。通過比較近似帕累托前沿值和真實帕累托前沿值,可以評估改進的NSGA-II算法在ZDT1測試函數上的性能。測試結果表明,實驗結果點線密集地分布在真實帕累托前沿曲線附近。這表明算法能夠有效地探索并找到分布性良好的解集,成功逼近了問題的真實解集。這種能力在多目標優化問題中至關重要,證明了算法的多樣性維持和收斂性能。

圖3 改進NSGA-II 算法應用于 ZDT1(a)、ZDT2(b)
其次,通過比較點線與曲線之間的差距,可以進一步觀察到算法的逼近情況。在不同迭代次數下,點逐漸靠近曲線,說明算法在迭代過程中逐步優化解集,反映了改進的NSGA-II算法的收斂性能,能夠在有限的迭代次數內接近真實帕累托前沿。
綜上所述,改進的NSGA-II算法在應用于ZDT2測試函數時表現出了出色的性能,成功地找到了分布性良好的帕累托前沿值,證明了其在多樣性維持、收斂性能以及邊界處理能力方面的優越性。這些結果為算法在實際多目標優化問題中的應用奠定了堅實的基礎,同時也為算法的改進和進一步研究提供了有價值的參考。
本研究對改進的NSGA-II算法在多目標優化領域的應用進行了深入研究,并以ZDT1和ZDT2測試函數為基準,對其性能和有效性進行了驗證。通過實驗結果的分析和比較,得出了以下結論:
1)實驗結果表明,紅色的近似帕累托前沿值與藍色的真實帕累托前沿曲線分布較為接近,表明算法能夠有效地逼近真實的帕累托前沿值,反映了該算法在多樣性維持和收斂性能方面的良好表現,對于解決ZDT1測試函數這種較為簡單形狀的多目標優化問題具有較好的適應性;
2)將改進的NSGA-II算法應用于ZDT2測試函數,測試結果顯示,紅色的近似帕累托前沿值分布在藍色的真實帕累托前沿曲線附近,表明算法在處理具有多個局部最優解的復雜多目標問題上的能力,能夠在一定迭代次數內接近或擬合真實的帕累托前沿值,展示了其在多樣性維持和收斂性能方面的優越性。