You are on page 1of 6

‫מיקום מכונה חדשה‬ ‫𝑗𝑖𝑑‬ ‫סוג מרחק‬

‫בוחרים )𝑌 ‪ (𝑋,‬ראשוני (עדיף קרוב ככל הניתן למכונה עם הכי הרבה‬ ‫‪√(𝑥2 − 𝑥1 )2 + (𝑦2 − 𝑦1 )2‬‬ ‫אוקלידי‬
‫נסיעות)‪.‬‬
‫עבור כל מכונה מחשבים (‪ = ti‬מספר נסיעות למכונה ‪ i‬הנמצאת‬
‫בקואורדינטה ( 𝑖𝑦 ‪) ) 𝑥𝑖 ,‬‬
‫𝑖𝑡‬
‫= 𝑖𝑔‬
‫‪√(𝑋 − 𝑥1 )2 + (𝑌 − 𝑦1 )2‬‬
‫מעדכנים את )𝑌 ‪ (𝑋,‬בצורה הבאה‬
‫) 𝑖𝑥 ∗ 𝑖𝑔(‪∑𝑛𝑖=1‬‬
‫=𝑋‬
‫) 𝑖𝑔(‪∑𝑛𝑖=1‬‬
‫) 𝑖𝑦 ∗ 𝑖𝑔(‪∑𝑛𝑖=1‬‬
‫=𝑌‬
‫) 𝑖𝑔(‪∑𝑛𝑖=1‬‬
‫מעדכנים שוב ושוב‪ ,‬עד שאין הבדל בין המקום הקודם לחדש או עד שאין‬
‫הפרש כלשהו שנבחר (אפסילון)‬

‫ל‪ X-‬ול‪ Y-‬נעשה את הפעולות לקמן‪ ,‬לכל אחד בנפרד‬ ‫| ‪|𝑥2 − 𝑥1 | + |𝑦2 − 𝑦1‬‬ ‫מנהטן‬
‫‪ )1‬מיון המכונות בטבלה לפי סדר עולה של קואורדינטות (טבלה‬
‫נפרדת ל‪ X-‬וטבלה נפרדת ל‪)Y-‬‬ ‫(כשיש‬
‫‪ )2‬הוספת עמודה של נסיעות מצטברות‬ ‫הפרעות)‬
‫‪ )3‬מציאת החציון(חצי) של נסיעות המצטבר‬
‫המיקום שהחציון נופל בטווח שלו הוא נקודת קואורדינטה של המכונה‬
‫החדשה‬
‫(‪ = ti‬מספר נסיעות למכונה ‪ i‬הנמצאת בקואורדינטה ( 𝑖𝑦 ‪) ) 𝑥𝑖 ,‬‬ ‫‪(𝑥2 − 𝑥1 )2 + (𝑦2 − 𝑦1 )2‬‬ ‫ריבועי‬
‫כשמרחק קריטי‬
‫) 𝑖𝑥 ∗ 𝑖𝑡(‪∑𝑛𝑖=1‬‬
‫=𝑋‬
‫) 𝑖𝑡(‪∑𝑛𝑖=1‬‬
‫𝑛‬
‫) 𝑖𝑦 ∗ 𝑖𝑡(‪∑𝑖=1‬‬
‫=𝑌‬
‫) 𝑖𝑡(‪∑𝑛𝑖=1‬‬
‫‪𝑀𝑎𝑥{|𝑥2 − 𝑥1 | ,‬‬ ‫‪|𝑦2 − 𝑦1 | ,‬‬ ‫צ'ביצ'ב‬
‫‪1‬‬
‫}| ‪|𝑧2 − 𝑧1‬‬
‫יוריסטיקה(טבלת חיסכון)‬ ‫מיקום מכונה אחת בין מספר אופציות נתונות (חייב‬
‫• יותר קל לחישוב במקרים של מכונות רבות‪ ,‬עלול‬ ‫למקם באחת האופציות)‪:‬‬
‫להיות פחות יעיל מ‪.Brute Force -‬‬ ‫יש שתי שיטות שונות‪.‬‬
‫‪ )1‬את המכונה הראשונה נמקם בעזרת מיקום‬ ‫‪ )1‬חישוב כמותי –‬
‫מכונה אחת בין מספר אופציות נתונות (ראה לעיל)‪.‬‬ ‫א‪ .‬מתן משקל לכל מדד הערכה‪.‬‬
‫‪ )2‬בניית טבלת חיסכון‪ :‬זוגות מיקומים שאחד מכל‬ ‫ב‪ .‬ציון לכל חלופה בכל מדד‪.‬‬
‫זוג הוא המיקום המשובץ כבר (עמודות)‪ ,‬ומכונות‬ ‫ג‪ .‬הכפלה של המשקל בציון‪.‬‬
‫(שורות)‪.‬‬ ‫ד‪ .‬סכימה לכל חלופה‪.‬‬
‫‪ )3‬בתוך הטבלה נחשב עלות מיקום קיים מינוס‬ ‫ה‪ .‬בחירת האלטרנטיבה הגבוהה בציון המשוקלל‪.‬‬
‫עלות מיקום חדש(חיסכון)‪ ,‬אם יוצא מספר שלילי אז‬ ‫‪ )2‬חישוב מזעור עלויות –‬
‫נרשום ‪( 0‬אין חיסכון) (דוג' עם הנתונים מהתמונה‬ ‫• נתונה טבלה של מיקומים אופציונליים (עמודות)‬
‫הקודמת‪ ,‬חישוב חיסכון‪ :‬בהצבת מכונה במיקום ‪2‬‬ ‫ומכונות (שורות) עם מרחקים ביניהם (אחרי‬
‫נחשב את מיקום ‪ 2‬מול מיקומים ‪ .1,3,4,5‬לדוג'‬ ‫שחושבו המרחקים לפי שיטה מסויימת)‪.‬‬
‫החיסכון בהצבת מכונה נוספת במיקום ‪ 3‬יהיה ‪80 −‬‬ ‫• נתון מספר נסיעות לכל מכונה‪.‬‬
‫‪ 2 ,20 = 60‬ו‪ 1‬יהיה ‪ 40‬וכו')‪.‬‬ ‫א‪ .‬ניצור טבלה חדשה שהיא הכפלת כל מרחק‬
‫‪ )4‬נסכום עמודות וניקח את הסכום המקסימלי‬ ‫במספר הנסיעות לאותה מכונה‪.‬‬
‫(חיסכון מירבי)‪ .‬ניתן להוסיף ככה עוד מכונות‪ .‬לדוג'‪ ,‬אם‬ ‫ב‪ .‬נסכום עמודות וניקח את הסכום המינימלי‪.‬‬
‫הצבנו מכונות במיקומים‪ 2+3+4‬ורוצים לחשב חיסכון‬
‫למכונה ‪ E‬בהצבת מכונה נוספת במיקום ‪:5‬‬ ‫מיקום ‪ 2‬מכונות לא זהות‪:‬‬
‫פעולות אלו עושים ל‪ X-‬לחוד ו‪ Y-‬לחוד‬
‫‪ )1‬נמקם את מכונה ‪ )M1( 1‬ביחס לשאר המכונות‬
‫(תוך התעלמות מהמכונה השנייה החדשה)‬
‫הנוסחה היא‪min(50,60,40) − 20 = 20 :‬‬ ‫כמקודם (לדגו' לפי מנהטן או ריבועי)‪.‬‬
‫בעיות השמה‬ ‫‪ )2‬נמקם את מכונה ‪ )M2( 2‬ביחס לשאר המכונות‬
‫‪ .1‬אלגוריתם הונגרי‬ ‫כולל ‪.M1‬‬
‫‪ )1‬מציאת האיבר המינימלי בכל שורה‪ ,‬והחסרת‬ ‫‪ )3‬נמקם את מכונה ‪ )M1( 1‬ביחס לשאר המכונות‬
‫אותו איבר מאיברי כל השורה‬ ‫כולל ‪.M2‬‬
‫‪ )2‬מציאת האיבר המינימלי בכל עמודה‪ ,‬והחסרת‬
‫‪ )4‬חוזרים על התהליך עד לייצוב מיקום שתי‬
‫אותו איבר מאיברי כל העמודה‬
‫המכונות החדשות‪.‬‬
‫‪ )3‬סימון מספר מינימלי של קווים המכסים את כל‬
‫מיקום ‪ 2‬מכונות זהות‪:‬‬
‫האפסים שבטבלה‬
‫• כל מכונה 'תעבוד' עם המכונה החדשה שיותר‬
‫‪ )4‬אם מספר הקווים המסומנים שווה למספר‬
‫קרובה אליה‪.‬‬
‫ההשמות שיש לבצע‪ ,‬הפתרון אופטימלי‪ .‬אם לא‪,‬‬
‫אלגוריתם ‪Brute Force‬‬
‫אז מספר הקווים נמוך ממספר ההשמות‬
‫הדרושות ועיברו ל‪5-‬‬ ‫• יותר קשה לחישוב במקרים של מכונות רבות‪,‬‬
‫‪ )5‬מציאת האיבר הלא מכוסה המינימלי‪ .‬נקרא לו ‪.K‬‬ ‫עלול להיות יותר יעיל מהיוריסטיקה‪.‬‬
‫‪ )1‬בניית טבלת‪ :‬כל האפשרויות של זוגות מיקומים‬
‫‪ )6‬החסרת ‪ K‬מכל איבר בלתי מכוסה‪.‬‬
‫(עמודות)‪ ,‬ומכונות (שורות)‪.‬‬
‫‪ )7‬הוספת ‪ K‬לכל איבר המכוסה פעמיים‪ .‬חזרה‬
‫‪ )2‬בתוך הטבלה נשים את המרחק המינימלי מבין‬
‫לשלב ‪3‬‬
‫שני המיקומים למכונה‪.‬‬
‫‪ )8‬תאים עם הערך ‪ 0‬הם שיבוץ בפועל (לשורות עם‬
‫נסכום עמודות וניקח את הסכום‬ ‫‪)3‬‬
‫יותר מ‪ 0-‬אחד נשבץ אחרי שורות אחרות שלהן‬
‫המינימלי‪.‬‬
‫יש ‪ 0‬אחד)‬
‫אם רוצים מיקסום‪ ,‬עושים הופכי לנתונים (לדוג' ‪ 2‬יהיה‬
‫חצי) לכל המספרים‪.‬‬
‫‪ .2‬תכנות בשלמים‬
‫משתני החלטה‪:‬‬
‫𝑗𝑖𝐶‪ -‬זמן ביצוע עבודה ‪ j‬אם תתבצע על מכונה ‪.i‬‬
‫𝑗𝑖𝑋‪ -‬האם מכונה ‪ i‬תבצע את עבודה ‪( .j‬בינארי)‬

