פתור את הסימפלקס בשיטת zlp הבאה. שירות לפתרון בעיות תכנות ליניאריות. פתרון בעיית הסימפלקס בשיטה

נשקלת דוגמה לפתרון הבעיה בשיטת הסימפלקס, וכן דוגמה לפתרון הבעיה הכפולה.

תוֹכֶן

המשימה

ליישום של שלוש קבוצות של סחורות, למפעל מסחרי יש שלושה סוגים של משאבים חומריים וממוניים מוגבלים בסכום של b 1 = 240, b 2 = 200, b 3 = 160 יחידות. במקביל, למכירה של קבוצה אחת של סחורות תמורת 1,000 רובל. מחזור, משאב מהסוג הראשון נצרך בכמות של 11 = 2 יחידות, משאב מהסוג השני בכמות של 21 = 4 יחידות, משאב מהסוג השלישי בכמות של 31 = 4 יחידות. למכירה של 2 ו -3 קבוצות של סחורות עבור 1,000 רובל. המחזור מושקע, בהתאמה, המשאב מהסוג הראשון בסכום של 12 = 3, a 13 = 6 יחידות, המשאב מהסוג השני בסכום של 22 = 2, a 23 = 4 יחידות, המשאב מהסוג השלישי בכמות של 32 = 6, a 33 = 8 יחידות. רווח ממכירת שלוש קבוצות סחורות תמורת אלף רובל. המחזור הוא, בהתאמה, c 1 \u003d 4, c 2 \u003d 5, c 3 \u003d 4 (אלף רובל). קבע את הנפח המתוכנן ומבנה מחזור המסחר כך שהרווח של מפעל המסחר יהיה מרבי.

לבעיה הישירה של תכנון מחזור סחורות, שיטת סימפלקס פתירה, להלחין בעיה כפולהתכנות לינארי.
להתקין מצמידים זוגות של משתניםבעיות ישירות וכפולות.
לפי צמדי משתנים מצומדים, מפתרון הבעיה הישירה, מקבלים פתרון בעיות כפול, שבה הערכת משאביםהוצאה על מכירת סחורות.

פתרון בעיית הסימפלקס בשיטה

תן x 1, x 2, x 3 - מספר הסחורות שנמכרו, באלף רובל, 1, 2, 3 קבוצות, בהתאמה. אז למודל המתמטי של הבעיה יש את הצורה:

F = 4 x 1 + 5 x 2 + 4 x 3 ->מקסימום

