SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
Algorithms and Data Structure 
Optimal algorithm to cut wood AlgorithmseneticG 
Kinan Keshkeh – Ahmad Mukashati – AbdAlRahman AlHomsi 
Damascus University 
Faculty of Information Technology Engineering 
2014
تقر رٌ خوارزم اٌت وبنى المعط اٌت 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;
تقر رٌ خوارزم اٌت وبنى المعط اٌت 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 عدا ذلك
تقر رٌ خوارزم اٌت وبنى المعط اٌت 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 هو الرقم الذي نر دٌ أن نملأ خانات الت حٌجزها للشكل
تقر رٌ خوارزم اٌت وبنى المعط اٌت 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)
تقر رٌ خوارزم اٌت وبنى المعط اٌت 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) التموضع أفق :
تقر رٌ خوارزم اٌت وبنى المعط اٌت 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)
تقر رٌ خوارزم اٌت وبنى المعط اٌت 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)
تقر رٌ خوارزم اٌت وبنى المعط اٌت 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 
رأس الاجرائ ةٌ مصفوفة الاشكال المتوضعة , مصفوفة النتائج
تقر رٌ خوارزم اٌت وبنى المعط اٌت 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;
تقر رٌ خوارزم اٌت وبنى المعط اٌت 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 لمعرفة نقاط الجهة الانسب لحركة المنشاربالترتيب.. 
للاقتصاد من حركته..
تقر رٌ خوارزم اٌت وبنى المعط اٌت 1 
11 اختيار الحل الأمثل لتموضع قطع على لوح باستخدام 
الخوارزمية الجينية : 
genetic Algorithms 
سبب اختيار هذه الخوارزمية : 
تعد الخوارزم ةٌ الج نٌ ةٌ genetic Algorithms من التقن اٌت المهمة ف البحث العشوائ عن الحل الامثل , وه تمث لٌ 
للاعتقاد السائد بأن الذكاء البشري خٌلق مع الأنسان و تٌم اكتسابه عن طر قٌ الوراثة بشكل كب رٌ فه محاكاة لعم لٌة التزاوج 
ب نٌ الكائنات الح ةٌ من النوع نفسه معتمدا على مبدأ العالم دارو نٌ ف الاصطفاء الصبغ القائم على الاحتفاظ بالم زٌات 
والصفات الج دٌة 
المخطط :
تقر رٌ خوارزم اٌت وبنى المعط اٌت 1 
12 
تمثيل الاشكال: 
تٌم تمث لٌ الاشكال بمجموعة من الخلا اٌ المتجاورة المربعة 
تشك لٌ الكروزم : 
التصم مٌ كٌون بتوضع الاشكال على لوح الخشب المتمثل بمصفوفة تكون جم عٌ خلا اٌه تحمل الرقم (0 ) و تٌم تعد لٌ الرقم 
حسب الى ) 1.2.3.4…. ( ح ثٌ كل رقم يمثل شكل 
شرح الاجرائيات : 
-1 التحر كٌ : 
التحر كٌ وإعادة التموضع اما على شكل واحد , 
او التبد لٌ موضع ب نٌ شكل نٌ 
على الشكل الواحد: 
تٌم تحر كٌ الاشكال ضمن الكروزم بطرقت نٌ 
اما نقل او تدو رٌ 
* النقل : 
تٌم نقل الشكل من المكان الذي حٌتله من الركوزم الى الموضع الجد دٌ من نفس الكروزم بشكل عشوائ
تقر رٌ خوارزم اٌت وبنى المعط اٌت 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 تٌم وضع الاشكال المتبق ةٌ بشكل عشوائ ضمن
تقر رٌ خوارزم اٌت وبنى المعط اٌت 1 
14 
المصفوفة الخاصة ب child 1 )الشكل رقم 4 & 5 ) 
وكذلك الامر بالنسبة ل child 2 
3 الضغط - Compaction : 
تقوم هذه العمل ةٌ بز اٌدة فاعل ةٌ الخوارزم ةٌ الج نٌ ةٌ 
ح ثٌ تقوم بإعادة تموضع وضغط الاشكال ف الابناء الناتجة من عمل ةٌ crossover اقرب ما مٌكن الى بعضها 
ح ثٌ تقوم بتقر بٌهم بازلة الخلا اٌ الفارغة الت تحمل الرقم ) 0( ب نٌ الاشكال على المصفوفة 
وجرهم الى زاو ةٌ مع نٌة من زوا اٌ اللوح )الكروزم ( حتى تٌم التصاق كل الاشكال ببعضها
تقر رٌ خوارزم اٌت وبنى المعط اٌت 1 
15 
تقوم العملية على مبدأ : 
تحد دٌ الشكل الذي قٌع ف اسفل سٌار الكروزم وادنى اقصى left-most and bottom-most object 
ومن ثم محاولة رفع كل الاشكال الباق ةٌ (shift ) الى ال سٌار الاعلى left-up لجعل كل الاشكال تلتصق ببعضها 
ف تلك المرحلة عٌاد تحر كٌ كتلة الاشكال الملتصقة ببعضها الى اسفل وادنى ال سٌار المحدد لتصبح كل الاشكال - 
ملتصقة ببعضها 
4 حساب اللياقة : - 
ان شكل الناتج تٌم حساب مدى مناسبته عن طر قٌ جمع معامل نٌ f1 & f2 f1 مٌثل المساحة المطلوبة الت تحتجزها الاشكال وكم ةٌ الهدر 
f2 مٌثل الوقت المستغرق لعمل ةٌ القطع . 
وتسج لٌ النت جٌة ف مصفوفة . 
تتم هذه العمليات الاربع في كل انشاء لجيل جديد
تقر رٌ خوارزم اٌت وبنى المعط اٌت 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

Contenu connexe

Tendances

ملزمة الرياضيات للصف الثالث متوسط
ملزمة الرياضيات للصف الثالث متوسطملزمة الرياضيات للصف الثالث متوسط
ملزمة الرياضيات للصف الثالث متوسطAhmed Mahdi
 
استعمال خاصية التوزيع
استعمال خاصية التوزيعاستعمال خاصية التوزيع
استعمال خاصية التوزيعng1234567ng
 
ملزمة رياضيات سادس علمي _ العراق
 ملزمة رياضيات سادس علمي _ العراق ملزمة رياضيات سادس علمي _ العراق
ملزمة رياضيات سادس علمي _ العراقAhmed Mahdi
 
مراجعة مركزة -قصي هاشم 2015
مراجعة مركزة -قصي هاشم 2015مراجعة مركزة -قصي هاشم 2015
مراجعة مركزة -قصي هاشم 2015Online
 
المعادلات التربيعية المربعات الكاملة
المعادلات التربيعية المربعات الكاملةالمعادلات التربيعية المربعات الكاملة
المعادلات التربيعية المربعات الكاملةnoojynoojyyynn
 
ملزمة الرياضيات السادس العلمي2017 - القطوع المخروطية
ملزمة الرياضيات السادس العلمي2017  - القطوع المخروطيةملزمة الرياضيات السادس العلمي2017  - القطوع المخروطية
ملزمة الرياضيات السادس العلمي2017 - القطوع المخروطيةAhmed Mahdi
 
ملزمة الرياضيات السادس العلمي التطبيقي الفصل السادس الهندسة الفضائية 2017 ...
ملزمة الرياضيات السادس العلمي التطبيقي الفصل السادس الهندسة الفضائية  2017   ...ملزمة الرياضيات السادس العلمي التطبيقي الفصل السادس الهندسة الفضائية  2017   ...
ملزمة الرياضيات السادس العلمي التطبيقي الفصل السادس الهندسة الفضائية 2017 ...moeiraqi.org
 
ملزمة الرياضيات السادس العلمي الأحيائي الفصل السادس الهندسة الفضائية 2017 الأ...
ملزمة الرياضيات السادس العلمي الأحيائي الفصل السادس الهندسة الفضائية 2017 الأ...ملزمة الرياضيات السادس العلمي الأحيائي الفصل السادس الهندسة الفضائية 2017 الأ...
ملزمة الرياضيات السادس العلمي الأحيائي الفصل السادس الهندسة الفضائية 2017 الأ...moeiraqi.org
 
عمل طالبات الرياضيات المصفوفات
عمل طالبات الرياضيات المصفوفاتعمل طالبات الرياضيات المصفوفات
عمل طالبات الرياضيات المصفوفاتnajla saleh
 
موقع ملزمتي - مراجعة ليلة الامتحان جبر للصف الثالث الإعدادي الترم الاول
موقع ملزمتي - مراجعة ليلة الامتحان جبر للصف الثالث الإعدادي الترم الاولموقع ملزمتي - مراجعة ليلة الامتحان جبر للصف الثالث الإعدادي الترم الاول
موقع ملزمتي - مراجعة ليلة الامتحان جبر للصف الثالث الإعدادي الترم الاولملزمتي
 
ملزمة الرياضيات السادس العلمي التطبيقي الفصل الثاني القطوع المخروطية 2017 ...
ملزمة الرياضيات السادس العلمي التطبيقي الفصل الثاني القطوع المخروطية  2017   ...ملزمة الرياضيات السادس العلمي التطبيقي الفصل الثاني القطوع المخروطية  2017   ...
ملزمة الرياضيات السادس العلمي التطبيقي الفصل الثاني القطوع المخروطية 2017 ...moeiraqi.org
 
حل نظام من معادلتين خطيتين بيانيا
حل نظام من معادلتين خطيتين بيانياحل نظام من معادلتين خطيتين بيانيا
حل نظام من معادلتين خطيتين بيانياnoojy66666
 
الحدوديات جدع مشترك علمي
الحدوديات جدع مشترك علميالحدوديات جدع مشترك علمي
الحدوديات جدع مشترك علميAHMED ENNAJI
 

Tendances (17)

ملزمة الرياضيات للصف الثالث متوسط
ملزمة الرياضيات للصف الثالث متوسطملزمة الرياضيات للصف الثالث متوسط
ملزمة الرياضيات للصف الثالث متوسط
 
استعمال خاصية التوزيع
استعمال خاصية التوزيعاستعمال خاصية التوزيع
استعمال خاصية التوزيع
 
ملزمة رياضيات سادس علمي _ العراق
 ملزمة رياضيات سادس علمي _ العراق ملزمة رياضيات سادس علمي _ العراق
ملزمة رياضيات سادس علمي _ العراق
 
مراجعة مركزة -قصي هاشم 2015
مراجعة مركزة -قصي هاشم 2015مراجعة مركزة -قصي هاشم 2015
مراجعة مركزة -قصي هاشم 2015
 
المعادلات التربيعية المربعات الكاملة
المعادلات التربيعية المربعات الكاملةالمعادلات التربيعية المربعات الكاملة
المعادلات التربيعية المربعات الكاملة
 
ملزمة الرياضيات السادس العلمي2017 - القطوع المخروطية
ملزمة الرياضيات السادس العلمي2017  - القطوع المخروطيةملزمة الرياضيات السادس العلمي2017  - القطوع المخروطية
ملزمة الرياضيات السادس العلمي2017 - القطوع المخروطية
 
ملزمة الرياضيات السادس العلمي التطبيقي الفصل السادس الهندسة الفضائية 2017 ...
ملزمة الرياضيات السادس العلمي التطبيقي الفصل السادس الهندسة الفضائية  2017   ...ملزمة الرياضيات السادس العلمي التطبيقي الفصل السادس الهندسة الفضائية  2017   ...
ملزمة الرياضيات السادس العلمي التطبيقي الفصل السادس الهندسة الفضائية 2017 ...
 
ملزمة الرياضيات السادس العلمي الأحيائي الفصل السادس الهندسة الفضائية 2017 الأ...
ملزمة الرياضيات السادس العلمي الأحيائي الفصل السادس الهندسة الفضائية 2017 الأ...ملزمة الرياضيات السادس العلمي الأحيائي الفصل السادس الهندسة الفضائية 2017 الأ...
ملزمة الرياضيات السادس العلمي الأحيائي الفصل السادس الهندسة الفضائية 2017 الأ...
 
1com3mbachir
1com3mbachir1com3mbachir
1com3mbachir
 
عمل طالبات الرياضيات المصفوفات
عمل طالبات الرياضيات المصفوفاتعمل طالبات الرياضيات المصفوفات
عمل طالبات الرياضيات المصفوفات
 
M.f ammar
M.f  ammarM.f  ammar
M.f ammar
 
الزمرة
الزمرةالزمرة
الزمرة
 
2012
20122012
2012
 
موقع ملزمتي - مراجعة ليلة الامتحان جبر للصف الثالث الإعدادي الترم الاول
موقع ملزمتي - مراجعة ليلة الامتحان جبر للصف الثالث الإعدادي الترم الاولموقع ملزمتي - مراجعة ليلة الامتحان جبر للصف الثالث الإعدادي الترم الاول
موقع ملزمتي - مراجعة ليلة الامتحان جبر للصف الثالث الإعدادي الترم الاول
 
ملزمة الرياضيات السادس العلمي التطبيقي الفصل الثاني القطوع المخروطية 2017 ...
ملزمة الرياضيات السادس العلمي التطبيقي الفصل الثاني القطوع المخروطية  2017   ...ملزمة الرياضيات السادس العلمي التطبيقي الفصل الثاني القطوع المخروطية  2017   ...
ملزمة الرياضيات السادس العلمي التطبيقي الفصل الثاني القطوع المخروطية 2017 ...
 
حل نظام من معادلتين خطيتين بيانيا
حل نظام من معادلتين خطيتين بيانياحل نظام من معادلتين خطيتين بيانيا
حل نظام من معادلتين خطيتين بيانيا
 
الحدوديات جدع مشترك علمي
الحدوديات جدع مشترك علميالحدوديات جدع مشترك علمي
الحدوديات جدع مشترك علمي
 

En vedette

Toni leslie james
Toni leslie jamesToni leslie james
Toni leslie jamesmnm2g
 
A NEW PROPOSED SYMMETRIC KEY ALGORITHM FOR MODERN CRYPTOGRAPHIC
A NEW PROPOSED SYMMETRIC KEY ALGORITHM FOR MODERN CRYPTOGRAPHICA NEW PROPOSED SYMMETRIC KEY ALGORITHM FOR MODERN CRYPTOGRAPHIC
A NEW PROPOSED SYMMETRIC KEY ALGORITHM FOR MODERN CRYPTOGRAPHICijsrd.com
 
8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )
8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )
8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )Tarun Khaneja
 
