1. Algorithms and Data Structure
Optimal algorithm to cut wood AlgorithmseneticG
Kinan Keshkeh – Ahmad Mukashati – AbdAlRahman AlHomsi
Damascus University
Faculty of Information Technology Engineering
2014
2. تقر رٌ خوارزم اٌت وبنى المعط اٌت 1
1
to Optimal algorithm
odwo cut
الخوارزمية المثلى لقص الخشب
بنى المعطيات :
نفترض أن اللوح الخشب هو عبارة عن مصفوفة لها بعدان ) H: للطول و W :
للعرض (
A : array [1..H,1..W] of integer
كل خانة ف المصفوفة نعتبرها وحدة مساحة 1c.m و عٌبر العدد )صفر( ف الخانة
على أن مكان هذه الخانة شاغر والعدد )غ رٌ الصفر ( ف الخانة على أن مكان هذه
الخانة حٌوي شكل ما
تعرف الدائرة بالمركز ) x,y ( ونصف القطر R و عٌرف المربع بنقاطه الأربعة
و عٌرف المثلث برؤوسه الثلاثة و عٌرف المستط لٌ بطوله وعرضه ) h : للطول
و w : للعرض(
سنعرف أربع سلاسل ) single list ( تم زٌ الأشكال الأربعة الت سنناقشها ف المسألة :
Record=rectangle )مستط لٌ(
w,h: integer;
3. تقر رٌ خوارزم اٌت وبنى المعط اٌت 1
2
)ح ثٌ num رقم الشكل( num : integer
Next : * rectangle
Record=circle )دائرة(
)ح ثٌ length هو قطر الدائرة 2R ) length : integer
num :integer
next : * circle
Record=square )مربع(
)ح ثٌ length هو طول ضلع المربع ( length : integer
next : * square
Record=triangle )مثلث(
)ح ثٌ length هو طول ضلع المثلث ( length : integer
num : integer
next : * triangle
ل كٌن q1,q2,q3,q4 مؤشرات على العقد السابقة على الترت بٌ
ول كٌن n هو عدد الأشكال الت أدخلها المستخدم وكل شكل من هذه الأشكال
أٌخذ رقم خاص ف هٌ ) 1..n )
الطلب الأول:
خوارزمية التموضع الأمثل للأشكال المعطاة على اللوح الخشبي:
اسم التابع
checkingspace
المهمة معرفة إمكان ةٌ تموضع الشكل ف اللوح ) وٌجد له مكان ف اللوح الخشب (ً
رأس الاجرائ ةٌ
Bool Checkingspace(L1,L2 int , var : x,y)
ح ثٌ L1,L2 أبعاد الشكل و X,Y هما أحداث اٌت خانة المصفوفة الت بٌدا عندها الشكل )وه الزاو ةٌ
ال سٌرى العلو ةٌ للشكل ( و عٌ دٌ التابع true إذا وجد مكان شاغر للشكل المعطى و false عدا ذلك
4. تقر رٌ خوارزم اٌت وبنى المعط اٌت 1
3
كما أن الشكل س حٌاط بخانات ) 1 ( من أجل المسافة ب نٌ شكل وشكل أخر أثناء القص -
)الخوارزمية(
نمرر حلقت نٌ for على طول اللوح وعرضه أبعاد الشكل لك نتجنب وقوع الشكل خارج –
أبعاد المصفوفة
استخدمنا هنا + 1 من أجل إحاطة الشكل بخانة إضاف ةٌ من كل جانب لنضع ف هٌا
1( ف مٌا بعد كمسافة ب نٌ الشكل والشكل الذي لٌ هٌ وكذلك ف البدا ةٌ طرحنا ) 1( من -( i,j
للسبب ذاته
ثم بٌدأ العد من أجل كل خانة ف مصفوفة اللوح الخشب a[i,j] وذلك بإنشاء حلقت نٌ for
تبدا من على طول الشكل المعطى وعرضه و ف حال وجد مكان شاغرا على طول تلك
الحلقت نٌ )جم عٌ عناصر المصفوفة أصفار( رٌد التابع true وإحداث اٌت i,j
ف حال لم جٌد ف مصفوفة اللوح الخشب أصفارعلى التوال تكف لتوضع الشكل المطلوب
رٌد التابع ح نٌا false والاحداث اٌت سالبة)عشوائ ةٌ( i=-1 j=-1,
For i=0 to W-L1 do
For j=0 to H –L2 do
If(i<>0)&(j<>0)
i=i-1; j= j-1;
For k=i to i+L1 +1
For z=j to j+L2 +1
If (A[k,z]<> 0)
Break ;
If (A[k,z]<> 0)
)خروج من الحلقت نٌ السابقت نٌ بمجرد رؤ تٌه لخانة لا تحوي الصفر( Break;
X=i ; y=j;
Return true
)لم جٌد مكان للشكل ف المصفوفة ( X=-1 ; y=-1 ;
Retrun false;
اسم التابع
fullspace
المهمة ملئ خانات مكان الشكل ف مصفوفة اللوح الخشب برقم ما ...
رأس الاجرائ ةٌ
Void fullspace (x,y: int , val :int ,L1,L2 : int)
ح ثٌ L1,L2 أبعاد الشكل و X,Y هما إحداث اٌت خانة المصفوفة الت بٌدا عندها الشكل )وه الزاو ةٌ
ال سٌرى العلو ةٌ للشكل ( و val هو الرقم الذي نر دٌ أن نملأ خانات الت حٌجزها للشكل
5. تقر رٌ خوارزم اٌت وبنى المعط اٌت 1
4
)الخوارزمية(
ف حال كان val لا سٌاوي الصفر
إنشاء حلقت نٌ for تبدأ من الخانة الت إحداث اٌتها x,y وتمر على طول الشكل المعطى
وعرضه ونض فٌ إلى الطول والعرض +1 وذلك لك كٌون هناك مسافة ب نٌ الشكل
والشكل الذي لٌ هٌ ح ثٌ ستملأ هذه الخانة الإضاف ةٌ بالق مٌة ) 1( أما الخانات الأخرى -
فستملأ بالعدد val
وف حال كان val سٌاوي الصفر
فالمطلوب هو ملأ مكان الشكل بالعدد ) 0( أي استبعاد الشكل من اللوح الخشب وجعل
مكانه شاغرا
I if (val <> 0)
For i=x to x+ L1 + 1
For j=y to y+ L2 + 1
If ( i=x) or (i=x+L1+1)
A[x,y]=-1
Else If (j=y) or (j=y+L2+1)
A[x,y]=-1
Else
A[x,y]=key;
Else
For i=x to x+L1+1
For j=y to y+L2+1
A[x,y]=0
اسم التابع
lostwood
المهمة معرفة الهدر الذي سٌببه الشكل ذو الرقم
(num)
رأس الاجرائ ةٌ
double lostwood (num :int)
ح ثٌ num هو رقم الشكل الذي نر دٌ ان نعرف الهدر الذي سٌببه
ملاحظة : لكل شكل نسبة هدر خاصة ف هٌ كما ضٌاف إلى هدر الأشكال هدر خانات مصفوفة اللوح
الخشب الت بق تٌ شاغرة ولم تٌم ملأها بشكل مناسب )وه الخانات الت بق تٌ صفر ةٌ (
ف حال كان num دائرة فإن الهدر هو )مساحة المربع الذي حٌ طٌ بها مساحة الدائرة ( -
ف حال كان num مثلث متساوي الأضلاع) فإن الهدر هو مساحة المربع الذي حٌ طٌ بها
مساحة المثلث ( –
أما إذا كان الشكل مربع أو مستط لٌ فلا وٌجد نسبة هدر
If ( num include in circle list)
6. تقر رٌ خوارزم اٌت وبنى المعط اٌت 1
5
)الخوارزمية(
Lost=(2R*2R)-(2*3.14*R); (R: radius)
Else if (num include in triangle list )
Lost = (a*a) – (area triangle)
Else { form is square or rectangle }
Lost =0
Return lost;
اسم التابع
Try
رأس الاجرائ ةٌ
Try (A :array, i : int , lost : int)
ح ثٌ lost ه نسبة الهدر و i هو عداد للأشكال
المهمة قٌوم هذا التابع بإ جٌاد الحل الأمثل بح ثٌ تكون نسبة الهدر من الخشب أقل ما مٌكن
الاجرائ اٌت
المساعدة
<checkingspace> للتحقق من إمكان ةٌ ضم الشكل المعطى أم لا
,<fullspace> لملء خانات الشكل المطلوب ف اللوح الخشب برقم الشكل عند الضم ..وكذلك
ملء خانات الشكل ف اللوح الخشب بالرقم 0 عند الاستبعاد
<lostwood> لمعرفة الهدر الذي سٌببه لك شكل ) للوصول إلى الأمثل ةٌ (
شرط الاستدعاء أن تكون
i لا تساوي n ) لم تٌم اختبار جم عٌ الأشكال (
الخوارزم ةٌ
من أجل كل شكل من الأشكال المعطاة
إذا لم كٌن الشكل مستط لٌ:
اختبار شرط الضم إذا الضم مقبول ) 1 أن كٌون للشكل مكان ف اللوح -
الخشب 2 الشكل لم تٌم اختباره من قبل ( -
o تسج لٌ الشكل ) 1 تخز نٌه ف مصفوفة مساعدة تخزن الأشكال -
المقبولة 2 ملئ مكان الشكل ف مصفوفة اللوح الخشب برقم -
الشكل 3 إضافة الهدر الذي سٌببه الشكل إلى الهدر السابق - ] ف البدا ةٌ كٌون الهدر 0 [ 4 تسج لٌه ف المجموعة - S لضمان عدم
اختباره مرة أخرى (
o إذا لم كٌن أخر شكل ) i<>n ) Try
Try من أجل الشكل التال ) i+1 والهدر الجد دٌ (
o وإلا : )الوصول إلى أخر شكل (
إضافة خانات مصفوفة اللوح الخشب الت بق تٌ شاغرة
إلى نسبة الهدر )خانات الصفر (
أختبر الأمثل ةٌ : )مقارنة هدر هذه الحالة مع اقل هدر تم
الوصول إل هٌ وتسج لٌ مصفوفة الاشكال ذات الهدر الأقل
وتسج لٌ أقل هدر (
وإلا : ) الشكل هو مستط لٌ ( )هنا جٌب أن نناقش تموضع نٌ له شاقول وأفق (ً
من أجل كل موضع ) k=1 و k=2 : )
إذا (k=1) التموضع أفق :
7. تقر رٌ خوارزم اٌت وبنى المعط اٌت 1
6
o اختبار شرط الضم إذا الضم مقبول : )نفس السابق ولكن الشكل
س خٌتبر ف مصفوفة اللوح الخشب بوضعه الأفق لمعرفة إلا
كان له مكان أم لا (
تسج لٌ الشكل )نفس السابق مع استخدام مصفوفة
مساعدة أخرى direction لسج لٌ اتجاه المستط لٌ
)أفق أو شاقول ( (
إذا لم كٌن أخر شكل Try من أجل الشكل التال وإلا : اختبر الأمثل ةٌ )كما ف السابق (
إذا (k=2) التموضع شاقول : نفس إجرائ اٌت التموضع الأفق ولكن
الشكل س خٌتبر ف المصفوفة بوضعه الشاقول وتسج لٌ أتجاه المستط لٌ
شاقول اٌ
إلغاء التسج لٌ :
.1 إلغاء الشكل من مصفوفات التسج لٌ ) t و direction )
.2 إلغائه من S مجموعة الأشكال المضمومة
.3 إعادة ملء مكان الشكل ف مصفوفة اللوح الخشب بالأصفار
.4 إنقاص هدر الذي تسببه الشكل من مجموع الهدر المحسوب
Try( A, i , lost)
for j=1 to n
If (j not rectangle)
If(checkingspace(j.length , j.length , u ,v)&(j.num not in S{})) (S)
ه مجموعة تضم الأشكال الت تم أختبارها من قبل لضمان عدم اختبار الشكل مرت نٌ ضمن
الحالة الواحدة
T[i]=j
fullspace(u , v , j.num , j.length , j.length)
A(old)=A(new)
Lost= lost(old) + j.lostwood
S=S+{j}
If (i<n)
Try(A,i+1,lost)
Else
For i=0 to W do
For j=0 to H do
If (A[i,j]=0)
Lost++
If (minlost>lost)
8. تقر رٌ خوارزم اٌت وبنى المعط اٌت 1
7
Copy(T,opt)
Copy(dir,optdir)
minlost=lost
else { j is rectangle }
for k=1 to 2 do
if (k=1)
ww=checkingspace(j.h , j.w , u ,v )
if (ww)&(j not in S{})
T[i]=j
" dir[i]="'
fullspace(u , v , j.num , j.h , j.w)
A(old)=A(new)
else
ww=checkingspace(j.w , j.h , u , v)
if (ww)&(j not in S{})
T[i]=j
" dir[i]="'
fullspace(u , v , j.num , j.w , j.h)
A(old)=A(new)
Lost=lost(old)+lost
S=S+{j}
If (i<n)
Try(A,i+1,lost)
Else
For i=0 to W do
For j=0 to H do
If (A[i,j]=0)
Lost++
If (minlost>lost)
Copy(T,opt)
Copy(dir,optdir)
minlost=lost
S=S - {j}
T[i]=0 dir[i]='0'
I if ( j Is rectangle ) then if (k=1)
Fullspace(u , v , 0 , j.h , j.w)
9. تقر رٌ خوارزم اٌت وبنى المعط اٌت 1
8
Else
Fullspace(u , v , 0 , j.w j.h)
Else fullspace(u , v , 0 , j.length , j.length)
A(old)=A(new)
Lost=lost(old) – lost(j)
الطلب الثاني :
خوارزمية قص الخشب باقتصاد بحركة المنشار :
اسم التابع
Cut_shape
المهمة قص شكل مع نٌ ف Sx و Sy ..
رأس الاجرائ ةٌ
Cut_shape( Sx, Sy, A&)
التوص فٌ
)الخوارزمية
بالعربي(
اذا الشكل دائرة :
من نقطة البدء Sx,Sy) ( مرور على الاسطر 2*R
من نقطة البدء Sx,Sy) ( مرور على الاعمدة 2*R
A[i,j] =A[i,j] * -1 )اي جعل ق مٌ الشكل سالبة للدلالة على قصها (
اذا الشكل مثلث متساوي الاضلاع)حصرا حتى امكنن قص مربعه والا لن استط عٌ تغ رٌ خانات
المصفوفة( ) ح ثٌ كل خانة 1 سم مربع وحدة مساحة !!( :
من نقطة البدء Sx,Sy) ( مرور على الاسطر a
من نقطة البدء Sx,Sy) ( مرور على الاعمدة a
A[i,j] =A[i,j] * -1 )اي جعل ق مٌ الشكل سالبة للدلالة على قصها (
اذا الشكل مستط لٌ:
اذا كان باحد وضع اٌته بوضع تٌاه :
من نقطة البدء Sx,Sy) ( مرور على الاسطر 2*R
من نقطة البدء Sx,Sy) ( مرور على الاعمدة 2*R
A[i,j] =A[i,j] * -1 )اي جعل ق مٌ الشكل سالبة للدلالة على قصها (
الخوارزم ةٌ لا تختلف كث رٌا عن الخوارزم ةٌ اعلاه ! ...
اسم التابع
Saw_Cutting
رأس الاجرائ ةٌ مصفوفة الاشكال المتوضعة , مصفوفة النتائج
10. تقر رٌ خوارزم اٌت وبنى المعط اٌت 1
9
Saw_Cutting( A:array, T:array)
المهمة قص القطع المتوضعة بشكلها الامثل .ً.
مع المحافظة عل هٌا والاقتصاد من حركة المنشار ..
الاجرائ اٌت
المساعدة
Cut_shape()
لقص الشكل على اللوح ..
التوص فٌ
)الخوارزمية
بالعربي(
نبدا من النقطة 0,0
من اجل جم عٌ الاشكال:
قص الشكل ..
من اجل كل اتجااهات حركة المنشار من مكانه الحال :ً
اذا كان الاتجاه المختار مقبولا ..
مادام القسم الذي تٌحرك عل هٌ المنشار )مقبولا()لا ؤٌثر على اي شكل اخر(
احسب طول المسار .. اخطو خطوة اخرى
اذا كان )الطول المحسوب > من Min ( و) النقطة من اللوح مقبولة..)ف هٌا شكل فقط!!( (
الطول = Min
احفظ الاحداث اٌت الجد دٌة tx ty
خزن احداث اٌت النقطة الت تحقق المطلوب للمنشار tx ty ف مصفوفة T[count]
اجعل الاحداث اٌت tx ty النهائ نٌٌ هما Sx و sy
شرط الاستدعاء ان وٌجد اشكال !
توص فٌ
المتحولات
ساستخدم count عدادا للاشكال كلها للاعلام عن قصها جم عٌها..
وساستخدم مصفوفتان a={ -1,1,0,0,-1,1,-1,1} b={0,0,-1,1,-1,1,1,-1}
لاخذ كل الاتجاهات من كل نقطة بالاتجاهات الثمان ةٌ ..
A هو لوح الخشب ذو البعد نٌ H*W
N عدد الاشكال المتوضعة..
Sx , Sy الاحداث اٌت الت ابدء من عندها قص كل شكل
tx ,ty الاحداث اٌت للنقطة المثلى المطلوب التوجه ال هٌا
Length طول الطر قٌ... Minlength طول اقصر طر قٌ
K1 ,k2 عدادات
الخوارزم ةٌ
Saw_Cutting(& A:array, T:array)
begin
Sx=0; Sy=0; T[0].x=0; T[0].y=0; count=0;
While( count != N) do
Begin
Min=2*H;
Cut_shape(sx, sy, A) ; ( قص الشكل )
For i:=1 to 8 do (انشاء الاتجاهات )
Begin
K1=sx + a[i]; K2= sy+b[i]; length=0;
11. تقر رٌ خوارزم اٌت وبنى المعط اٌت 1
10
If(0<= k1<=H) & (0<= k2<= w) )اذا اول خطوة مقبولة(
begin
While( A[k1,k2]<0) & (0<= k1< H) & (0<= k2<W) مادامت النقاط
مقبول المرور عل هٌا
begin
length++; k1=k1+a[i]; k2=k2+b[i]
end;
if( length< Min) & (A[k1,k2]> 0) )اخت اٌر النقاط ذات
المسار الاقل (
min= length;
tx= sx+K1 ; ty =sy+k2;
end;
end;
T[ count] .x = tx; T[count ].y=ty; ) حفظ المسار الامثل لحركة المنشار بالاحداث اٌت
Sx=tx;
Sy=ty; )النقطة الجد دٌة للانطلاق(
End; (while);
End; (Saw);
ناتج هذه
الاجرائ ةٌ
محاكاة لعملية القص بطباعة A مصفوفة لوح الخشب..)الارقام السالبة عدا 1 هي المقصوصة( -
طباعة المصفوفة T لمعرفة نقاط الجهة الانسب لحركة المنشاربالترتيب..
للاقتصاد من حركته..
12. تقر رٌ خوارزم اٌت وبنى المعط اٌت 1
11 اختيار الحل الأمثل لتموضع قطع على لوح باستخدام
الخوارزمية الجينية :
genetic Algorithms
سبب اختيار هذه الخوارزمية :
تعد الخوارزم ةٌ الج نٌ ةٌ genetic Algorithms من التقن اٌت المهمة ف البحث العشوائ عن الحل الامثل , وه تمث لٌ
للاعتقاد السائد بأن الذكاء البشري خٌلق مع الأنسان و تٌم اكتسابه عن طر قٌ الوراثة بشكل كب رٌ فه محاكاة لعم لٌة التزاوج
ب نٌ الكائنات الح ةٌ من النوع نفسه معتمدا على مبدأ العالم دارو نٌ ف الاصطفاء الصبغ القائم على الاحتفاظ بالم زٌات
والصفات الج دٌة
المخطط :
13. تقر رٌ خوارزم اٌت وبنى المعط اٌت 1
12
تمثيل الاشكال:
تٌم تمث لٌ الاشكال بمجموعة من الخلا اٌ المتجاورة المربعة
تشك لٌ الكروزم :
التصم مٌ كٌون بتوضع الاشكال على لوح الخشب المتمثل بمصفوفة تكون جم عٌ خلا اٌه تحمل الرقم (0 ) و تٌم تعد لٌ الرقم
حسب الى ) 1.2.3.4…. ( ح ثٌ كل رقم يمثل شكل
شرح الاجرائيات :
-1 التحر كٌ :
التحر كٌ وإعادة التموضع اما على شكل واحد ,
او التبد لٌ موضع ب نٌ شكل نٌ
على الشكل الواحد:
تٌم تحر كٌ الاشكال ضمن الكروزم بطرقت نٌ
اما نقل او تدو رٌ
* النقل :
تٌم نقل الشكل من المكان الذي حٌتله من الركوزم الى الموضع الجد دٌ من نفس الكروزم بشكل عشوائ
14. تقر رٌ خوارزم اٌت وبنى المعط اٌت 1
13
* تدو رٌ :
تٌم تدو رٌ الشكل من احدى نقاطه 90 درجة
التبديل بين موضعي شكلين :
ف حال ان احد الشكل نٌ لا تٌسع ف مكان الاخر تٌم محاولة تغ رٌ موضع الشكل حتى تٌناسب مع الموضع الجد دٌ
عن طر قٌ تدو رٌه من احد نقاطه 90 درجة بح ثٌ لا تٌعدى على حدود شكل اخر ضمن المصفوفة
2 التزاوج )العبور والاختلاط(: - Crossover
تٌم تول دٌ ج لٌ جد دٌ عبر تلاق زوج نٌ عشوائ نٌٌ من الج لٌ الابتدائ بعمل ةٌ Crossover
هذه العم لٌة تنشئ ج لٌ جد دٌ عن طر قٌ جمع صفات مع نٌة من الاب الاول و الاب الثان .
الشرح:
والد نٌ من تٌم اخت اٌرهم عشوائ اٌ و سٌمان parent 1 & parent 2
من كل اب تٌم تحد دٌ اربع نقط تختار عشوائ اٌ لتشكل مستط لٌ من ضمن الكروزم الاب ل مٌثل منطقة العبور
)المنطقة المعلمة بالخط الاسود العريض في المثال parent1 )
بعد عمل ةٌ التحد دٌ تٌم تش كٌ المستط لٌ المنشئ اذا كان احد الاشكال المحددة ضمن المنطقة لد هٌ خلا اٌ لم تنضم ضمن
منطقة crossover حتى تٌم ضم هذه الخلا اٌ ا ضٌا لمنطقة crossover )الشكل رقم 1 ضمن parent1 )
من اجل الولد الاول first child كل الاشكال الموجودة ضمن منطقة crossover تٌم تور ثٌها من ال parent 1 ومن اجل باق الاشكال المتبق ةٌ الت لم تشمل ف منطقة crossover الخاصة parent1
تجري محاولة ضم هذه الاشكال من منطقة crossover الخاصة ب Parent 2 ف محاولة لضم تلك الاشكال
ضمنها
)توريث الشكل رقم 3 من parent 2 الى child 1 )
فاذا لم كٌن هناك متسع ف من منطقة crossover ف child تٌم وضع الاشكال المتبق ةٌ بشكل عشوائ ضمن
15. تقر رٌ خوارزم اٌت وبنى المعط اٌت 1
14
المصفوفة الخاصة ب child 1 )الشكل رقم 4 & 5 )
وكذلك الامر بالنسبة ل child 2
3 الضغط - Compaction :
تقوم هذه العمل ةٌ بز اٌدة فاعل ةٌ الخوارزم ةٌ الج نٌ ةٌ
ح ثٌ تقوم بإعادة تموضع وضغط الاشكال ف الابناء الناتجة من عمل ةٌ crossover اقرب ما مٌكن الى بعضها
ح ثٌ تقوم بتقر بٌهم بازلة الخلا اٌ الفارغة الت تحمل الرقم ) 0( ب نٌ الاشكال على المصفوفة
وجرهم الى زاو ةٌ مع نٌة من زوا اٌ اللوح )الكروزم ( حتى تٌم التصاق كل الاشكال ببعضها
16. تقر رٌ خوارزم اٌت وبنى المعط اٌت 1
15
تقوم العملية على مبدأ :
تحد دٌ الشكل الذي قٌع ف اسفل سٌار الكروزم وادنى اقصى left-most and bottom-most object
ومن ثم محاولة رفع كل الاشكال الباق ةٌ (shift ) الى ال سٌار الاعلى left-up لجعل كل الاشكال تلتصق ببعضها
ف تلك المرحلة عٌاد تحر كٌ كتلة الاشكال الملتصقة ببعضها الى اسفل وادنى ال سٌار المحدد لتصبح كل الاشكال -
ملتصقة ببعضها
4 حساب اللياقة : -
ان شكل الناتج تٌم حساب مدى مناسبته عن طر قٌ جمع معامل نٌ f1 & f2 f1 مٌثل المساحة المطلوبة الت تحتجزها الاشكال وكم ةٌ الهدر
f2 مٌثل الوقت المستغرق لعمل ةٌ القطع .
وتسج لٌ النت جٌة ف مصفوفة .
تتم هذه العمليات الاربع في كل انشاء لجيل جديد
17. تقر رٌ خوارزم اٌت وبنى المعط اٌت 1
16
ملاحظة:
تتم هذه العلم ةٌ لأكثر من ج لٌ ..
ح ثٌ كلما زاد عدد الاجيال كلما زاد دقة الحل ولكن كلما زادت تكلفة الخوارزمية ..
ان شرط توقف هذه الخوارزمية في هذه الحالة يتحدد بعاملين :
1 انتهاء الوقت المخصص للعمل ةٌ –
2 وصل لرقم الج لٌ المراد وح ثٌ نحدد قبل الشروع ف العمل ةٌ كم مرات التزاوج -
مثلا 12 مرة
مراجع :
http://scholar.google.com/scholar_url?hl=ar&q=http://www.researchgate.net/publication/2252-39357_Twodimensional_packing_problems_using_genetic_algorithms/file/32bfe50cac118f0d90.pdf&sa=X&scisig=AAGBfm2nmXwX4mEcVZcgZuP9cl72RYDv8g&oi=scholarr
http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=10&cad=rja&ved=0CFgQFjAJ&url=http%3A%2F%2Fwww.damascusuniversity.edu.sy%2Fmag%2Feng%2Fimages%2FstoriesUruAGpGjhgeqioH4Dg&usg=AFQjCNGPMP8_V1KH7qTxR1BVnd%2F7%2520bahboh.pdf&ei=fePGNOZSmXkA&sig2=qTtEMc0LjKo5FGr3pCBgYg&bvm=bv.58187178,d.ZG4