יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/lp...םינותנ –...

65
תכנות לינארי נכתב ע" י אדם שפר הרחבות ועדכונים ע" י רון שמיר, יוני2013 , מאי2014 מקור עיקרי: CLRS פרק29

Upload: others

Post on 17-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

תכנות לינארי

שפרי אדם "נכתב ע

2014מאי , 2013יוני , י רון שמיר"הרחבות ועדכונים ע

29פרק CLRS: מקור עיקרי

Page 2: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

?מה עושים היום

היום נלמד על:

(.LPאו Linear Programming) לינאריבעיות תכנות ◦

.הסימפלקסאלגוריתם ◦

2

Page 3: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

נתונים –בעיית תכנות לינארי

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

,𝑥1: משתנים 𝑛קבוצה של ◦ … , 𝑥𝑛.

לינאריים (≤,=,≥)אי שוויונים 𝑚קבוצה של ◦ :לדוגמא. במשתנים

𝑥1 + 𝑥2 + 4𝑥𝑛 ≤ 6 𝑥12 + 4𝑥4 − 2𝑥17 + 𝑥1 = 22

… 2𝑥4 + 𝑥𝑛−2 − 12𝑥2 ≥ −20

להביא למינימום או למקסימום –פונקציית מטרה ◦: לדוגמא. פוקנציה לינארית במשתנים

𝑚𝑖𝑛𝑖𝑚𝑖𝑧𝑒 3𝑥1 + 5𝑥2 +⋯− 𝑥𝑛/12 3

Page 4: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

פתרונות אפשריים

max 𝑥1 + 2𝑥2 4𝑥1 − 𝑥2 ≤ 3 2𝑥1 + 2𝑥2 ≥ −100

4

1 22.5, 10x x

Page 5: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

פתרון אופטימלי

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

עבור התוכנית, למשל

.הפתרון האופימלי הינו 𝑥1= 𝑥2 = במקרה 3/4,הערך של פונקציית המטרה הינו , הזה וכל 9/4

.פתרון אפשרי אחר יביא לערך נמוך יותר

max 𝑥1 + 2𝑥2 4𝑥1 ≤ 3

2𝑥1 − 2𝑥2 ≥ 0

5

Page 6: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

שלוש תוצאות אפשריות לבעיה

3

5

maximize

xy

x

yx

3

5

maximize

xy

xy

yx

3

5

maximize

xy

x

yx

קיים פתרון (.13)אופטימלי

לא קיים .אף פתרון

הבעיה אינה חסומה נוכל לקבל פתרון גדול)

(.ככל שנרצה6

Page 7: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

Feasible

Region

Example in 2D

optimum

basic

constraints

max x1 + 8x2

subject to:

(1) x1 3

(2) x2 2

(3) –3x1 + 4x2 14

(4) 4x1 – 3x2 25

(5) x1 + x2 15

x2

x1

(1)

(2)

(4)

(5)

(3)

(5)

(3)

x1 = 46/7

x2 = 59/7

Source: Andy Mirzayan, York Univ. 7

Page 8: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

Example in 3D

subject to:

maximize z

Optimum

(x,y,z)=(0,0,3)

x

y

z

0

0

0

2

3

z

y

x

y

zyx

Source: Andy Mirzayan, York Univ. 8

Page 9: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

הלוואות בבנק – #1שאלה

בנק למשכנתאוילר מציע ארבע סוגי הלוואותה: תרגיל :משכנתא שניה , (שנתית)ריבית 14%-משכנתא ראשונה ב

, ריבית 20%-הלוואה לשיפוץ הבית ב, ריבית 20%-ב . ריבית 10%-והלוואה למימון לימודים ב

אך , הבנק רוצה למקסם את רווחיו מהריבית השנתית האחוזים הינם )נתון תחת הגבלות המדיניות הבאות