‫‪2‬‬
‫עמודת ביקוש‪/‬תדירות‬ ‫•‬ ‫פונקציית מטרה‪:‬‬
‫𝑛‬ ‫𝑛‬
‫עלויות רכישה קבועות‬ ‫•‬
‫אורך חיי מכונה‬ ‫•‬ ‫𝑗𝑖𝑋 ∗ 𝑗𝑖𝐶 ∑ ∑ = 𝑍 𝑛𝑖𝑀‬
‫שלבים‪:‬‬ ‫‪𝑖=1 𝑗=1‬‬
‫‪ )1‬הכפלת הביקוש בעלויות (בטבלה)‬ ‫אילוצים‪:‬‬
‫𝑛‬
‫‪ )2‬היוון‬ ‫∑‬ ‫𝑚 ‪𝑋𝑖𝑗 = 1 ∀ 𝑖 = 1,2, … ,‬‬
‫• ‪ -i‬ריבית תקופתית‬ ‫‪𝑗=1‬‬
‫𝑚‬
‫• ‪ -n‬מספר תקופות‬ ‫∑‬ ‫𝑛 ‪𝑋𝑖𝑗 = 1 ∀𝑗 = 1,2, … ,‬‬
‫• ‪-P‬ערך נוכחי של עלות הקמה‬ ‫‪𝑖=1‬‬