Idea (international data encryption algorithm)
Idea (international data encryption algorithm)Idea (international data encryption algorithm)
Idea (international data encryption algorithm)Arofiah Hidayati
 
Idea(international data encryption algorithm)
Idea(international data encryption algorithm)Idea(international data encryption algorithm)
Idea(international data encryption algorithm)SAurabh PRajapati
 
Cipher techniques
Cipher techniquesCipher techniques
Cipher techniquesMohd Arif
 

En vedette (16)

Toni leslie james
Toni leslie jamesToni leslie james
Toni leslie james
 
A NEW PROPOSED SYMMETRIC KEY ALGORITHM FOR MODERN CRYPTOGRAPHIC
A NEW PROPOSED SYMMETRIC KEY ALGORITHM FOR MODERN CRYPTOGRAPHICA NEW PROPOSED SYMMETRIC KEY ALGORITHM FOR MODERN CRYPTOGRAPHIC
A NEW PROPOSED SYMMETRIC KEY ALGORITHM FOR MODERN CRYPTOGRAPHIC
 
Lru Algorithm
Lru AlgorithmLru Algorithm
Lru Algorithm
 
Elementry Cryptography
Elementry CryptographyElementry Cryptography
Elementry Cryptography
 
Fundamentals of cryptography
Fundamentals of cryptographyFundamentals of cryptography
Fundamentals of cryptography
 