(:ביחס לסכומי ההלוואות ולא למספרן

.מיליון שקל בשנה 250לבנק מותר להלוות עד ◦

מסך 55%משכנתאות ראשונות צריכות להיות לפחות ◦ .מסך מכלל ההלוואות 25%המשכנתאות ולפחות

.מכלל ההלוואות 25%משכנתאות שניות יכולות להיות עד ◦

.15%-הריבית הממוצעת אינה יכולה לעלות מעל ל◦9

Page 10: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

פתרון

מהם המשתנים שלנו?

.אחוז הלוואות משכנתא ראשונה

.אחוז הלוואות משכנתא שניה

.אחוז הלוואות לשיפוץ

.אחוז הלוואות ללימודים

מהי פונציית המטרה?

1x

2x

3x

4x

)1.02.02.014.0250( maximize 4321 xxxx

10

, ריבית 14%-משכנתא ראשונה ב

,ריבית 20%-ב שניהמשכנתא

,ריבית 20%-הלוואה לשיפוץ הבית ב

. ריבית 10%-הלוואה למימון לימודים ב

Page 11: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

פתרון (המשך)

מהם האילוצים?

055.045.0 55.0 21211 xxxxx

25.02 x25.01 x

15.01.02.02.014.0 4321 xxxx

14321 xxxx 0,,, 4321 xxxx11

.מיליון שקל בשנה 250לבנק מותר להלוות עד

מסך 55%משכנתאות ראשונות צריכות להיות לפחות

.מסך מכלל ההלוואות 25%המשכנתאות ולפחות

.מכלל ההלוואות 25%השניות יכולות להיות עד המשכנתאות

.15%-הריבית הממוצעת אינה יכולה לעלות מעל ל

Page 12: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

סיכום הפתרון

קיבלנו את התוכנית הבאה:

max 250 0.14 ⋅ 𝑥1 +0.2 ⋅ 𝑥2 + 0.2 ⋅ 𝑥3 + 0.1 ⋅ 𝑥4

0.45 ⋅ 𝑥1 − 0.55 ⋅ 𝑥2 ≥ 0

𝑥1 ≥ 0.25 𝑥2 ≤ 0.25

0.14 ⋅ 𝑥1 +0.2 ⋅ 𝑥2 + 0.2 ⋅ 𝑥3 + 0.1 ⋅ 𝑥4 ≤ 0.15

𝑥1 + 𝑥2 + 𝑥3 + 𝑥4 = 1

𝑥1, 𝑥2, 𝑥3, 𝑥4 ≥ 0

12

Page 13: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

עוד שימושים

בעיות נוספות שנהוג לנסח כתכנות לינארי: השמת של עובדים למשמרות תחת אילוצים של הגבלת ◦

שעות שונות ביום דורשות כמות שונה של , שעות לעובד .'וכו, עובדים ותיקים 𝑥כל משמרת צריכה להכיל , עובדים

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

.'וכו, כמויות יצור אפשריות, תחת אילוצי עלות משלוח

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

...ועוד הרבה◦

אלגוריתם שפותר בעיות תכנות לינארי יוכל !לפתור את כל הבעיות הללו

13

Page 14: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

זרימה ותכנות לינארי - #2שאלה

גרף מכוון –נתונה רשת זרימה :תרגיל𝐺 = 𝑉, 𝐸 , פונקציית קיבול𝑐: 𝐸 → ℝ , מקור𝑠 ∈ 𝑉 , ויעד. 𝑡 ∈ 𝑉 נסחו את בעיית מציאת

כבעיית תכנות 𝑡 -ל 𝑠 -הזרימה המקסימלית מ .לינארי

14

Page 15: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

מה יהיו המשתנים?

𝑒לכל קשת ◦ = (𝑢, 𝑣) נחזיק משתנה𝑥𝑢𝑣 שיסמן .כמה זרימה עוברת דרך הקשת

כיצד נדאג שהזרימה שנכנסת לקודקוד שווה ?לזרימה היוצאת ממנו

𝑢לכל קודקוד ◦ ∈ 𝑉 ∖ 𝑠, 𝑡 נוסיף אילוץ

𝑥𝑣𝑢𝑣∈𝑉

= 𝑥𝑢𝑣𝑣∈𝑉

o נדרוש גם𝑥𝑢𝑣 ≥ לכל משתנה 0

תוכנית לינארית –זרימה

15

Page 16: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

מה עדיין חסר בתוכנית?

פונקציית מטרה שתביא למקסימום את גודל ◦ :הזרימה

max{ xsv𝑣∈𝑉

− xvs𝑣∈𝑉

}

(המשך)תוכנית לינארית –זרימה

16

Page 17: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

בתוכניתמה עוד חסר?

!עדיין לא התייחסנו לקיבולים◦

,𝑢עבור כל קשת ◦ 𝑣 ∈ 𝐸 ניצור אילוץ

𝑥𝑢𝑣 ≤ 𝑐 𝑢, 𝑣

(עוד המשך)תוכנית לינארית –זרימה

17

Page 18: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

(הסוף)תוכנית לינארית –זרימה

max{ xsv𝑣∈𝑉

− xvs𝑣∈𝑉

}

𝑢 ∈ 𝑉 ∖ 𝑠, 𝑡 𝑥𝑣𝑢𝑣∈𝑉 = 𝑥𝑢𝑣𝑣∈𝑉

𝑢, 𝑣 ∈ 𝐸 𝑥𝑢𝑣 ≤ 𝑐 𝑢, 𝑣

𝑢, 𝑣 ∈ 𝐸 𝑥𝑢𝑣 ≥ 0

18

Page 19: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

מינימליזרימה במחיר #3שאלה (Min cost flow)

בתוספת מחיר –אותם נתונים puv ליחידת (u,v) זרימה על כל קשת

שמחירה הכולל מקסימליתמחפשים זרימה מינימלי

נחשב את ערך הזרימה המקס ,T

לינאריתנכתוב תוכנית:

19

( , )

.

uv uvu v E

sv vsv V v V

Min p x

s t x x T

Page 20: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

בים ותכנות לינארי"מק - #4שאלה

ב ממקור "תארו את בעיית מציאת מק: תרגיל . יחיד ליעד יחיד כבעיית תכנות לינארי

מכוון גרף נתונים : תזכורת -הגדרת הבעיה, 𝐺 = (𝑉, 𝐸) זוג קודקודים, 𝑠, 𝑡 ∈ 𝑉

.ופונקציית משקל 𝑤: 𝐸 → 𝑅 ידוע כי , בנוסףמצאו . אין מעגלים שליליים בגרף

𝑠ב מ"מק .𝑡אל −

20

Page 21: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

פתרון

21

אלגבסיום :תזכורת Bellman –Ford , לכל dv du +w(u,v) :מתקיים(u,v) קשת

לכל קדקודv נגדיר משתנה d(v)

Page 22: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

דוגמא

𝑑 𝑠 = 0.

𝑑 𝑎 ≤ 𝑑 𝑠 + 3.

𝑑 𝑏 ≤ 𝑑 𝑠 + 1.

𝑑 𝑎 ≤ 𝑑 𝑏 + 1.

𝑑 𝑡 ≤ 𝑑 𝑎 + 1.

𝑑 𝑡 ≤ 𝑑 𝑏 + 4.

𝑠

𝑎

𝑏

𝑡

1

1

1 3

4

𝑑 𝑏 ≤ 1

𝑑 𝑎 ≤ 2

𝑑 𝑡 ≤ 3 22

Page 23: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

!זהירות

LP: פונקצית מטרה , לינארייםאילוצים ממשייםערכי פתרון , לינארית

לינאריתפונקצית מטרה , לינארייםאילוצים , Integer LP (ILP): שלמיםערכי פתרון

ספוילר:

◦LP : פולינומיאליתבעיה

◦ILP : פולינומיאליתלא ככל הנראה (NP-קשה)

לא להתבלבל בין LP ל-ILP!!

23

Page 24: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

דנציג' ורג'ג –קצת היסטוריה

מספר בעיות נוסחו בצורת תוכניות 40-וה 30-בשנות האך אף אחד לא הכליל את זה לבעיה כללית , לינאריות

.אחת

כחלק מפרוייקט , 1947-בSCOOP של חייל האוויר, הציג את הרעיון של תכנות לינארי Danzig, האמריקני

.לפתרון הבעיה הסימפלקסואת אלגוריתם

Programming” "תכנון –40-בשנות ה ולא תכנות

24

Page 25: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

אלגוריתם סימפלקס

אלגוריתם Simplex מקבל בעיות תכנות לינאריאו מודיע )ומוצא פתרון אופטימלי עבורן