‫• ‪-A‬גובה החזר תקופתי‬ ‫‪ .3‬בעיות השמה ריבועיות‬


‫𝑛)𝑖 ‪𝑖 ∗ (1 +‬‬ ‫• מטריצת מרחקים (‪ )D‬סימטרית (אנדקסים של‬
‫∗𝑃=𝐴‬ ‫מקומות‪)j,l :‬‬
‫‪(1 + 𝑖)𝑛 − 1‬‬
‫• מטריצת נסיעות (‪ )F‬לא בהכרח סימטרית‬
‫‪ )3‬הוספת ההיוון לטבלה לטבלה כשורה‬
‫‪ )4‬בחירת העמודה (האופציה) שסכומה מינימלי‪.‬‬ ‫(אנדקסים של מפעלים‪)i,k :‬‬
‫הערה‪ :‬אם נרצה להוסיף עוד מכונה זהה נעשה טבלת‬ ‫משתני החלטה‪:‬‬
‫חיסכון (ראה לעיל) ונבחר את החסכונית ביותר‬ ‫𝑗‪ -𝐶𝑖,‬עלות הקמת מפעל ‪ i‬במקום ‪( j‬עלות חד פעמית‪ ,‬לא‬
‫(כשעושים טבלת חיסכון‪ ,‬העלות הקבועה במינוס)‪.‬‬ ‫חייב להיות נתון‪ .‬אם לא נתון‪ ,‬בפונקציית המטרה כותבים‬
‫עד הפלוס בלבד)‬
‫פס ייצור ‪ -‬כמות מכונות לצורך ייצור מוצר‬ ‫𝑗‪ -𝑋𝑖,‬האם מפעל מוצא ‪ i‬ממוקם במקום ‪( .j‬בינארי)‬
‫‪ -P‬מספר מוצרים יומי‬ ‫𝑙‪ -𝑋𝑘,‬האם מפעל היעד ‪ k‬ממוקם במקום ‪( .l‬בינארי)‬
‫𝜂‪ -‬יעילות המכונה באחוזים‪( .‬תלוי במנוחה נדרשת‬ ‫𝑙‪ -𝑑𝑗,‬מרחק בין מיקום ‪ j‬למיקום ‪.l‬‬
‫ובכמות הפגומים)‬ ‫𝑘‪ -𝑓𝑖,‬כמות נסיעות ממפעל ‪ i‬למפעל ‪k‬‬
‫𝜏‪ -‬זמינות מכונה ביום (בשעות)‬ ‫פונקציית מטרה‬
‫‪ -t‬זמן לייצור יחידה (בשעות)‬
‫‪𝑡∗𝑃 +‬‬ ‫אילוצים‪:‬‬
‫⌈ = מספר מכונות‬ ‫לעגל למעלה ⌉‬ ‫לכל מכונה מיקום אחד 𝑛 ‪∑𝑛𝑗=1 𝑋𝑖,𝑗 = 1 ∀ 𝑖 = 1,‬‬
‫𝜂∗𝜏‬
‫פס ייצור‪ -‬מוצרים פגומים‬ ‫לכל מיקום מכונה אחת 𝑛 ‪∑𝑛𝑖=1 𝑋𝑖,𝑗 = 1 ∀ 𝑗 = 1,‬‬
‫𝐼𝑁‪-‬מספר יחידות שנכנסות למכונה‬ ‫𝑗 ‪𝑋𝑖,𝑗 ≥ 0 ∀𝑖,‬‬
‫𝑂𝑁‪-‬מספר יחידות שיוצאות מהמכונה‬ ‫יוריסטיקה‪:‬‬
‫‪ -S‬אחוז הפסולת‬ ‫• יש להקפיד לעשות החלפה בין שורות‪/‬עמודות‬
‫‪-𝑆 ′‬אחוז התקינים‬ ‫בצורה הנכונה‬
‫𝑂𝑁‬ ‫‪ )1‬סידור מטריצה אחת (‪ D‬או ‪ )F‬בסדר עולה ואת‬
‫= 𝑆 ‪𝑆′ = 1 −‬‬ ‫אחוז תקינים =‬
‫𝐼𝑁‬ ‫השניה בסדר יורד‬
‫‪𝑁𝑂 = 𝑁𝐼 ∗ (1 − 𝑆) = 𝑁𝐼 ∗ 𝑆 ′‬‬ ‫‪ )2‬הכפלה סקלרית בין המטריצות‪.‬‬
‫תיקון פגומים‪:‬‬ ‫‪ )3‬הסכום הכולל של ההכפלות היא העלות הכוללת‬
‫תיקון יחיד‪-‬‬ ‫בהינתן עלות‬
‫) ‪𝑁𝑂 = 𝑁𝐼 ∗ (1 − 𝑆1 ) + 𝑁𝐼 ∗ 𝑆1 ∗ (1 − 𝑆1 ) ∗ (1 − 𝑆2‬‬
‫‪ n‬תיקונים‪-‬‬
‫𝑛‬
‫∑ ∗ ) ‪𝑁𝑂 = 𝑁𝐼 ∗ (1 − 𝑆1‬‬ ‫𝑖)) ‪(𝑆1 ∗ (1 − 𝑆2‬‬
‫‪𝑖=0‬‬
‫אינסוף תיקונים‪-‬‬
‫) ‪𝑁𝐼 ∗ (1 − 𝑆1‬‬
‫= 𝑂𝑁‬
‫) ‪1 − 𝑆1 ∗ (1 − 𝑆2‬‬
‫]) ‪𝑁𝑂 ∗ [1 − 𝑆1 ∗ (1 − 𝑆2‬‬ ‫מיקום מכונה בהינתן עלויות הקמה כתלות במקום‬
‫= 𝐼𝑁‬ ‫נתון‪:‬‬
‫) ‪(1 − 𝑆1‬‬
‫‪ -𝐶1‬עלות ייצור פריט במכונה ‪1‬‬ ‫• לקוחות ומיקומים‬
‫‪ -𝐶2‬עלות טיפול פריט במכונה ‪2‬‬ ‫• טבלת עלויות שינוע‬
‫‪3‬‬
‫‪ )4‬בניית מטריצת עלויות‪ :‬על ידי הכפלה סקלרית‬ ‫העלויות קיימות גם כאשר המוצר פגום‬
‫של המטריצות לפי הנוסחה‪-‬‬ ‫עלות אינסוף תיקונים‪-‬‬
‫מטריצת עלויות = מטריצת נסיעות ∗ מטריצת מרחקים ∗ עלות‬ ‫) ‪𝑁𝐼 ∗ (𝐶1 + 𝐶2 ∗ 𝑆1‬‬
‫אם לא נתון אז העלות היא ‪1‬‬ ‫= 𝐶𝑇‬
‫) ‪1 − 𝑆1 ∗ (1 − 𝑆2‬‬
‫‪ )5‬נסכום את המטריצה‪.‬‬ ‫אחוז תקינים של מכונה ‪( 1‬ייצור) ומכונה ‪( 2‬תיקון) ‪-‬‬
‫אפשרויות ייעול‪:‬‬ ‫) ‪(1 − 𝑆1‬‬
‫‪ :1‬נחליף בין המכונות בעלות הקשר החזק ביותר‪( .‬בדוג'‬ ‫= ‪𝑆′‬‬
‫) ‪1 − 𝑆1 ∗ (1 − 𝑆2‬‬
‫שלנו נקבל את הקשרים ‪.)CE ,BC ,AD ,AC ,AB‬‬ ‫אחוז תקינים בין שתי מכונות (לדוג' מכונות ‪ 5‬ו ‪- )6‬‬
‫‪ :2‬סידור מחדש של כל המכונות‪ ,‬ניתן גם לסובב מכונות‪.‬‬ ‫‪𝑆 ′ = 𝑆5 ′ ∗ 𝑆6 ′‬‬
‫תכנון פריסה‪-‬תכנון פריסה מאפס‬ ‫סדר במישור‪-‬שיפור פריסה קיימת‬
‫נתונים שנקבל‪-‬‬ ‫הנחות ברירות מחדל‪:‬‬
‫• שטח הדרוש לכל מחלקה‪/‬מכונה (ניתן להמיר את‬ ‫‪ )1‬מרחק אוקלידי‬
‫השטחים לקטנים יותר אם יש מכנה משותף‬ ‫‪ )2‬נקודת גישה למכונה היא באמצע המכונה‬
‫לכולם)‪.‬‬ ‫נתונים‪ :‬נקבל טבלה עם המכונות הנדרשות לכל מוצר‪,‬‬
‫• נניח שישנם דרכי גישה שחוצים את המרחב‪.‬‬ ‫גודל אצווה‪ ,‬וביקוש (יכול לתת כטבלה בינארית)‬
‫• טבלת שטחים (ותאים אם צריך‪/‬נדרש)‪.‬‬
‫• טבלת נסיעות‪ -‬או על פי כמות נסיעות או על פי‬
‫קשר איכותי בין המחלקות‪.‬‬
‫יוריסטיקה‪:‬‬
‫‪ )1‬בחירת רמת קשר להגדרת חשיבות‪.‬‬
‫‪ )2‬הגרלת מחלקה ושיבוצה בקצה המרחב‪.‬‬
‫‪ )3‬בחירת מחלקה עם רמת קשר גבוהה ביותר‬
‫למחלקה הנוכחית ששובצה‪ ,‬כאשר הקשר‬
‫ביניהם שווה או גבוהה לרמת הקשר הנבחרת‬
‫בשלב ‪.1‬‬
‫‪ )4‬חזרה על שלב ‪ ,3‬כאשר כל פעם השיבוץ כעת‬
‫הוא ביחס למחלקה האחרונה ששובצה‪ .‬כאשר‬
‫תמו הקשרים החשובים חוזרים לשלב ‪.2‬‬
‫לאחר קבלת הפריסה נחשב עלויות‪:‬‬
‫חישוב עלות כוללת‪:‬‬
‫‪ )1‬מציאת נקודת גישה‪-‬‬ ‫שלבים‪:‬‬
‫ביקוש‬
‫חישוב מרכז במחלקה מלבנית‪:‬‬ ‫‪ )1‬נחשב מספר נסיעות=‬
‫גודל אצווה‬
‫‪𝑋2 − 𝑋1‬‬ ‫‪𝑌2 − 𝑌1‬‬
‫(‬ ‫‪+ 𝑋1 ,‬‬ ‫) ‪+ 𝑌1‬‬
‫‪2‬‬ ‫‪2‬‬ ‫‪ )2‬בניית מטריצת מרחקים (משולשת עליונה)‪:‬‬
‫חישוב מרכז במחלקה לא מלבנית‪:‬‬
‫מכונות בעמודות ובשורות‬
‫נפצל את המחלקה 'הלא מלבנית' למספר מלבנים‪.‬‬
‫( 𝑖𝑋‪-‬מרכז מלבן ‪.)i‬‬
‫𝑛‬
‫)מספר תאים במלבן( ∗ 𝑖𝑋 ‪∑𝑖=1‬‬
‫=𝑋‬
‫מספר תאים במחלקה‬
‫כנ"ל עושים ל‪.Y-‬‬
‫‪ )2‬חישוב מרחקים בין מכונות‪.‬‬
‫‪ )3‬הכפלה סקלרית של מטריצת המרחקים‬ ‫‪ )3‬בניית מטריצת נסיעות‬
‫במטריצת הנסיעות‪.‬‬ ‫עליונה)‪:‬‬ ‫(משולשת‬
‫‪ )4‬סכום של כל המכפלות‪.‬‬ ‫בעמודות‬ ‫מכונות‬
‫• במידה וניתן קשרים איכותיים בין המכונות הקשר‬ ‫כל‬ ‫סך‬ ‫ובשורות‪.‬‬
‫יהיה (בסיס יהיה נתון) –‬ ‫ממכונה‬ ‫הנסיעות‬
‫‪A‬‬ ‫‪E‬‬ ‫‪I‬‬ ‫‪O‬‬ ‫קשר ‪U‬‬ ‫למכונה (מכל המוצרים)‬
‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫חזקה ‪-‬‬
‫‪4‬‬
‫האילוץ השני – מחלקה לא תהיה על מחלקה אחרת‬ ‫איטרציות ‪( -‬ניסיון שינוי המיקומים לצורך הורדת עלויות)‪:‬‬
‫ייכתב בצורת שני אי‪-‬שוויונים (‪ -M‬מספר גדול מאוד)‬ ‫• נחליף בין מחלקות בגודל זהה‪ ,‬בטבלת מרחקים‬
‫𝑗𝐿 ‪𝐿𝑖 +‬‬ ‫רק נחליף בין שמות המחלקות שהחלפנו‪.‬‬
‫≥ 𝑗‪𝑋𝑖 − 𝑋𝑗 + 𝑀 ∗ 𝑍𝑖,‬‬ ‫𝑗 ≠ 𝑖∀ ‪+ 𝑑𝑖,𝑗 ,‬‬
‫‪2‬‬ ‫• נחליף בין מחלקות סמוכות‪ -‬נחזור לשלב ‪ 1‬של‬
‫𝑗𝐿 ‪𝐿𝑖 +‬‬ ‫חישוב עלות כוללת ונחשב מחדש הכל לפי צורך‬
‫≥ ) 𝑗‪𝑋𝑗 − 𝑋𝑖 + 𝑀 ∗ (1 − 𝑍𝑖,‬‬ ‫𝑗 ≠ 𝑖∀ ‪+ 𝑑𝑖,𝑗 ,‬‬
‫‪2‬‬ ‫בעיית המדף‬
‫‪+‬‬ ‫‪−‬‬
‫אילוצי קשר לכל ‪𝑋𝑖 − 𝑋𝑗 = 𝑋𝑖,𝑗 + 𝑋𝑖,𝑗 , ∀𝑖 ≠ 𝑗 :i,j‬‬ ‫הנחות ברירות מחדל‪:‬‬
‫𝑛𝑖𝑏 𝑗‪𝑋𝑖 > 0, 𝑍𝑖,‬‬ ‫אלוצי סימן‪:‬‬ ‫‪ )1‬המחלקות מסודרת בשורה‬
‫יוריסטיקה‪:‬‬ ‫‪ )2‬כל המחלקות מלבניות‬
‫‪ )1‬בניית מטריצה ‪ : 𝑓𝑖,𝑗 ′‬מכונה ‪( j‬עמודות)‪ ,‬מכונה ‪i‬‬ ‫‪ )3‬מיקומי כניסה ויציאה לכל מחלקה‬
‫(שורות)‪ .‬בתוך המטריצה לפי הנוסחה הבאה‬ ‫אילוצים‪:‬‬
‫𝑗𝐿 ‪𝐿𝑖 +‬‬ ‫‪ )1‬מחלקה לא תהיה על מחלקה אחרת‬
‫( ∗ 𝑗‪𝑓𝑖,𝑗 ′ = 𝑐𝑖,𝑗 ∗ 𝑓𝑖,‬‬ ‫) 𝑗‪+ 𝑑𝑖,‬‬ ‫‪ )2‬המחלקות יהיו בתוך השטח המוגדר להן‪.‬‬
‫‪2‬‬
‫משתני החלטה‪-‬‬
‫𝑖𝑋‪ -‬מחלקה ‪i‬‬
‫‪ - n‬מספר מחלקות (=מכונות)‬
‫𝑗‪ -𝑐𝑖,‬עלות העברת יחדית פריט ממחלקה ‪ i‬למחלקה ‪j‬‬
‫𝑗‪ -𝑑𝑖,‬מרחק מינימלי נדרש בין מחלקה ‪ i‬למחלקה ‪j‬‬
‫𝑗‪ -𝑓𝑖,‬נסיעות נדרשות ממחלקה ‪ i‬למחלקה ‪j‬‬
‫𝑖𝐿‪ -‬אורך מחלקה ‪i‬‬
‫‪ -H‬אורך מקסימלי של המדף‬
‫פונקציית מטרה‪-‬‬
‫𝑛‬ ‫𝑛‬