8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )
8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )
8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )
 
Idea (international data encryption algorithm)
Idea (international data encryption algorithm)Idea (international data encryption algorithm)
Idea (international data encryption algorithm)
 
Introduction to security
Introduction to securityIntroduction to security
Introduction to security
 
Caesar cipher
Caesar cipherCaesar cipher
Caesar cipher
 
Network Security
Network SecurityNetwork Security
Network Security
 
Idea(international data encryption algorithm)
Idea(international data encryption algorithm)Idea(international data encryption algorithm)
Idea(international data encryption algorithm)
 
Cipher techniques
Cipher techniquesCipher techniques
Cipher techniques
 
Cryptography
CryptographyCryptography
Cryptography
 
Cryptography
CryptographyCryptography
Cryptography
 
Cryptography
CryptographyCryptography
Cryptography
 
Cryptography.ppt
Cryptography.pptCryptography.ppt
Cryptography.ppt
 

Similaire à GeneticAlgorithms_AND_CuttingWoodAlgorithm

مراجعة الفصل الثامن
مراجعة الفصل الثامنمراجعة الفصل الثامن
مراجعة الفصل الثامنng1234567ng
 
المعادلات التربيعية المربعات الكاملة
المعادلات التربيعية المربعات الكاملةالمعادلات التربيعية المربعات الكاملة
المعادلات التربيعية المربعات الكاملةng1234567ng
 