(אינה פיזיבילית/ שהבעיה אינה חסומה

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

זמן ( על נתונים אמיתיים)במקרה האופייניולכן זהו אלגוריתם נפוץ , הריצה טוב מאוד

.לבעיה

25

Page 26: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

הסגר על ברלין –קצת היסטוריה

גרמניה , לאחר מלחמת העולם השניהשהייתה , ברלין. חולקה לארבעה חלקים

.חולקה גם היא, בתוך החלק הסובייטי

הסובייטים , עם התפתחות המלחמה הקרה .החליטו לערוך מצור על ברלין

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

אך בזמן , המשבר נמשך פחות משנה וחצי !טיסות לברלין 276,926הזה התבצעו

26

Page 27: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

הסגר על ברלין ותכנות לינארי

תפעול יעיל של הרכבת האווירית היה מבצע :מסובך ביותר

כל סוג . מטוסים ממספר סוגים 𝑥נתונים ◦ .יכול להעביר כמות שונה של אספקה

מטוסים שונים זקוקים למספר שונה של ◦ .אנשי צוות

וישנו תקציב , לכל טיסה יש עלות שונה◦ .שבועי שמותר להשתמש בו

...ועוד הרבה פרמטרים נוספים◦

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

27

Page 28: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

LPצורה סטנדרטית של בעיית

צורהכל בעיית תכנות לינארי ניתן להמיר ל :טענה .סטנדרטית

n

j

jj xc1

maximize

mibxa i

n

j

jij ,...,2,1for 1

nixi ,...,2,1for 0

28

Page 29: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

: המרה לצורה סטנדרטית פונקציית מטרה

פונקציית המטרה היא מינימום: בעיה.

פתרון:

n

j

jj

n

j

jj xdxc11

maximize minimize

njcd jj ,...,2,1for

29

Page 30: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

:המרה לצורה סטנדרטית משתנים

למשתנה יכול להיות ערך שלילי: בעיה.

פתרון:

לדוגמא:

x

0'','

'''

xx

xxx

שני משתנים חדשים יחליפו

.𝑥את

84''2'2

84)'''(2

842

zyxx

zyxx

zyx

30

Page 31: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

:המרה לצורה סטנדרטית שוויונים

המערכת מכילה שוויון: בעיה.

נחליף את השוויון בשני אי שוויונים: פתרון.

bxan

j

jj 1

bxan

j

jj 1

bxan

j

jj 1

31

Page 32: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

:המרה לצורה סטנדרטית שוויונים-אי

כיוון לא נכון של אי שוויון: בעיה .

פתרון:

bxan

j

jj 1

bxan

j

jj 1

niaa jj ,...,2,1for

bb

32

Page 33: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

המרה לצורה סטנדרטית: דוגמא

(1)

(2)

(3)

(4)

(5)

33

Page 34: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

סיכום –המרה לצורה סטנדרטית

ראינו שכל בעיית תכנות לינארי ניתן להמיר .לצורה סטנדרטית

אם במקור היו𝑛 משתנים ו𝑚 . אילוצים −בצורה הסטדנרטית שמתקבלת ישנם לכל היותר

2𝑛 2 -משתנים ו𝑛 + 2𝑚 אילוצים.

34

Page 35: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

Slack Form

צורת ה-slack הינה דרך נוספת ליצג את בעיית .התכנות לינארי

𝑥𝑗אילוצי אי שליליות לכל המשתנים ◦ ≥ 0.

כל שאר האילוצים הם שוויונות◦

.בהמשך –דרישות נוספות ◦

35

Page 36: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

slack (1) מעבר מצורה סטנדרטית לצורת

n

j

jj xc1

maximize

i

n

j

jij bxa 1

0ix

n

j

jijiin xabx1

-

גם לכל המשתנים

.החדשים

האילוץ .i-ה

𝑚 משתני עודף(slack) :חדשים

𝑥𝑛+1 , … , 𝑥𝑛+𝑚 36

Page 37: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

התחלתית slackהמרה לצורת : דוגמא

37

Page 38: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

slackמעבר מצורה סטנדרטית לצורת (2)סופית

n

j

jj xc1

vmaximize

0,...,

-

1

1

mn

n

j

jijiin

xx

xabx

𝑚 משתני בסיס: 𝑥𝑛+1 , … , 𝑥𝑛+𝑚

38

𝑛 משתנים לא בסיסיים: 𝑥1 , … , 𝑥𝑛

𝑩 קבוצת האינדקסים : :של משתני הבסיס{𝑛 + 1,… ,𝑚 + 𝑛}

𝑵 קבוצת האינדקסים של המשתנים…,1} :לא בסיסיים , 𝑛}