‫| 𝑗𝑋 ‪𝑚𝑖𝑛 ∑ ∑ 𝑐𝑖,𝑗 ∗ 𝑓𝑖,𝑗 ∗ |𝑋𝑖 −‬‬


‫𝑗≠𝑖‪𝑖=1 𝑗=1,‬‬
‫אילוצים‪:‬‬
‫• המחלקות יהיו בתוך השטח המוגדר להן‬
‫(לדוג' מ‪ 1‬ל‪ 2‬במטריצת '‪ F‬עם עלות של ‪ 2‬נקבל‪:‬‬ ‫𝑖𝐿‬ ‫𝑖𝐿‬
‫‪≤ 𝑋𝑖 ≤ 𝐻 −‬‬ ‫𝑖∀ ‪,‬‬
‫‪(2 ∗ 17 ∗ (0.5 ∗ (15 + 10) + 3) = 527‬‬ ‫‪2‬‬ ‫‪2‬‬
‫‪ )2‬נהפוך את המטריצה למשולשת עליונה על ידי‬ ‫• מחלקה לא תהיה על מחלקה אחרת‬
‫חיבור חילופי ‪( i,j‬לדוג' חיבור תא ‪ 1,2‬עם ‪)2,1‬‬ ‫𝑗𝐿 ‪𝐿𝑖 +‬‬
‫≥ | 𝑗𝑋 ‪|𝑋𝑖 −‬‬ ‫𝑗 ≠ 𝑖∀ ‪+ 𝑑𝑖,𝑗 ,‬‬
‫‪ )3‬נאתר את הערך המקסימלי במטריצה ונשבץ יחד‬ ‫‪2‬‬
‫את המכונות בחיתוך התא‪.‬‬ ‫המרת פונקציות ערך מוחלט‬
‫‪ )4‬לאחר השיבוץ‪ ,‬נשנה ערך בתא זה למינוס‬ ‫𝑋‬ ‫‪−‬‬ ‫𝑋‬ ‫𝑗𝑋 > 𝑖𝑋‬
‫𝑖 { = ‪𝑋𝑖,𝑗 +‬‬ ‫𝑗‬
‫‪,‬‬ ‫}‬
‫אינסוף‪.‬‬ ‫‪0‬‬ ‫𝑒𝑠𝑙𝑒‬
‫‪ )5‬נמחק את השורות והעמודות של מכונה שחסומה‬ ‫𝑖𝑋 ‪𝑋 −‬‬ ‫𝑖𝑋 > 𝑗𝑋‬
‫𝑗 { = ‪𝑋𝑖,𝑗 −‬‬ ‫‪,‬‬ ‫}‬
‫משני הצדדים שלה‪.‬‬ ‫‪0‬‬ ‫𝑒𝑠𝑙𝑒‬
‫‪1‬‬ ‫𝑖𝑋 > 𝑗𝑋‬
‫‪ )6‬חזרה משלב ‪ 3‬עד שיבוץ כל המכונות‪.‬‬ ‫‪𝑍𝑖,𝑗 = { ,‬‬ ‫}‬
‫‪0‬‬ ‫𝑒𝑠𝑙𝑒‬
‫כל אלגוריתמי חלוקת לקבוצות‪ -‬ההנחה היא‬ ‫‪|𝑋𝑖 − 𝑋𝑗 | = 𝑋𝑖,𝑗 + + 𝑋𝑖,𝑗 −‬‬ ‫ולכן‪:‬‬
‫שהמכונות אינן זהות‬
‫חלוקת לקבוצות אלגוריתם ‪ROC‬‬
‫ניסוח ללא שימוש בערך מוחלט‬
‫• כל מכונה ממוקמת רק בקבוצה אחת‬ ‫פונקציית המטרה‬
‫• יש תלות למצב ההתחלתי‬ ‫𝑛‬ ‫𝑛‬
‫‪ )1‬הוספת חזקת 𝑛‪ 2‬מעל העמודות (מימין לשמאל)‬ ‫) ‪𝑚𝑖𝑛 ∑ ∑ 𝑐𝑖,𝑗 ∗ 𝑓𝑖,𝑗 ∗ (𝑋𝑖,𝑗 + + 𝑋𝑖,𝑗 −‬‬
‫‪ )2‬הכפלה סקאלרית בין שורת המוצר לבין שורת‬ ‫𝑗≠𝑖‪𝑖=1 𝑗=1,‬‬
‫החזקות שהוספנו בסעיף ‪.1‬‬ ‫האילוץ הראשון ‪ -‬ללא שינוי‬