ضرب وحيدة حد في كثيرة
ضرب وحيدة حد في كثيرةضرب وحيدة حد في كثيرة
ضرب وحيدة حد في كثيرةnoojy66666
 
عاشر بوربوينت
عاشر بوربوينتعاشر بوربوينت
عاشر بوربوينتIkhlasyosef
 
رسم الاقترانات المثلثية
رسم الاقترانات المثلثيةرسم الاقترانات المثلثية
رسم الاقترانات المثلثيةIkhlasyosef
 
c# المحاضره 4 @ 5 في
 c# المحاضره 4  @  5  في    c# المحاضره 4  @  5  في
c# المحاضره 4 @ 5 في nermeenelhamy1
 
الرياضيات للسادس الاحيائي - الدكتور أنس الجبوري.pdf
الرياضيات للسادس الاحيائي - الدكتور أنس الجبوري.pdfالرياضيات للسادس الاحيائي - الدكتور أنس الجبوري.pdf
الرياضيات للسادس الاحيائي - الدكتور أنس الجبوري.pdfanasKhalaf4
 
الرياضيات للثالث المتوسط - الدكتور أنس الجبوري.pdf
الرياضيات للثالث المتوسط - الدكتور أنس الجبوري.pdfالرياضيات للثالث المتوسط - الدكتور أنس الجبوري.pdf
الرياضيات للثالث المتوسط - الدكتور أنس الجبوري.pdfanasKhalaf4
 