0)))(~)" title="(!LANG:delim(lbrace)(matrix(4)(1)((2x_1 + 3x_2 + 6x_3= 0)))(~)">!}

אנחנו פותרים את הסימפלקס בשיטה.

אנו מציגים משתנים נוספים x 4 ≥ 0, x 5 ≥ 0, x 6 ≥ 0 כדי להמיר את אי השוויון לשוויון.

כבסיס, אנו לוקחים x 4 \u003d 240; x5 = 200; x6 = 160.

נתונים מוכנסים שולחן סימפלקס

טבלה פשוטה מספר 1

פונקציית יעד:

0 240 + 0 200 + 0 160 = 0

אנו מחשבים את הציונים לפי הנוסחה:

Δ 1 \u003d 0 2 + 0 4 + 0 4 - 4 \u003d - 4
Δ 2 \u003d 0 3 + 0 2 + 0 6 - 5 \u003d - 5
Δ 3 \u003d 0 6 + 0 4 + 0 8 - 4 \u003d - 4
Δ 4 \u003d 0 1 + 0 0 + 0 0 - 0 \u003d 0
Δ 5 \u003d 0 0 + 0 1 + 0 0 - 0 \u003d 0
Δ 6 \u003d 0 0 + 0 0 + 0 1 - 0 \u003d 0

מכיוון שיש אומדנים שליליים, התוכנית אינה מיטבית. הדירוג הנמוך ביותר:

אנו מכניסים את המשתנה x 2 לבסיס.

אנו מגדירים משתנה שיוצא מהבסיס. לשם כך, נמצא את היחס הלא-שלילי הקטן ביותר עבור העמודה x 2.

= 26.667

הלא-שלילי הקטן ביותר: Q 3 = 26.667. אנו גוזרים את המשתנה x 6 מהבסיס

מחלקים שורה 3 ב-6.
מהשורה הראשונה יש להחסיר את השורה השלישית כפול 3
מהשורה השנייה יש להחסיר את השורה השלישית כפול 2


אנו מחשבים:

אנחנו מקבלים טבלה חדשה:

טבלה סימפלקס מספר 2

פונקציית יעד:

0 160 + 0 440/3 + 5 80/3 = 400/3

אנו מחשבים את הציונים לפי הנוסחה:

Δ 1 \u003d 0 0 + 0 8/3 + 5 2/3 - 4 \u003d - 2/3
Δ 2 \u003d 0 0 + 0 0 + 5 1 - 5 \u003d 0
Δ 3 \u003d 0 2 + 0 4/3 + 5 4/3 - 4 \u003d 8/3
Δ 4 \u003d 0 1 + 0 0 + 5 0 - 0 \u003d 0
Δ 5 \u003d 0 0 + 0 1 + 5 0 - 0 \u003d 0
Δ 6 \u003d 0 (-1) / 2 + 0 (-1) / 3 + 5 1/6 - 0 \u003d 5/6

מכיוון שיש אומדן שלילי Δ 1 = - 2/3, התוכנית אינה אופטימלית.

אנו מכניסים את המשתנה x 1 לבסיס.

אנו מגדירים משתנה שיוצא מהבסיס. לשם כך, אנו מוצאים את היחס הלא-שלילי הקטן ביותר עבור עמודה x 1.

הלא-שלילי הקטן ביותר: Q 3 \u003d 40. אנו גוזרים את המשתנה x 2 מהבסיס

מחלקים את השורה השלישית ב-2/3.
מהשורה השנייה יש להחסיר את השורה השלישית כפול 8/3


אנו מחשבים:

אנחנו מקבלים טבלה חדשה:

טבלה פשוטה מספר 3

פונקציית יעד:

0 160 + 0 40 + 4 40 = 160

אנו מחשבים את הציונים לפי הנוסחה:

Δ 1 \u003d 0 0 + 0 0 + 4 1 - 4 \u003d 0
Δ 2 \u003d 0 0 + 0 (-4) + 4 3/2 - 5 \u003d 1
Δ 3 \u003d 0 2 + 0 (-4) + 4 2 - 4 \u003d 4
Δ 4 \u003d 0 1 + 0 0 + 4 0 - 0 \u003d 0
Δ 5 \u003d 0 0 + 0 1 + 4 0 - 0 \u003d 0
Δ 6 \u003d 0 (-1) / 2 + 0 (-1) + 4 1/4 - 0 \u003d 1

מכיוון שאין אומדנים שליליים, התוכנית היא אופטימלית.

פתרון הבעיה:

x 1 = 40; x2 = 0; x 3 \u003d 0; x 4 = 160; x5 = 40; x6 = 0; F max = 160

כלומר, יש צורך למכור סחורה מהסוג הראשון בסכום של 40 אלף רובל. אין צורך למכור סחורות מהסוג השני והשלישי. במקרה זה, הרווח המרבי יהיה F max = 160 אלף רובל.

פתרון הבעיה הכפולה

הבעיה הכפולה נראית כך:

Z = 240 y 1 + 200 y 2 + 160 y 3 ->דקה

Title="(!LANG:delim(lbrace)(matrix(4)(1)((2y_1 + 4y_2 + 4y_3>=4) (3y_1 + 2y_2 + 6y_3>=5) (6y_1 + 4y_2 + 8y_3>=4) (y_1, y_2, y_3>= 0)))(~)">!}

אנו מציגים משתנים נוספים y 4 ≥ 0, y 5 ≥ 0, y 6 ≥ 0 כדי להמיר את אי השוויון לשוויון.

לזוגות מצומדים של משתנים של הבעיות הישירות והדואליות יש את הצורה:

מטבלת הסימפלקס האחרונה מס' 3 של הבעיה הישירה, אנו מוצאים את הפתרון של הבעיה הכפולה:

Z min = F max = 160;
y 1 \u003d Δ 4 \u003d 0; y 2 \u003d Δ 5 \u003d 0; y 3 \u003d Δ 6 \u003d 1; y 4 \u003d Δ 1 \u003d 0; y 5 \u003d Δ 2 \u003d 1; y 6 \u003d Δ 3 \u003d 4;

Y1=0; y2 = 0; y 3 = 1; Z min = 160;