, 𝑥1הצגת פונקצית המטרה במונחי המשתנים … , 𝑥𝑛

Page 39: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

: Slack Formסיכום

משתנים בסיסיים -משתנים לא בסיסיים ו.

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

𝑥𝑗אילוצי אי שליליות לכל המשתנים ◦ ≥ 0.

לכל משתנה בסיסי קיים שיוויון מהצורה◦

Nj jj xcvmax

- Nj

jijik xabx

nm

.משתנה בסיסי .משתנים לא בסיסיים

39

Page 40: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

שקולות slackישנן הרבה צורות

פונקציית .המטרה

40

Page 41: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

slackהפתרון המתאים לצורת

לכל צורתslack באופן הבאנתאים פתרון:

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

מהו הערך של הפתרון?

מתי הפתרון אפשרי?

.הקבוע בפונקציית המטרה

כאשר הקבועים בכל .שליליים-האילוצים הינם אי

41

Page 42: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

Pivot -פיבוט

פיבוטצעד של אלגוריתם סימפלקס נקרא.

כל מה שעושים בצעד כזה הוא לעבור בין שתי .שקולות slackצורות

אלגוריתם סימפלקס בקצרה:

.שהפתרון המתאים לה אפשרי slackמצא צורת ◦

אחרת slackעבור לצורת , כל עוד לא הגענו לפתרון◦שהערך של הפתרון המתאים לה גדול או שווה לערך