رياضيات التاسع
رياضيات التاسعرياضيات التاسع
رياضيات التاسعRaneem Khsaweneh
 
Math 6th-primary-2nd-term- (2)
Math 6th-primary-2nd-term- (2)Math 6th-primary-2nd-term- (2)
Math 6th-primary-2nd-term- (2)khawagah
 
موقع ملزمتي - ملخص رياضة الصف الثالث الإعدادي الفصل الدراسي الثاني
موقع ملزمتي - ملخص رياضة الصف الثالث الإعدادي الفصل الدراسي الثانيموقع ملزمتي - ملخص رياضة الصف الثالث الإعدادي الفصل الدراسي الثاني
موقع ملزمتي - ملخص رياضة الصف الثالث الإعدادي الفصل الدراسي الثانيملزمتي
 
الامتحان التجريبي دورة ماي 2009 ( الرياضيات)
الامتحان التجريبي دورة ماي 2009  ( الرياضيات)الامتحان التجريبي دورة ماي 2009  ( الرياضيات)
الامتحان التجريبي دورة ماي 2009 ( الرياضيات)math44
 
ملزمة الرياضيات - السادس العلمي
ملزمة الرياضيات - السادس العلمي   ملزمة الرياضيات - السادس العلمي
ملزمة الرياضيات - السادس العلمي Ahmed Mahdi
 

Similaire à GeneticAlgorithms_AND_CuttingWoodAlgorithm (19)

مراجعة الفصل الثامن
مراجعة الفصل الثامنمراجعة الفصل الثامن
مراجعة الفصل الثامن
 
المعادلات التربيعية المربعات الكاملة
المعادلات التربيعية المربعات الكاملةالمعادلات التربيعية المربعات الكاملة
المعادلات التربيعية المربعات الكاملة
 