שיטה פשוטה- זוהי שיטה לספירה מסודרת של תוכניות ייחוס (הסדר מובטח על ידי שינוי מונוטוני בערך הפונקציה האובייקטיבית במהלך המעבר לתכנית הבאה). במקרה זה, יש צורך לשמור על העיקרון: כל שלב הבא צריך לשפר או, במקרים קיצוניים, לא להחמיר את הערך של הפונקציה האובייקטיבית.

כדי לפתור את ה-LLP שיטת סימפלקסהוא מצטמצם לצורה קנונית, כלומר. מהגבלות - אי שוויון יש צורך לעשות הגבלות - שוויון. לשם כך, כל אילוץ מתווסף עם אי-שלילי נוסף משתנה מאזניעם הסימן "+" אם סימן אי השוויון הוא "£", ועם הסימן "-" אם סימן אי השוויון הוא "³".

בפונקציית המטרה, משתנים נוספים אלו נכנסים עם אפס מקדמים, כלומר. ערך פונקציית היעד לא ישתנה. כל משתנה שאינו כפוף לתנאי אי-שליליות יכול להיות מיוצג כהבדל של שני משתנים לא-שליליים: .

אם אילוצי המשימה משקפים את הנוכחות והצריכה של משאבים, אזי הערך המספרי של המשתנה הנוסף בתוכנית המשימה, הכתוב בצורה קנונית, שווה לכמות המשאב שלא נעשה בו שימוש.

כדי לפתור את הבעיה בשיטת הסימפלקס, נשתמש טבלאות סימפלקס מקוצרות של מערכת משוואות ליניאריות ושיטת חיסול ג'ורדן שונה.

1. אנחנו מכינים את התוכנית הבסיסית הראשונה

המשימה נשארת זהה. הבה נביא את הצורה הסטנדרטית של מערכת אי השוויון (1) לצורה הקנונית של מערכת המשוואות על ידי הכנסת משתני איזון נוספים איקס 3 , איקס 4 , איקס 5 ,איקס 6 .

במובן הכלכלי, ערכי משתנים נוספים איקס 3 , איקס 4 , איקס 5 לקבוע את יתרת חומרי הגלם לאחר מכירת מוצרים.

למטריצה ​​של מערכת המשוואות המתקבלת יש את הצורה:

אפשר לראות את זה במטריצה אהמינור הבסיסי של הסדר הרביעי הוא הקובע, המורכב ממקדמי יחידות למשתנים נוספים איקס 3 , איקס 4 , איקס 5 ,איקס 6, מכיוון שהוא אינו אפס ושווה ל- 1. פירוש הדבר שוקטורי העמודות עבור משתנים אלו הם בלתי תלויים ליניארית, כלומר. טופס בָּסִיס, והמשתנים המתאימים איקס 3 , איקס 4 , איקס 5 ,איקס 6 הם בסיסי(בסיסי). משתנים איקס 1 , איקס 2 ייקרא חינם(קַטִין).

אם משתנים חופשיים איקס 1 ו איקס 2 שואלים משמעויות שונות, אם כן, בפתרון המערכת ביחס למשתנים הבסיסיים, נקבל קבוצה אינסופית של פתרונות מסוימים. אם רק ערכים אפס מוגדרים למשתנים חופשיים, אז מתוך קבוצה אינסופית של פתרונות מסוימים, פתרונות בסיסיים- תוכניות בסיסיות.

כדי לברר האם המשתנים יכולים להיות בסיסיים, יש צורך לחשב את הקובע המורכב מהמקדמים של משתנים אלו. אם הקובע הזה אינו שווה לאפס, משתנים אלה יכולים להיות בסיסיים.


מספר הפתרונות הבסיסיים והמספר המקביל של קבוצות של משתנים בסיסיים יכולים להיות לא יותר מ , שבו נהוא המספר הכולל של המשתנים, רהוא מספר המשתנים הבסיסיים, רMנ.

למשימה שלנו ר = 4; נ= 6. לאחר מכן , כלומר. אפשריות 15 קבוצות של 4 משתנים בסיסיים (או 15 פתרונות בסיסיים).

הבה נפתור את מערכת המשוואות ביחס למשתנים הבסיסיים איקס 3 , איקס 4 , איקס 5 ,איקס 6:

בהנחה שהמשתנים החופשיים איקס 1 = 0, איקס 2 = 0, נקבל את הערכים של המשתנים הבסיסיים: איקס 3 = 312; איקס 4 = 15; איקס 5 = 24;איקס 6 = -10, כלומר. הפתרון הבסיסי יהיה = (0; 0; 312; 15; 24; -10).