‫‪5‬‬
‫נתונה טבלה של מכונות (עמודות) ומוצרים (שורות)‪.‬‬ ‫‪ )3‬מיון השורות מהגדול לקטן‪.‬‬
‫הערכים בתוך הטבלה הם האם יש קשר בין המכונה‬
‫והמוצר (בינארי)‪.‬‬
‫‪ )1‬בחירת שורה אקראית‪.‬‬
‫‪ )2‬מיקום כל שאר השורות מעל‪/‬מתחת לשורה‬
‫האקראית‪ .‬בנוסף צריך להוסיף שורה של אפסים‬
‫מעל ומתחת לזוג השורות‪.‬‬ ‫‪ )4‬חוזרים‬
‫‪ )3‬חישוב האנרגיה לפי הנוסחה‬ ‫על‬
‫𝑚 ‪𝑖+1‬‬
‫שלבים‬
‫) 𝑗‪∑ ∑ 𝑎𝑖,𝑗 ∗ (𝑎𝑖−1,𝑗 + 𝑎𝑖+1,‬‬ ‫‪1-3‬‬
‫‪𝑖=1 𝑗=1‬‬ ‫לעמודות‬
‫‪ )4‬חיבור הצמד בעל "האנרגיה" החזקה ביותר‪.‬‬ ‫(מלמטה‬
‫‪ )5‬חוזרים על השלבים‪ ,‬בשלבים הבאים נמקם את‬
‫מלמעלה)‪.‬‬
‫שאר השורות מעל‪/‬מתחת‪/‬בתוך הצמד (בדיקה‬
‫‪ )5‬חוזרים על כל השלבים עד שאין שינוי‪.‬‬
‫בכל המיקומים האפשריים)‪.‬‬
‫חלוקה לקבוצות אלגוריתם ‪MTV/CR‬‬
‫‪ )6‬נמשיך עד שיבוץ כל השורות‪.‬‬
‫‪ )7‬ביצוע אותו תהליך על העמודות‪ .‬הוספת עמודה‬ ‫• אפשרי שמכונה תהיה במספר קבוצות‪.‬‬
‫של אפסים נעשית מימין ומשמאל‪.‬‬ ‫‪ )1‬בניית מטריצת קשרים בין המכונות‪ .‬השורות‬
‫חלוקה לקבוצות אלגוריתם ‪SC‬‬ ‫והעמודות הם המכונות‪ .‬הערכים בתוך המטריצה‬
‫יהיו כמות המוצרים שיש בהם שימוש בשתי‬
‫• מודד דמיון בין זוגות מכונות באמצעות מדד‬
‫המכונות (יחד)‪( .‬מטריצה משולשת עליונה)‪.‬‬
‫דמיון‪.‬‬
‫‪ )2‬הגדרת ממד יעילות לקבוצה (ברירת מחדל ‪.)0.5‬‬
‫• נתונה טבלה של מכונות (עמודות) ומוצרים‬
‫‪ )3‬מציאת הקשר החזק ביותר וקביעת ערך ה‪RC-‬‬
‫(שורות)‪ .‬הערכים בתוך הטבלה הם האם יש‬
‫קשר בין המכונה והמוצר (בינארי)‪.‬‬ ‫לפיו‪ – RC .‬עוצמת הקשר‪.‬‬
‫‪ )1‬נחשב מדד הדמיון 𝑗𝑖𝑆 בין כל זוג אפשרי‪ ,‬ניקח‬ ‫הקמת קבוצה ראשונה לפי חיתוכי התא עם ערך‬
‫ה‪ RC-‬הנוכחי‪( .‬עדיפות בתחילת התהליך לקחת‬
‫את התוצאה הגדולה ביותר ונשבץ את שתי‬
‫קשרים שלא קשורים בכלל לקבוצה הישנה ולכן‬
‫המכונות לקבוצה‪.‬‬
‫נפתח קבוצה חדשה)‬
‫• 𝑖𝑘𝑎=‪ 1‬אם נדרש לעבד פריט ‪ k‬במכונה ‪ ,i‬אחרת‬
‫‪ )4‬מציאת כל הקשרים עם ערך ‪ RC‬הנוכחי וצירוף‬
‫‪.0‬‬
‫של המכונות לקבוצות במקרה ש‪-‬‬
‫• 𝑖𝑘𝑎 ‪ - 𝑘=1‬סכום הפריטים שמכונה ‪ i‬משתתפת‬
‫∑‬ ‫𝑛‬
‫𝑉𝑇𝑀 ≥ 𝑅𝐶‬
‫בייצור שלהם‪.‬‬ ‫כאשר‪-‬‬
‫𝑗𝑘𝑎 ∗ 𝑖𝑘𝑎 ‪∑𝑛𝑘=1‬‬
‫𝑛 = 𝑗𝑖𝑆‬ ‫כמות קשרים בין משתנה לאיבר שבקבוצה ∑‬
‫𝑗𝑘𝑎 ∗ 𝑖𝑘𝑎 ‪∑𝑘=1 𝑎𝑘𝑖 + 𝑎𝑘𝑗 −‬‬ ‫= 𝑅𝐶‬
‫מכונות מספר בקבוצה‬
‫‪ )2‬ניצור קבוצה חדשה שתקבל ערך "‪ "1‬בפריטים‬
‫שלפחות אחת מהמכונות בקבוצה מייצרות אותו‬ ‫מדד יעילות ∗ 𝐶𝑅 = 𝑉𝑇𝑀‬
‫פריט (‪.)OR‬‬ ‫• במידה ובסוף בדיקת הצירוף שתי המכונות לא‬
‫נכללו באף קבוצה או שאינן נמצאות באותה‬
‫קבוצה‪ ,‬יש לפתוח קבוצה חדשה‪.‬‬
‫‪ )3‬נחשב את מדד הדמיון שוב והפעם מול הקבוצה‬ ‫• אם מכונה כבר נמצאת בקבוצה אין צורך לבדוק‬
‫שנוצרה‪ .‬איחוד המכונות‪/‬הקבוצות על בסיס‬ ‫את כניסתה לקבוצה הנ"ל‪.‬‬
‫הדמיון הגבוה ביותר‪.‬‬ ‫• מכונה יכולה להיכנס לקבוצה גם בלי שמכונה‬
‫‪ )4‬חזרה על הפעולה עד שיבוץ כל המכונות לקבוצה‬ ‫הקשורה אליה‪ ,‬במקרה זה‪ ,‬יש לבדוק האם צריך‬
‫אחת‪.‬‬ ‫לפתוח קבוצה חדשה‬
‫‪ )5‬עשיית דיאגרמה‪.‬‬ ‫‪ )5‬נוריד את ערך ה‪ RC-‬באחד ונחזור לשלב ‪4‬‬
‫‪ )6‬מסתיים כאשר כל הקשרים שובצו‪.‬‬
‫שים לב 𝑅𝐶 ≠ 𝐶𝑅‬
‫חלוקה לקבוצות אלגוריתם ‪BE‬‬
‫• אין תלות למצב ההתחלתי‪.‬‬
‫‪6‬‬

You might also like