ضرب وحيدة حد في كثيرة
ضرب وحيدة حد في كثيرةضرب وحيدة حد في كثيرة
ضرب وحيدة حد في كثيرة
 
عاشر بوربوينت
عاشر بوربوينتعاشر بوربوينت
عاشر بوربوينت
 
رسم الاقترانات المثلثية
رسم الاقترانات المثلثيةرسم الاقترانات المثلثية
رسم الاقترانات المثلثية
 
c# المحاضره 4 @ 5 في
 c# المحاضره 4  @  5  في    c# المحاضره 4  @  5  في
c# المحاضره 4 @ 5 في
 
الرياضيات للسادس الاحيائي - الدكتور أنس الجبوري.pdf
الرياضيات للسادس الاحيائي - الدكتور أنس الجبوري.pdfالرياضيات للسادس الاحيائي - الدكتور أنس الجبوري.pdf
الرياضيات للسادس الاحيائي - الدكتور أنس الجبوري.pdf
 
الدوال
الدوالالدوال
الدوال
 
1com
1com1com
1com
 
الرياضيات للثالث المتوسط - الدكتور أنس الجبوري.pdf
الرياضيات للثالث المتوسط - الدكتور أنس الجبوري.pdfالرياضيات للثالث المتوسط - الدكتور أنس الجبوري.pdf
الرياضيات للثالث المتوسط - الدكتور أنس الجبوري.pdf
 
رياضيات التاسع
رياضيات التاسعرياضيات التاسع
رياضيات التاسع
 
3- Functions
3-  Functions3-  Functions
3- Functions
 
Math 6th-primary-2nd-term- (2)
Math 6th-primary-2nd-term- (2)Math 6th-primary-2nd-term- (2)
Math 6th-primary-2nd-term- (2)
 
موقع ملزمتي - ملخص رياضة الصف الثالث الإعدادي الفصل الدراسي الثاني
موقع ملزمتي - ملخص رياضة الصف الثالث الإعدادي الفصل الدراسي الثانيموقع ملزمتي - ملخص رياضة الصف الثالث الإعدادي الفصل الدراسي الثاني
موقع ملزمتي - ملخص رياضة الصف الثالث الإعدادي الفصل الدراسي الثاني
 
Automata 1
Automata 1Automata 1
Automata 1
 
الامتحان التجريبي دورة ماي 2009 ( الرياضيات)
الامتحان التجريبي دورة ماي 2009  ( الرياضيات)الامتحان التجريبي دورة ماي 2009  ( الرياضيات)
الامتحان التجريبي دورة ماي 2009 ( الرياضيات)
 
ملزمة الرياضيات - السادس العلمي
ملزمة الرياضيات - السادس العلمي   ملزمة الرياضيات - السادس العلمي
ملزمة الرياضيات - السادس العلمي
 
2009rat
2009rat2009rat
2009rat
 
جبر 1ث ع ف1
جبر 1ث ع ف1جبر 1ث ع ف1
جبر 1ث ع ف1
 

Plus de kinan keshkeh

10 Little Tricks to Get Your Class’s Attention (and Hold It)
10 Little Tricks to Get Your  Class’s Attention (and Hold It)10 Little Tricks to Get Your  Class’s Attention (and Hold It)
10 Little Tricks to Get Your Class’s Attention (and Hold It)kinan keshkeh
 
Simpson and lagranje dalambair math methods
Simpson and lagranje dalambair math methods Simpson and lagranje dalambair math methods
Simpson and lagranje dalambair math methods kinan keshkeh
 
Shapes and calculate (area and contour) / C++ oop concept
Shapes and calculate (area and contour) / C++ oop conceptShapes and calculate (area and contour) / C++ oop concept
Shapes and calculate (area and contour) / C++ oop conceptkinan keshkeh
 
Shapes and calculate (area and contour) / C++ oop concept
Shapes and calculate (area and contour) / C++ oop conceptShapes and calculate (area and contour) / C++ oop concept
Shapes and calculate (area and contour) / C++ oop conceptkinan keshkeh
 
