Professional Documents
Culture Documents
איך
מקרים מיוחדים שלבים (אלגוריתם) נושאים
מזהים?/דגשים
3מרכיבים:
משתנה החלטה .1 תכנות
תחום פיזיבילי -סט הנקודות שמקיימות את האילוץ אילוצים .2 שאלה מילולית ליניארי
פונקציית מטרה .3
מטריצת הווקטורים של המשתנים B משתנה החלטה משתנה סרק RHS סימפלקס
שבבסיס אשר לוקחים מסט האילוצים. z
הופכית של ( .Bתמיד תהיה מתחת −1
−1
B ⋅A±C C B⋅B =Y
−1
משופר
למשתני הסרק אבל לא בשורת )Z B (המקדמים של (המקדמים של Y⋅b Revised
משתני ההחלטה משתני הסרק (ערך של )Z
מטריצת הווקטורים של משתני ההחלטה
אשר לוקחים מסט האילוצים.
A
בשורת )Z בשורת )Z
simplex
מטריצת הווקטורים של משתני ההחלטה C בסיס −1
משורת פונקציית המטרה. −1 −1 B ⋅b
המקדמים של המשתנים שנמצאים B ⋅A B (ערך של משתני
CB הבסיס)
בבסיס.
ווקטור הערכים של האילוצים b
משתני הצל( .תמיד יהיה מתחת למשתני Y
הסרק בשורת )Z
.1חישוב ערכי המשתנים הבסיסיים מחדש. שלבי עבודה: שינוי ערך של
.2אם כל הערכים חיוביים אזי הפתרון עדיין אופטימלי ואז נחשב את ערך Z .1נזהה איפה שינו לנו בבעיית תכנון לינארית המקורית שלנו. אילוצים
מחדש. .2נזהה איפה זה משפיע בטבלה. שינוי ערך משאב
הערה :אם קיבלנו 0אזי יש פתרון מנוון. .3ננסה להבין לפי מה שביקשו מאתנו את מה נצטרך לבדוק (איזה תא שינוי בb -
.1נחשב את המקדמים בשורת Zשל משתני ההחלטה. בטבלה.
שינוי מקדם של
.2אם קיבלנו מס' חיובי בסיס הפתרון לא משתנה. משתנה החלטה משתנה סרק RHS משתנה החלטה בסט
.3אם קיבלנו שלילי אזי הבסיס משתנה (אם מבקשים להמשיך אז נעשה
−1 −1 האילוצים
סימפלקס רגיל).
B ⋅A±C C B⋅B =Y שינוי בA-
הערה :אם קיבלנו 0על משתנה לא בסיסי אז יש ריבוי פתרונות.
.1אם המקדם הוא של משתנה בסיסי נחשב את המקדמים בשירת Zשל כל z (המקדמים של (המקדמים של Y⋅b
משתני ההחלטה משתני הסרק (ערך של )Z
המשתנים הלא בסיסיים אם המקדם הוא של משתנה לא בסיסי נחשב את
המקדמים של משתני ההחלטה בשורת .Z בשורת )Z בשורת )Z
שינוי מקדם של
.2אם יצא חיובי אזי אנחנו נשארים עם אותו בסיס והפתרון לא משתנה. −1
.3אם יצא שלילי אזי הבסיס משתנה (אם מבקשים להמשיך אזי נעשה −1 −1
B ⋅b משתנה החלטה
בפונקציית מטרה ניתוח רשתות
סימפלקס רגיל). בסיס B ⋅A (ערך של
משתני
B
הערה :אם קיבלנו 0על משתנה לא בסיסי אזי יש ריבוי פתרונות.
הבסיס)
.1בודקים אם הפתרון האופטימלי מקיים את האילוץ .אם כן אזי האילוץ לא שינה כלום.
.2אם לא:
א .הופכים את האילוץ לקטן שווה (ע"י הכפלה ב.)-1-
ב.מוסיפים משתנה סרק לאילוץ. הוספת אילוץ
ג .נוסיף את משתנה סרק לבסיס הסימפלקס (הבסיס גדל)וגם נוסיף אותו כמשתנה (בשירה העליונה)
ד.נסדר את טבלת הסימפלקס שתהיה חוקית (יהיה משתנה בסיסי שלא כל העמודה שלו 0חוץ מהמשתנה ש PIVOT -שאמור להיות .)1
ה .הערך של המשתנה סרק החדש יהיה שלילי ( )RHSולכן נשתמש בסימפלקס דואלי.
.1נחשב את המקדם של אותו משתנה בשורת . Z
.2אם המקדם חיובי אזי בסיס הפתרון לא משתנה. הוספת משתנה חדש
.3אם המקדם שלילי אזי בסיס הפתרון משתנה .נעשה טבלה חדשה ששם יהיה את אותו מקדם ואז נכניס אותו לבסיס.
המודל ההונגרי:
.1נוודא שאנחנו בבעיית . MINאם לא נכפיל כל תא ב )-1( -ונוסיף לכל תא את התא עם הערך הקטן ביותר( .שימו לב שמוסיפים אותו בערך מוחלט). המטרה היא להתאים
.2בכל שורה נמצא את המס' הקטן ביותר ונפחית אותו מכל השורה. משאבים למשימות .כל
.3בהמשך לשלב הקודם ,בכל עמודה נמצא את המס' הקטן ביותר ונפחית אותו מכל העמודה. משאב למשימה אחת וכל
. 4מעבירים מספר קווים אופקיים או אנכיים כך שהמטרה היא לכסות את כל האפסים בטבלה (שימו לב שמס' הקווים חייב להיות הכי מינימלי שיש). בעיות השמה
משימה למשאב אחד-
.5אם מספר הקווים שווה למימד המטריצה אז עוברים לשלב .7אם לא אז עוברים לשלב .6 הכל במטרה למזער
. 6מבין המשבצות שאינן מכוסות בקווים בוחרים את המס' הקטן ביותר ומפחיתים אותו מכל המס' הלא מכוסים .בתא שנחתך ע"י הקו האופקי והאנך עלויות.
נוסיף את הערך הזה (הערך שמצאנו שהוא הקטן ביותר מבין הלא מכוסים .כל שאר התאים יישארו אותו דבר ,נחזור מפה ל.4 -
.7מבצעים השמה כאשר היא תבוצע בתאים בהם 0בלבד .נחפש תחילה שיבוצים שאין אלטרנטיבה (שורה שיש בה 0אחד).
מציאת פתרון אופטימלי לפתרון ראשוני מציאת פתרון ראשוני בעיות תובלה
בעיית MINבלבד
שיטת הכופלים צפון מערב ()NW
.1להציב כמות מקסימלית אפשרית לבדוק האם
במשבצת שמאלית עליונה ולעדכן היצע=ביקוש .במידה
U V
.1נרשום מעל כל עמודה jוליד כל שורה . i
היצע/ביקוש.
.2למחוק שורה (או עמודה)
ולא להוסיף
שורה/עמודה
.2מאפסים את U/Vבעל המשתנים הרבים ביותר בשורה/עמודה שלו. שהתרוקנה .אם שתיהן התרוקנו פיקטיביים.
למחוק שרירותית. VOGELמקרב יותר
V U .3מחשבים עבור כל המשתנים הבסיסים C =U i +V j
ijומוצאים את כל . j , i
.3להמשיך באותו אופן עם משבצת לפתרון אופטימלי אך
שמאלית עליונה(לאחר מעבר הוא גם ארוך יותר
.4עבור משתנים לא בסיסיים מחשבים ) C =C p −(U i +V j שורה/עמודה)
. ij .4לעצור כאשר נותרה שורה או לא לשכוח לחשב T.C
עמודה אחרונה. (עלות כוללת)
C
ijהשלילי ביותר .אם אין שלילי זהו הפתרון האופטימלי. .5בוחרים משתנה נכנס לבסיס
שיטת הקנסות של VOGEL בסוף התרגיל
.1מחפשים 2עלויות מינימאליות
.6אם לא :יוצרים מעגל סגול (שמתחיל ונגמר במשתנה הנכנס) כשהפניות שלו יהיו במשתננים בסיסים בכל שורה/עמודה וההפרש בינהם זה חשוב לזכור:
בלבד (לא חובה לפנות/לעבור בכל המשתנים הביסיסיים). הקנס. בכל שלב צריכים
המשתנה הנכנס מסומן ב ( )+ובל פניה שמים ( )-או ( )+לסירוגים (סימן מתחלף). .2זהה שורה/עמודה עם הקנס
.7מבין כל אלו שקיבלו ( )-התא עם הכמות הכי קטנה הוא המשתנה היוצא .דגש -במידה ויש יותר מתא המקסימלי. להיות n+m−1
אחד עם כמות מינימאלית המשתנה היוצא יהיה זה העלות הגבוה ביותר. .3שים במשבצת בעלות MINאת משתנים (משבצות
.8רושמים את המשתנה היוצא (כמות) בתא הריק של המשתנה הנכנס ובתא המשתנה היוצא לא רושמים הכמות המקסימאלית .אם יש 2 מלאות)
דבר. אופציות תבחר שרירותית.
.4מחק שורה/עמודה שהתרוקנה.
.9מעתיקים תאים בסיסיים בהם המעגל לא עבר ,או רק עבר ולא פנה כמו שהם. .5אם שתיהן התרוקנו מחק
.10מוסיפים את הערך (כמות) של המשתנה היוצא לכל התאים שסומנו ה ( )+ומחסירים אותו מכל תא שירותית .זה שמתרוקן לא מחושב
שסומנו ב(.)- בחישוב קנסות עתידי ,המשך עד
S
בבנייה ראשונית של סימפלקס גודל הבסיס יהיה כגודל האילוצים.
מקדמים של המשתנים שבסיס בשורת Zחייבים להיות .0
סימפלקס
יוני
מודולרית