הפתרון הבסיסי הזה הוא לא מקובל, כי איקס 6 = –10 ≤ 0, ולפי תנאי האילוץ איקס 6 ≥ 0. לכן, במקום המשתנה איקס 6 כבסיס, אתה צריך לקחת משתנה נוסף מבין החופשיים איקס 1 או איקס 2 .

נבצע את הפתרון הנוסף באמצעות טבלאות סימפלקס מקוצרות, ונמלא את שורות הטבלה הראשונה במקדמי המערכת באופן הבא (טבלה 1):

שולחן 1

ו- קוראים למחרוזת אינדקס. הוא מלא במקדמי פונקציה אובייקטיבית שנלקחו עם סימנים מנוגדים, שכן ניתן לייצג את משוואת הפונקציה כ ו = 0 – (– 4איקס 1 – 3איקס 2).

בטור החברים החופשיים ב אנייש אלמנט שלילי ב 4 = -10, כלומר. הפתרון של המערכת אינו חוקי. כדי לקבל פתרון תקף (תוכנית בסיס), האלמנט ב 4 חייב להיות לא שלילי.

בחר איקס 6 - שורה עם חבר חופשי שלילי. שורה זו מכילה אלמנטים שליליים. בחר כל אחד מהם, למשל, "-1" ב איקסעמודה 1, ו איקס 1 - עמודה קבל כ עמודת ההרשאה(זה יקבע שהמשתנה איקס 1 יעבור מחינמי לבסיסי).

אנו חולקים חברים בחינם ב אניעל המרכיבים הרלוונטיים א הואפתרון עמודה, אנחנו מקבלים יחסים מעריכיםΘ אני==(24, 15, 12, 10). מבין אלה, אנו בוחרים את החיוב הקטן ביותר (minΘ אני=10), שיתאים ל שורת ההרשאה. מחרוזת הרשאה מגדירה משתנה xj, שבשלב הבא בולט מהבסיס והופך לחופשי. בגלל זה איקס 6 -קו הוא קו מתירני, והאלמנט "-1" הוא אלמנט מאפשר. אנחנו מקיפים אותו. משתנים איקס 1 ו איקס 6 מוחלפים.

יחסים משוערים Θ אניבכל שורה נקבעים לפי הכללים:

1) Θ אני= אם ב אניו א הואיש סימנים שונים;

2) Θ אני= ∞ אם ב אני= 0 ו א הוא < 0;

3) Θ אני= ∞ אם א הוא = 0;

4) Θ אני= 0 אם ב אני= 0 ו א הוא > 0;

5) Θ אני= אם ב אניו א הואיש את אותם סימנים.

אנו עושים את הצעד של חיסול ירדני שונה (MJJI) עם אלמנט מתירני ומרכיבים טבלה חדשה (טבלה 2) לפי הכלל הבא:

1) במקום האלמנט הפותר (RE), נקבע ערך, הפוך שלו, כלומר. ;

2) מרכיבי הקו המתיר מחולקים ל-RE;

3) האלמנטים של העמודה הפותרת מחולקים ל-RE והסימן משתנה;

4) האלמנטים הנותרים נמצאים על פי כלל המלבן:

מתוך טבלה. 2 מראה שהחברים החופשיים ב ב אני-העמודות אינן שליליות, לכן, הפתרון הקביל הראשוני מתקבל - תוכנית בסיס ראשונה= (10; 0; 182; 5; 4; 0). במקרה זה, הערך של הפונקציה ו() = 40. מבחינה גיאומטרית, זה מתאים לחלק העליון ו(10; 0) מצולע פתרון (איור 1).

שולחן 2

2. אנו בודקים את התוכנית לאופטימיות.תוכנית הבסיס אינה אופטימלית, כי ב ו-קו יש מקדם שלילי "-4". אנחנו משפרים את התוכנית.

3. מציאת קו בסיס חדש

אנו בוחרים את האלמנט המאפשר לפי הכלל:

אנו בוחרים את המקדם השלילי הקטן ביותר ב ו-שורה "-4", הקובעת את העמודה המאפשרת - איקס 6; מִשְׁתַנֶה איקס 6 לתרגם לבסיסי;

נמצא את היחסים Θ אני, ביניהם אנו בוחרים את החיובי הקטן ביותר, המתאים למחרוזת המתירנית:

דקה Θ אני = דקה(14, 5, 2, ∞) = 2, ומכאן איקס 5 - קו - מתירני, משתנה איקס 5 אנו מתרגמים לחופשי (משתנים איקס 5 ו איקס 6 מוחלפים).

בצומת השורה והעמודה המתירנית נמצא האלמנט המתירני "2";

אנו מבצעים את השלב SHMZhI, אנו בונים את הטבלה. 3 לפי הכלל לעיל וקבל תוכנית ייחוס חדשה = (12; 0; 156; 3; 0; 2).

שולחן 3

4. בדיקת התכנית הבסיסית החדשה לאופטימיות

גם תוכנית הבסיס אינה אופטימלית, שכן ב ו-קו יש מקדם שלילי "-1". ערך פונקציה ו() = 48, המתאים מבחינה גיאומטרית לחלק העליון ה(12; 0) מצולע פתרון (איור 1). אנחנו משפרים את התוכנית.

5. מציאת קו בסיס חדש

איקס 2 עמודות הוא מתירני, שכן ב ו-קו המקדם השלילי הקטן ביותר "-1" נמצא בתוכו איקס 2 עמודות (Δ 2 = -1). מציאת ה-Θ הקטן ביותר אני: דקה Θ אני = דקה(≈ 9, 6, ∞, 24) = 6, ומכאן איקסקו 4 - מתירני. אלמנט מתירני "1/2". החלפת משתנים איקס 2 ו איקסארבע . אנו מבצעים את השלב SHMZhI, אנו בונים את הטבלה. 4, אנו מקבלים תוכנית ייחוס חדשה = (9; 6; 51; 0; 0; 5).

6. בדיקת התוכנית הבסיסית לאופטימיות

בְּ ו-שורה, כל המקדמים אינם שליליים, לכן, תוכנית הייחוס היא אופטימלית. מתאים מבחינה גיאומטרית לנקודה ד(9;6) (ראה איור 1). התוכנית האופטימלית נותנת את הערך המקסימלי של פונקציית המטרה c.u.

לייצור של שלושה סוגים של חולצות, חוטים, כפתורים ובד משמשים. מלאי חוטים, כפתורים ובדים, שיעורי הצריכה שלהם לתפירת חולצה אחת מצוינים בטבלה. מצא את הרווח המקסימלי ואת תוכנית שחרור המוצר האופטימלית שמבטיחה זאת (מצא ).