Algorithm in discovering and correcting words errors in a dictionary or any w...
Algorithm in discovering and correcting words errors in a dictionary or any w...Algorithm in discovering and correcting words errors in a dictionary or any w...
Algorithm in discovering and correcting words errors in a dictionary or any w...kinan keshkeh
 
2Bytesprog2 course_2014_c9_graph
2Bytesprog2 course_2014_c9_graph2Bytesprog2 course_2014_c9_graph
2Bytesprog2 course_2014_c9_graphkinan keshkeh
 
2Bytesprog2 course_2014_c8_units
2Bytesprog2 course_2014_c8_units2Bytesprog2 course_2014_c8_units
2Bytesprog2 course_2014_c8_unitskinan keshkeh
 
2Bytesprog2 course_2014_c7_double_lists
2Bytesprog2 course_2014_c7_double_lists2Bytesprog2 course_2014_c7_double_lists
2Bytesprog2 course_2014_c7_double_listskinan keshkeh
 
2Bytesprog2 course_2014_c6_single linked list
2Bytesprog2 course_2014_c6_single linked list2Bytesprog2 course_2014_c6_single linked list
2Bytesprog2 course_2014_c6_single linked listkinan keshkeh
 
2Bytesprog2 course_2014_c5_pointers
2Bytesprog2 course_2014_c5_pointers2Bytesprog2 course_2014_c5_pointers
2Bytesprog2 course_2014_c5_pointerskinan keshkeh
 
2Bytesprog2 course_2014_c4_binaryfiles
2Bytesprog2 course_2014_c4_binaryfiles2Bytesprog2 course_2014_c4_binaryfiles
2Bytesprog2 course_2014_c4_binaryfileskinan keshkeh
 
2Bytesprog2 course_2014_c3_txtfiles
2Bytesprog2 course_2014_c3_txtfiles2Bytesprog2 course_2014_c3_txtfiles
2Bytesprog2 course_2014_c3_txtfileskinan keshkeh
 
2Bytesprog2 course_2014_c2_records
2Bytesprog2 course_2014_c2_records2Bytesprog2 course_2014_c2_records
2Bytesprog2 course_2014_c2_recordskinan keshkeh
 
2Bytesprog2 course_2014_c1_sets
2Bytesprog2 course_2014_c1_sets2Bytesprog2 course_2014_c1_sets
2Bytesprog2 course_2014_c1_setskinan keshkeh
 
2Bytesprog2 course_2014_c1_sets
2Bytesprog2 course_2014_c1_sets2Bytesprog2 course_2014_c1_sets
2Bytesprog2 course_2014_c1_setskinan keshkeh
 
2Bytesprog2 course_2014_c1_sets
2Bytesprog2 course_2014_c1_sets2Bytesprog2 course_2014_c1_sets
2Bytesprog2 course_2014_c1_setskinan keshkeh
 
2Bytesprog2 course_2014_c1_sets
2Bytesprog2 course_2014_c1_sets2Bytesprog2 course_2014_c1_sets
2Bytesprog2 course_2014_c1_setskinan keshkeh
 
2 BytesC++ course_2014_c13_ templates
2 BytesC++ course_2014_c13_ templates2 BytesC++ course_2014_c13_ templates
2 BytesC++ course_2014_c13_ templateskinan keshkeh
 
2 BytesC++ course_2014_c12_ polymorphism
2 BytesC++ course_2014_c12_ polymorphism2 BytesC++ course_2014_c12_ polymorphism
2 BytesC++ course_2014_c12_ polymorphismkinan keshkeh
 
2 BytesC++ course_2014_c11_ inheritance
2 BytesC++ course_2014_c11_ inheritance2 BytesC++ course_2014_c11_ inheritance
2 BytesC++ course_2014_c11_ inheritancekinan keshkeh
 

Plus de kinan keshkeh (20)

10 Little Tricks to Get Your Class’s Attention (and Hold It)
10 Little Tricks to Get Your  Class’s Attention (and Hold It)10 Little Tricks to Get Your  Class’s Attention (and Hold It)
10 Little Tricks to Get Your Class’s Attention (and Hold It)
 
