Transcript تحميل
Slide 1
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 2
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 3
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 4
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 5
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 6
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 7
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 8
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 9
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 10
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 11
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 12
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 13
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 14
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 15
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 16
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 17
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 18
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 19
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 2
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 3
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 4
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 5
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 6
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 7
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 8
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 9
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 10
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 11
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 12
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 13
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 14
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 15
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 16
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 17
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 18
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net
Slide 19
حبوث معليات
احملارضة العارشة
لكية العلوم –قسم الرايضيات -جامعة دمشق
2014-2013
مسألة اإلسناد assignment problem
وتقوم هذه المسألة بإسناد 𝑚وظيفة الى 𝑛 شخص وذلك بأقل كلفة
حيث كلفة شغل الشخص 𝑖للوظيفة 𝑗 هي 𝑗𝑖𝑐
تعتبر مسألة اإلسناد برنامج خطي لذلك يمكن حلها باستخدام طريقة
السمبلكس
كذلك يمكن اعتبارها مسألة نقل بالتالي يمكن حلها باستخدام خوارزمية
السمبلكس المعدلة (تحريك الحجر)
بما أن لمسالة اإلسناد شكل خاص لذلك هناك عدة طرق لحلها بوقت قياسي
ومن أفضل هذه الطرق(ومن أقدم الطرق أيضا)الطريقة الهنغارية.
مسألة اإلسناد assignment problem
النموذج الرياضي للمسألة:
𝑚
𝑛
= 𝑧 𝑛𝑖𝑀
𝑗𝑖𝑥 𝑐𝑖𝑗 .
𝑖=1 𝑗=1
شرط الشخص ≤ 1
𝑚
𝑗𝑖𝑥 𝑗=1
𝑛
𝑗𝑖𝑥 𝑖=1
S.T:
شرط شغل الوظيفة= 1
𝑚 𝑥𝑖𝑗 ∈ 0,1 ; 𝑖 = 1,2, … , 𝑛 𝑗 = 1,2, … ,
مسألة
بفرض لدينا أربع أشخاص نريد أن ننفذ ثالث وظائف يعطى كلفة قيام كل
شخص للوظائف بالجدول التالي:
A
1
الوظائف
C
B
A
األشخاص
16
36
50
1
18
30
28
2
20
32
35
3
14
25
25
4
B
C
2
3
4
خطوات خوارزمية الطريقة اهلنغارية
نضيف وظيفة وهمية Dكلفة قيام أي شخص بها صفر
A
1
الوظائف
D
C
B
A
األشخاص
0
16
36
50
1
0
18
30
28
2
0
20
32
35
3
0
14
25
25
4
B
2
C
3
D
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل سطر اصغر قيمة و نطرحها من جميع عناصر السطر
الوظائف
األشخاص
D
C
B
A
0 -0
16-0
36 -0
50 -0
1
0 -0
18-0
30 -0
28 -0
2
0 -0
20-0
32 -0
35 -0
3
0 -0
14 -0
25 -0
25 -0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد في كل عمود اصغر قيمة و نطرحها من جميع عناصر العمود
الوظائف
األشخاص
D
C
B
A
0-0
16 -14
36-25
50 -25
1
0-0
18 -14
30-25
28 -25
2
0-0
20 -14
32-25
35 -25
3
0-0
14 -14
25-25
25 -25
4
خطوات خوارزمية الطريقة اهلنغارية
بعد طرح أصغر قيمة في كل سطر وكل عمود ينتج لدينا الجدول التالي
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نرسم اقل عدد من الخطوط بحيث نغطي جميع االصفار.
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
بما ان عدد الخطوط أقل من عدد الوظائف بقوم بالخطوات التالية
نحدد أصغر عدد في الخاليا غير المغطى بخط
الوظائف
D
C
B
A
األشخاص
0
2
11
25
1
0
4
5
3
2
0
6
7
10
3
0
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نطرح هذه القيمة من جميع الخاليا غير المغطاة ونضيفها للخاليا المغطاة
بخطين
الوظائف
D
C
B
A
األشخاص
0
2-2
11-2
25-2
1
0
4-2
5-2
3-2
2
0
6-2
7-2
10-2
3
0+2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نعيد الخطوات السابقة ونرسم اقل عدد من الخطوط يغطي جميع األصفار.
عدد الوظائف أيضا أقل من عدد الوظائف تنابع الخطوات السابقة
الوظائف
D
C
B
A
األشخاص
0
0
9
23
1
0
2
3
1
2
0
4
5
8
3
2
0
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
نحدد أصغر عدد غير مغطى بخط ونطرحه من الخاليا غير المغطاة بأي
خط ونضيفه للخاليا المغطاة بخطين
الوظائف
األشخاص
D
C
B
A
0
0
9 -1
23 -1
1
0
2
3 -1
1 -1
2
0
4
5 -1
8 -1
3
2 +1
0 +1
0
0
4
خطوات خوارزمية الطريقة اهلنغارية
يصبح الجدول كالتالي
ان الخطوط التي تغطي األصفار أربعة وهي
الوظائف
D
C
B
A
األشخاص
0
0
8
22
1
0
2
2
0
2
0
4
4
7
3
3
1
0
0
4
احلل النهائي
يتعين الحل من األصفار المقابلة لكل شخص ،وهي كالتالي
الشخص األول يمكن أن يقوم بالوظيفة C&D
الشخص الثاني يمكن أن يقوم بالوظيفة A&D
الشخص الثالث يمكن أن يقوم بالوظيفة D
الشخص الرابع يمكن أن يقوم بالوظيفةA&B
احلل األمثل
الشخص الثالث يقوم بالوظيفة (Dوظيفة وهمية اي ال يقوم بأي وظيفة)
الشخص األول يقوم بالوظيفة C
الشخص الثاني يقوم بالوظيفة A
الشخص الرابع يقوم بالوظيفة B
كلفة احلل
𝑀𝑖𝑛 𝑧 = 𝑐13 + 𝑐21 + 𝑐41 = 16 + 28 + 25 = 68
تلخيص اخلطوات السابقة:
في حال عدد الوظائف أقل من عدد األشخاص نضيف وظائف وهمية حتى
التساوي
من أجل كل سطر (في جدول الكلفة)نطرح أصغر عدد في هذا السطر.
من أجل كل عمود نطرح أصغر عدد في هذا العمود.
نرسم أقل عدد ممكن من الخطوط التي تغطي جميع األصفار في الجدول اذا كان
عدد األصفار يسوي عدد الوظائف فإن الخوارزمية تنتهي والحل هو األمثل
في حال كان عدد األصفار أقل من عدد الوظائف نختار أصغر عدد غير مغطى
ونطرحه من جميع العناصر غير المغطاة ونضيفه للعاصر المغطاة بخطين
ويكون الحل كل شخص يمكنه القيام بالوظائف ذات القيمة صفر في الجدول
النهائي.
في حال إضافة وظيفة وهمية فان الشخص الذي يقوم بهذه الوظيفة فإنه فعليا
ال يقوم بأي وظيفة ألنها وهمية.
انتهت احملاضرة
[email protected]
www.SyriaMath.net