.של הפתרון הנוכחי

42

Page 43: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

ביצוע צעד פיבוט

צריך לבחור את זוג המשתנים שמחליפים ביניהם.

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

בוחרים אילוץ שמביא למינימום את היחס בין הקבוע ◦ .שבאילוץ לבין מינוס המקדם של המשתנה הלא בסיסי

18)2/1/(9

4.8)2/5/(21

5.14/6

43

Page 44: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

(המשך)ביצוע צעד פיבוט

אנו רוצים להחליף את עם

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

3x5.x

4/22

36 6

52

3

xx

xx

44

Page 45: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

(עוד המשך)ביצוע צעד פיבוט

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

45

Page 46: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

דרך אחרת להסתכל על הצעד

כיוון , 1.5-רצינו להעלות את הערך של העלינו אותו ב שערך גדול יותר היה מפר את האילוץ

0.75 = 1.5/2 -הפתרון גדל ב.

בעצם עברנו לצורת ה-slack שמתאימה לפתרון החדש . בפתרון החדש

3.x0. 5 x

5.1 0. 35 xx46

:אחרי הצעד :לפני הצעד

Page 47: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

עוד שאלה

דנציג לבין מאט ' ורג'מה הקשר בין ג. שאלה ?דיימון

בסרט .פתרוןgood will hunting בכיכובו שליש אירוע ( שגם נכתב על ידיו)מאט דיימון

(.ההסבר המלא בשיעור)שמבוסס על דנציג

47

Page 48: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

הגדרה פורמלית –פיבוט

𝑧 =𝑣 + 𝑐𝑗𝑥𝑗𝑗∈𝑁

𝑥𝑖 = 𝑏𝑖 − 𝑎𝑖𝑗𝑥𝑗𝑗∈𝑁 𝑖 ∈ 𝐵

𝑥𝑗 ≥ 0 𝑗 ∈ 𝐵 ∪ 𝑁

𝐵 – basic variables. 𝑁 – non-basic variables.

נבחר משתנה לא בסיסי𝑥𝑙 כך ש𝑐𝑙 > 0 −.

נבחר משתנה בסיסי𝑥𝑘 כך שמתקיים . 𝑏𝑘/𝑎𝑘𝑙 = min

𝑖 (𝑏𝑖/𝑎𝑖𝑙 )

נחלק את שני צידי המשוואה של𝑥𝑘 ב, 𝑎𝑘𝑙 נעביר − .לצד ימין 𝑥𝑘ואת , לצד שמאל 𝑥𝑙את

נשתמש במשוואה שהתקבלה כדי להעלים את𝑥𝑙 .משאר האילוצים ומפונקציית המטרה

48

Page 49: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

49

𝑧 =𝑣 + 𝑐𝑗𝑥𝑗𝑗∈𝑁

𝑥𝑖 = 𝑏𝑖 − 𝑎𝑖𝑗𝑥𝑗𝑗∈𝑁 𝑖 ∈ 𝐵

𝑥𝑗 ≥ 0 𝑗 ∈ 𝐵 ∪ 𝑁

1

𝑎𝑘𝑙𝑥𝑘 =

1

𝑎𝑘𝑙(𝑏𝑘 − 𝑎𝑘𝑗𝑥𝑗𝑗∈𝑁−{𝑙} − 𝑎𝑘𝑙𝑥𝑙 )

𝑥𝑙 =𝑏𝑘

𝑎𝑘𝑙−

𝑎𝑘𝑗

𝑎𝑘𝑙𝑥𝑗𝑗∈𝑁−{𝑙} −

1

𝑎𝑘𝑙𝑥𝑘

𝑧 =𝑣 + 𝑐𝑗𝑥𝑗 + 𝑐𝑙𝑥𝑙𝑗∈𝑁−{𝑙}

=

𝑣 + 𝑐𝑙𝑏𝑘

𝑎𝑘𝑙+ (𝑐𝑗 −𝑐𝑙

𝑎𝑘𝑗

𝑎𝑘𝑙)𝑥𝑗 −𝑗∈𝑁−{𝑙}

𝐶𝑙

𝑎𝑘𝑙𝑥𝑘

𝑥𝑘 יוצא מהבסיס,

𝑥𝑙 נכנס

Page 50: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

50

𝑧 =𝑣 + 𝑐𝑗𝑥𝑗𝑗∈𝑁

𝑥𝑖 = 𝑏𝑖 − 𝑎𝑖𝑗𝑥𝑗𝑗∈𝑁 𝑖 ∈ 𝐵

𝑥𝑗 ≥ 0 𝑗 ∈ 𝐵 ∪ 𝑁

𝑥𝑙 =𝑏𝑘

𝑎𝑘𝑙−

𝑎𝑘𝑗

𝑎𝑘𝑙𝑥𝑗𝑗∈𝑁−{𝑙} −

1

𝑎𝑘𝑙𝑥𝑘

𝑥𝑖 = 𝑏𝑘 − 𝑎𝑖𝑗𝑥𝑗𝑗∈𝑁− 𝑙 − 𝑎𝑖𝑙𝑥𝑙 = 𝑖 ∈ 𝐵 –{𝑙}

= 𝑏𝑘 − 𝑎𝑖𝑗𝑥𝑗𝑗∈𝑁− 𝑙

− 𝑎𝑖𝑙𝑏𝑘𝑎𝑘𝑙−

𝑎𝑘𝑗

𝑎𝑘𝑙𝑥𝑗

𝑗∈𝑁− 𝑙

−1

𝑎𝑘𝑙𝑥𝑘

= 𝑏𝑘 − 𝑎𝑖𝑙𝑏𝑘𝑎𝑘𝑙− (𝑎𝑖𝑗 −𝑎𝑖𝑙

𝑎𝑘𝑗

𝑎𝑘𝑙)𝑥𝑗

𝑗∈𝑁− 𝑙

−𝑎𝑖𝑙𝑎𝑘𝑙𝑥𝑘

𝑥𝑘 יוצא מהבסיס,

𝑥𝑙 נכנס

Page 51: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

פתרונות אפשריים

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

.שתתקבל תתאים גם היא לפתרון אפשרי

הוכחה.

𝑏𝑖-נסמן ב◦ . את הקבועים באילוצים החדשים ′

:𝑖∀מספיק להראות שמתקיים ◦ 𝑏𝑖′ ≥ 0.

◦. 𝑏𝑖′= 𝑏𝑖 − 𝑏𝑘

𝑎𝑖𝑙

𝑎𝑘𝑙≥ 0

𝑏𝑘/𝑎𝑘𝑙 = min𝑖 (𝑏𝑖/𝑎𝑖𝑙) 𝑏𝑘/𝑎𝑘𝑙 ≤ 𝑏𝑖/𝑎𝑖𝑙

𝑥𝑙 = 𝑏𝑘 − 𝑥𝑘 + 𝑎𝑘𝑗𝑥𝑗𝑗∈𝑁 /𝑎𝑘𝑙 51

Page 52: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

ערך הפתרון החדש

על צורת צעד פיבוט נניח שהרצנו . טענהslack slack-צורת ה. 𝜈שערכו המתאימה לפתרון

.שתתקבל תתאים לפתרון שערכו לפחות 𝜈

הוכחה.

.החדשה slack-את הקבוע בצורת ה ′𝜈-נסמן ב◦

𝜈נרצה להראות שמתקיים ◦ ≤ 𝜈′.

◦𝜈′ = 𝜈 + 𝑐𝑙𝑏𝑘/𝑎𝑘𝑙

𝑎𝑘𝑙 -הטענה מתקיימת כיוון ש◦ , 𝑏𝑘 , 𝑐𝑙 ≥ 0.

𝑥𝑙 = 𝑏𝑘 − 𝑥𝑘 + 𝑎𝑘𝑗𝑥𝑗𝑗∈𝑁 /𝑎𝑘𝑙 52

Page 53: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

?מתי האלגוריתם מסתיים

מתי נפסיק לבצע צעדי פיבוט ונעצור את ?האלגוריתם

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

אופטימליהפתרון –בתנאי העצירה :עוד לא הראינו◦

53

Page 54: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

שאלה

מה קורה אם כל המקדמים𝑎𝑖𝑙 חיוביים ?

.הבעיה אינה חסומה◦

. ככל שנרצה בלי להפר אף אילוץ 𝑥𝑙נוכל להגדיל את ◦

54

Page 55: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

?האם האלגוריתם יכול להתקע

ראינו שהעדכון בערך של הפתרון המתאים

.הינו slack-לצורת ה 𝑣′= 𝑣 + 𝑐𝑗𝑏𝑘/𝑎𝑘𝑗

אם𝑏𝑘 = . הצעד לא יגדיל את ערך הפתרון, 0

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

55

Page 56: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

(המשך)? האם האלגוריתם יכול להתקע

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

.לא יחזור על אותו פתרון פעמיים' האלג

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

לא נוכיח את הטענה.

56

Page 57: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

סיכום האלגוריתם

אלגוריתם סימפלקס:

המתאימה לפתרון slackמתחיל במציאת צורת ◦ .אפשרי

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

.הפתרון הקודם

ניתן לבצע את האלגוריתם כך שלא יחזור על פתרון ◦ .שכבר היינו בו

57

Page 58: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

פיבוט –זמן ריצה

אנו מבצעים, במהלך צעד פיבוט:

.𝑥𝑙בחירת משתנה לא בסיסי ◦

.𝑥𝑘מציאת המשתנה הבסיסי המתאים ◦

𝑥𝑙החלפה בין ◦ , 𝑥𝑘 באילוץ המתאים ל-𝑥𝑘.

.בשאר האילוצים ובפונקציית המטרה 𝑥𝑙החלפת ◦

זמן הריצה של צעד הינו, כ"סה

𝑂 𝑛 𝑂 𝑚 𝑂 𝑛

𝑂 𝑛𝑚

𝑂 𝑛𝑚

58

Page 59: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

?כמה צעדי פיבוט האלגוריתם יבצע

כמה צורותslack שקולות יכולות להיות לבעיה?

𝑚-משתנים לא בסיסיים ו 𝑛מכילה slackכל צורת ◦ . משתנים בסיסיים

חסם עליון טריוויאלי הוא◦

𝑚 + 𝑛𝑚< 2𝑚+𝑛

מספר הדרכים לבחור את קבוצת המשתנים הבסיסיים

.slack-של צורת ה59

Page 60: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

סימפלקס –זמן ריצה

זמן ריצה:

:פיבוטסיבוכיות צעד ◦

מבצע הינו ' מספר הצעדים שהאלג◦

: כ"סה◦

𝑂 𝑛𝑚 𝑂 2𝑚+𝑛

𝑂 𝑛𝑚 ⋅ 2𝑚+𝑛

60

הצעדים האם יש מקרים בהם מספר . עליוןחסם זהו ?מעריכי

-התשובה תלויה בכלל בחירת המשתנה הנכנס לבסיס .כלל הפיבוט

לכללים רבים הראו זמן מעריכי

Page 61: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

LPהסיבוכיות של בעיית

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

מעריכית עבור כללי פיבוט רבים◦

לא הוכחה כפולינומיאלית לשום כלל◦

יעילה מאוד באופן מעשי◦

האם קיים אלגוריתם פולינומיאלי כלשהו (?שלמה-NPהיא LPהאם : כלומר) ?LPלבעיית

הספוטניק של "עד -בעייה פתוחה מרכזית1979"

61

Page 62: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

The New York Times, November 7, 1979

Continued on next slide.

Source: Andy Mirzayan, York Univ.

Page 63: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב
Page 64: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

עוד קצת היסטוריה

שיטת האליפסואיד:

Leonid Khachiyan על ידי 1979-התגלתה ב◦

.אך בפועל מאוד לא יעילה, פולינומיאלית◦

שיטתInterior point

Narendra Karmarkarי "ע 1984-הוצעה ב◦

פולינומיאלית ויעילה◦

עדיין תחום מחקר תוסס

64

Page 65: יראניל תונכתtau-algorithms.wdfiles.com/local--files/presentations/LP...םינותנ – יראניל תונכת תייעב מ תבכרומ יראניל תונכת תיעב

...עדיין לא סיימנו עם סימפלקס

נראה בשיעור הבא:

.אפשרית התחלתית slackכיצד למצוא צורת ◦

.כיצד להוכיח את נכונות האלגוריתם◦

65