Simpson and lagranje dalambair math methods
Simpson and lagranje dalambair math methods Simpson and lagranje dalambair math methods
Simpson and lagranje dalambair math methods
 
Shapes and calculate (area and contour) / C++ oop concept
Shapes and calculate (area and contour) / C++ oop conceptShapes and calculate (area and contour) / C++ oop concept
Shapes and calculate (area and contour) / C++ oop concept
 
Shapes and calculate (area and contour) / C++ oop concept
Shapes and calculate (area and contour) / C++ oop conceptShapes and calculate (area and contour) / C++ oop concept
Shapes and calculate (area and contour) / C++ oop concept
 
Algorithm in discovering and correcting words errors in a dictionary or any w...
Algorithm in discovering and correcting words errors in a dictionary or any w...Algorithm in discovering and correcting words errors in a dictionary or any w...
Algorithm in discovering and correcting words errors in a dictionary or any w...
 
2Bytesprog2 course_2014_c9_graph
2Bytesprog2 course_2014_c9_graph2Bytesprog2 course_2014_c9_graph
2Bytesprog2 course_2014_c9_graph
 
2Bytesprog2 course_2014_c8_units
2Bytesprog2 course_2014_c8_units2Bytesprog2 course_2014_c8_units
2Bytesprog2 course_2014_c8_units
 
2Bytesprog2 course_2014_c7_double_lists
2Bytesprog2 course_2014_c7_double_lists2Bytesprog2 course_2014_c7_double_lists
2Bytesprog2 course_2014_c7_double_lists
 
2Bytesprog2 course_2014_c6_single linked list
2Bytesprog2 course_2014_c6_single linked list2Bytesprog2 course_2014_c6_single linked list
2Bytesprog2 course_2014_c6_single linked list
 
2Bytesprog2 course_2014_c5_pointers
2Bytesprog2 course_2014_c5_pointers2Bytesprog2 course_2014_c5_pointers
2Bytesprog2 course_2014_c5_pointers
 
2Bytesprog2 course_2014_c4_binaryfiles
2Bytesprog2 course_2014_c4_binaryfiles2Bytesprog2 course_2014_c4_binaryfiles
2Bytesprog2 course_2014_c4_binaryfiles
 
2Bytesprog2 course_2014_c3_txtfiles
2Bytesprog2 course_2014_c3_txtfiles2Bytesprog2 course_2014_c3_txtfiles
2Bytesprog2 course_2014_c3_txtfiles
 
2Bytesprog2 course_2014_c2_records
2Bytesprog2 course_2014_c2_records2Bytesprog2 course_2014_c2_records
2Bytesprog2 course_2014_c2_records
 
2Bytesprog2 course_2014_c1_sets
2Bytesprog2 course_2014_c1_sets2Bytesprog2 course_2014_c1_sets
2Bytesprog2 course_2014_c1_sets
 
2Bytesprog2 course_2014_c1_sets
2Bytesprog2 course_2014_c1_sets2Bytesprog2 course_2014_c1_sets
2Bytesprog2 course_2014_c1_sets
 
2Bytesprog2 course_2014_c1_sets
2Bytesprog2 course_2014_c1_sets2Bytesprog2 course_2014_c1_sets
2Bytesprog2 course_2014_c1_sets
 
2Bytesprog2 course_2014_c1_sets
2Bytesprog2 course_2014_c1_sets2Bytesprog2 course_2014_c1_sets
2Bytesprog2 course_2014_c1_sets
 
2 BytesC++ course_2014_c13_ templates
2 BytesC++ course_2014_c13_ templates2 BytesC++ course_2014_c13_ templates
2 BytesC++ course_2014_c13_ templates
 
2 BytesC++ course_2014_c12_ polymorphism
2 BytesC++ course_2014_c12_ polymorphism2 BytesC++ course_2014_c12_ polymorphism
2 BytesC++ course_2014_c12_ polymorphism
 
2 BytesC++ course_2014_c11_ inheritance
2 BytesC++ course_2014_c11_ inheritance2 BytesC++ course_2014_c11_ inheritance
2 BytesC++ course_2014_c11_ inheritance
 

GeneticAlgorithms_AND_CuttingWoodAlgorithm

  • 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