חולצה 1 חולצה 2 חולצה 3 מניות חוטים (מ') 1 9 3 96 כפתורים (יחידות) 20 10 30 640 הבד ( 1 2 2 44 רווח (ר.) 2 5 4

פתרון הבעיה

בניית דגמים

דרך ומספר החולצות מסוג 1, 2 ו-3 המיועדות לשחרור.

אז מגבלות המשאבים ייראו כך:

בנוסף, לפי משמעות המשימה

פונקציית יעד המבטאת את הרווח שהתקבל:

אנו מקבלים את בעיית התכנות הליניארית הבאה:

הפחתת בעיית תכנות ליניארית לצורה קנונית

הבה נביא את הבעיה לצורה הקנונית. בואו נציג משתנים נוספים. אנו מכניסים את כל המשתנים הנוספים לפונקציית המטרה עם מקדם השווה לאפס. אנו מוסיפים משתנים נוספים לחלקים השמאליים של האילוצים שאין להם סוג מועדף, ואנחנו מקבלים שיוויון.

פתרון הבעיה בשיטת הסימפלקס

מלאו את טבלת הסימפלקס:

מכיוון שאנו פותרים את הבעיה למקסימום, נוכחותם של מספרים שליליים בשורת האינדקס בעת פתרון הבעיה למקסימום מעידה על כך שלא קיבלנו את הפתרון האופטימלי וכי יש צורך לעבור מטבלת האיטרציה ה-0 אל. הבא.

המעבר לאיטרציה הבאה מתבצע באופן הבא:

התאמות עמודות מובילות

שורת המפתח נקבעת לפי היחסים המינימליים של חברים חופשיים ואיברים בעמודה המובילה (יחסים פשוטים):

במפגש בין עמודת המפתח לבין שורת המפתח, אנו מוצאים את האלמנט המאפשר, כלומר. 9.

כעת נתחיל להרכיב את האיטרציה הראשונה: במקום וקטור יחידה, אנו מציגים וקטור .

בטבלה החדשה נכתוב 1 במקום האלמנט המאפשר, כל שאר האלמנטים של עמודת המפתח הם אפסים. רכיבי מחרוזת המפתח מחולקים באלמנט המתירני. כל שאר הרכיבים בטבלה מחושבים לפי כלל המלבן.

עמודת מפתח עבור התאמות איטרציה ראשונה

האלמנט הפותר הוא המספר 4/3. אנו מסיקים את הווקטור מהבסיס ומכניסים את הווקטור במקום. אנו מקבלים את הטבלה של האיטרציה השנייה.

עמודת המפתח עבור האיטרציה השנייה מתאימה ל

אנו מוצאים את קו המפתח, לשם כך אנו מגדירים:

האלמנט הפותר הוא המספר 10/3. אנו מסיקים את הווקטור מהבסיס ומכניסים את הווקטור במקום. אנו מקבלים את הטבלה של האיטרציה השלישית.

BP ג ב א o x 1 x2 x 3 x4 x5 x6 סימפלקס 2 5 4 0 0 0 יחסים 0 x4 0 96 1 9 3 1 0 0 32/3 x5 0 640 20 10 30 0 1 0 64 x6 0 44 1 2 2 0 0 1 22 F j - c j 0 -2 -5 -4 0 0 0 1 x2 5 32/3 1/9 1 1/3 1/9 0 0 32 x5 0 1600/3 170/9 0 80/3 -10/9 1 0 20 x6 0 68/3 7/9 0 4/3 -2/9 0 1 17 F j - c j 160/3 -13/9 0 -7/3 5/9 0 0 2 x2 5 5 -1/12 1 0 1/6 0 -1/4 -- x5 0 80 10/3 0 0 10/3 1 -20 24 x 3 4 17 7/12 0 1 -1/6 0 3/4 204/7 F j - c j 93 -1/12 0 0 1/6 0 7/4 3 x2 5 7 0 1 0 1/4 1/40 -3/4 x 1 2 24 1 0 0 1 3/10 -6 x 3 4 3 0 0 1 -3/4 -7/40 17/4 F j - c j 95 0 0 0 1/4 1/40 5/4

בשורת האינדקס, כל האיברים אינם שליליים, ולכן מתקבל הפתרון הבא לבעיית התכנות הליניארית (אנו כותבים אותו מהעמודה של החברים החופשיים):

יש צורך לתפור 24 חולצות מסוג 1, 7 חולצות מסוג 2 ו-3 חולצות מסוג 3. במקרה זה, הרווח שיתקבל יהיה מקסימלי ויסתכם ב-95 רובל.

יש צורך לפתור בעיית תכנות ליניארית.

פונקציית יעד:

2x 1 +5x 2 +3x 3 +8x 4 →דקות

תנאים מגבילים:

3x 1 +6x 2 -4x 3 +x 4 ≤12
4x 1 -13x 2 +10x 3 +5x 4 ≥6
3x1 +7x2 +x3 ≥1

הבה נביא את מערכת ההגבלות לצורה הקנונית, לשם כך יש צורך לעבור מאי שוויון לשוויון, בתוספת משתנים נוספים.

מכיוון שהבעיה שלנו היא בעיית מזעור, עלינו להמיר אותה לבעיית מקסום. לשם כך, אנו משנים את הסימנים של המקדמים של הפונקציה האובייקטיבית לאלה הפוכים. אנו כותבים את המרכיבים של אי השוויון הראשון ללא שינויים, מוסיפים לו משתנה נוסף x 5 ומשנים את הסימן "≤" ל-"=". מכיוון שלאי השוויון השני והשלישי יש סימנים "≥", יש צורך להפוך את הסימנים של המקדמים שלהם ולהכניס לתוכם משתנים נוספים x 6 ו- x 7, בהתאמה. כתוצאה מכך, אנו מקבלים בעיה מקבילה:

3x 1 +6x 2 -4x 3 +x 4 +x 5 =12
-4x 1 +13x 2 -10x 3 -5x 4 +x 6 =-6
-3x 1 -7x 2 -x 3 +x 7 =-1

אנו ממשיכים ליצירת טבלת הסימפלקס הראשונית. שורה F של הטבלה מכילה מקדמי פונקציה אובייקטיבית עם הסימן ההפוך.

חבר חינם

ו
X5
X6
X7

בטבלה שחיברנו ישנם אלמנטים שליליים בעמודת החברים החופשיים, אנו מוצאים ביניהם את המודולו המקסימלי - זה האלמנט: -6, הוא קובע את השורה המובילה - X6. בשורה זו אנו מוצאים גם את האלמנט השלילי המקסימלי modulo: -10 הוא נמצא בעמודה X3, שתהיה העמודה המובילה. המשתנה בשורה המובילה אינו נכלל בבסיס, והמשתנה המתאים לעמודה המובילה נכלל בבסיס. בוא נחשב מחדש את טבלת הסימפלקס:

X1 X2 X6 X4 חבר חינם
ו 0.8 8.9 0.3 6.5 -1.8
X5 4.6 0.8 -0.4 3 14.4
X3 0.4 -1.3 -0.1 0.5 0.6
X7 -2.6 -8.3 -0.1 0.5 -0.4

בטבלה שחיברנו ישנם אלמנטים שליליים בעמודת החברים החופשיים, אנו מוצאים ביניהם את המודולו המקסימלי - זה האלמנט: -0.4, הוא קובע את השורה המובילה - X7. בשורה זו אנו מוצאים גם את האלמנט השלילי המקסימלי modulo: -8.3 הוא נמצא בעמודה X2, שתהיה העמודה המובילה. המשתנה בשורה המובילה אינו נכלל בבסיס, והמשתנה המתאים לעמודה המובילה נכלל בבסיס. בוא נחשב מחדש את טבלת הסימפלקס:

X1 X7 X6 X4 חבר חינם
ו -1.988 1.072 0.193 7.036 -2.229
X5 4.349 0.096 -0.41 3.048 14.361
X3 0.807 -0.157 -0.084 0.422 0.663
X2 0.313 -0.12 0.012 -0.06 0.048

מכיוון שאין אלמנטים שליליים בעמודת האיברים החופשיים, נמצא פתרון בר ביצוע, יש אלמנטים שליליים בשורה F, כלומר הפתרון המתקבל אינו אופטימלי. בואו נגדיר עמודה מובילה. לשם כך, אנו מוצאים בשורה F את האלמנט השלילי המקסימלי בערך מוחלט - זהו -1.988 השורה המובילה תהיה זו שעבורה היחס בין האיבר החופשי לאלמנט המקביל של העמודה המובילה הוא מינימלי. השורה המובילה היא X2 והאלמנט המוביל הוא 0.313.

X2 X7 X6 X4 חבר חינם
ו 6.351 0.31 0.269 6.655 -1.924
X5 -13.895 1.763 -0.577 3.882 13.694
X3 -2.578 0.152 -0.115 0.577 0.539
X1 3.195 -0.383 0.038 -0.192 0.153

מכיוון שאין אלמנטים שליליים בשורה F, אז
מצא את הפתרון האופטימלי. מכיוון שהמשימה המקורית הייתה למצוא את המינימום, הפתרון האופטימלי הוא האיבר החופשי של המחרוזת F, שנלקח עם הסימן ההפוך. F=1.924
כאשר ערכי המשתנים שווים: x 3 = 0.539, x 1 = 0.153. המשתנים x 2 ו-x 4 אינם כלולים בבסיס, ולכן x 2 =0 x 4 =0.

דוגמה מס' 3. פתרון בעיית התכנות ליניארי בשיטת הסימפלקס.
מציאת הערך הגדול ביותר של פונקציה (בסיס מלאכותי)

פתרון זה הוא דוגמה מהתוכנית המוצגת באתר.


מצא את הערך הגדול ביותר של פונקציה

x 1 ≥ 0 x 2 ≥ 0

1. החברים החופשיים במערכת חייבים להיות לא שליליים.

תנאי זה התקיים.


2. כל אילוץ של המערכת חייב להיות משוואה.

x 1 - 2 x2 4
x 1 - x2 1
x 1 + x2 8
x 1 - 2 x2 + S1 = 4
x 1 - x2 - S2 = 1
x 1 + x2 + S3 = 8

S 1 ≥ 0, S 2 ≥ 0, S 3 ≥ 0. המשתנים שהוצגו S 1 , S 2 , S 3 נקראים משתני איזון.


3. מציאת הבסיס ההתחלתי והערך של הפונקציה F, התואם לבסיס ההתחלתי שנמצא.


מהו בסיס?
משתנה נקרא בסיסי עבור משוואה נתונה אם הוא נכנס עם המשוואה הנתונה גורם אחדואינו נכלל בשאר המשוואות (בתנאי שיש מספר חיובי בצד ימין של המשוואה).
אם לכל משוואה יש משתנה בסיס, אומרים שלמערכת יש בסיס.
משתנים שאינם בסיסיים נקראים משתנים חופשיים.

מה הרעיון מאחורי שיטת הסימפלקס?
כל בסיס מתאים לערך בודד של הפונקציה. אחד מהם הוא הערך הגבוה ביותרפונקציות F.
נעבור מבסיס אחד למשנהו, ונקבל את הערך של הפונקציה F לא פחות מהקיים.
ברור שמספר הבסיסים האפשריים לכל בעיה אינו גדול במיוחד.
לכן, במוקדם או במאוחר, התשובה תתקבל.

כיצד מתבצע המעבר מבסיס אחד למשנהו?
יותר נוח לרשום את הפתרון בצורה של טבלאות. כל שורה בטבלה שווה ערך למשוואת המערכת. הקו המודגש מורכב מהמקדמים של הפונקציה (ראה טבלה למטה). זה מאפשר לא לשכתב משתנים בכל פעם, מה שחוסך הרבה זמן.
בשורה שנבחרה, בחר את המקדם החיובי הגדול ביותר (תוכל לבחור כל חיובי).
זה הכרחי כדי לקבל את הערך של הפונקציה F לא פחות מהקיימת.
עמודה נבחרה.
עבור מקדמים חיוביים של העמודה שנבחרה, אנו מחשבים את היחס Θ ובוחרים הערך הקטן ביותר.
זה הכרחי כדי שאחרי השינוי עמודת החברים החופשיים תישאר חיובית.
שורה נבחרה.
האלמנט שיהיה אלמנט הבסיס מוגדר. לאחר מכן, אנו סופרים.

האם למערכת שלנו יש בסיס?

x 1 - 2 x2 + S1 = 4
x 1 - x2 - S2 = 1
x 1 + x2 + S3 = 8

אין בסיס, כלומר. אנחנו לא יכולים להתחיל בפתרון.
יצטרך למצוא אותו. לשם כך, אנו פותרים בעיית עזר.
נוסיף למשוואה משתנה מלאכותי שבו אין משתנה בסיס.

x 1 - 2 x2 + S1 = 4
x 1 - x2 - S2 + R1 = 1
x 1 + x2 + S3 = 8

R 1 ≥ 0. המשתנה המוכנס R 1 נקרא משתנה מלאכותי.

אנו מציגים את הפונקציה W בחשבון ומחפשים את הערך הקטן ביותר שלה.

לאלגוריתם למציאת הערך הקטן ביותר של הפונקציה W יש רק הבדל אחד מהאלגוריתם שנדון לעיל.
תצטרך להבין את זה לבד.


x 1x2S1S2S3R1רחוב. חבר Θ
1 -2 1 0 0 0 4 4: 1 = 4
1 -1 0 -1 0 1 1 1: 1 = 1
1 1 0 0 1 0 8 8: 1 = 8
-1 1 0 1 0 0 W - 1
0 -1 1 1 0 -1 3
1 -1 0 -1 0 1 1
0 2 0 1 1 -1 7
0 0 0 0 0 1 W - 0

נשווה את המשתנים החופשיים לאפס. מצא מילולית את הערכים של המשתנים הבסיסיים. (רואה שולחן)
הפונקציה W מבוטאת במונחים של משתנים חופשיים. לכן, הערך של הפונקציה W, עבור פתרון נתון, ניתן למצוא באופן מיידי. (ראה שורה מודגשת בטבלה)

x 2 = 0 S 2 = 0 R 1 = 0
x 1 = 1 S 1 = 3 S 3 = 7
=> W - 0 = 0 => W = 0

בין המקדמים של הקו הנבחר, אין שליליים. לכן, נמצא הערך הקטן ביותר של הפונקציה W.
בסיס מתקבל ללא שימוש במשתנה מלאכותי. וזה מה שנדרש.
ניתן למחוק את העמודה המתאימה למשתנה המלאכותי.
כתוצאה מכך, המערכת שלנו נראית כך:

- x2 + S1 + S2 = 3
x 1 - x2 - S2 = 1
2 x2 + S2 + S3 = 7
ו = - x 1 + 3 x2
ו = -
( 1 + x2 + S2)
+ 3 x2
= -1 + 2 x2 - S2