فصل اول پیچیدگی زمانی و مرتبه اجرایی

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "فصل اول پیچیدگی زمانی و مرتبه اجرایی"

Transcript

1 فصل اول پیچیدگی زمانی و مرتبه اجرایی 1

2 2

3 پیچیدگی زمانی Complexity) (Time مثال : 1 تابع زیر جمع عناصر یک آرایه را در زبان C محاسبه می کند. در این برنامه اندازه ورودی همان n یا تعداد عناصر آرایه است و عمل اصلی [i] s = +s list می باشد که n بار انجام می گیرد. مثال 2 :تعداد کل مراحل برنامه مثال 1 محاسبه کنید. نکته : هنگام محاسبه تعداد دفعاتی که یک دستور درون حلقه ها اجرا می گردد می توان از فرمول های زیر استفاده کرد : عدد ثابتی است 3

4 = n(a 1+a n ) 2 جمله آخر و n تعداد جمالت است : جمع تصاعدی عددی راه دیگر a n a 1 جمله اول Trace کردن برنامه است. مثال : 3 دستور اصلی 1+x x : در تکه برنامه زیر چند بار اجرا می شود تعداد کل گام های برنامه چه قدر است راه حل اول : حلقه های داده شده مستقل از یکدیگرند بنابراین طبق آن چه در زبان های برنامه نویسی پاسکال و c خوانده اید تعداد اجرای دستور درون حلقه ها برابر mn می باشد. راه حل دوم : 4

5 حال برای محاسبه تعداد کل گام های برنامه ابتدا حلقه بیرونی i را کنار گذاشته و در نظر نمی گیریم. در این حال دستور 1+x x : به تعداد n بار و عبارت for j به تعداد (1+n) بار اجرا می گردد.یعنی تعداد کل m(n+1)+mn بار اجرا می شوند یعنی m بوده و به تعداد i حال خود این دو خط درون حلقه. (n+1+n). از آنجا که عبارت for i نیز 1+m بار اجرا می شود پس : (1+m)= + m(n+1)+mn تعداد کل مراحل برنامه مثال : 4 دستور اصلی 1+x x : در تکه برنامه زیر چند بار اجرا می شود راه حل اول : حلقه های داده شده به یکدیگر وابسته اند: 5 x := =تعداد اجرا شدن دستور x n= n(n+1) 2

6 راه حل دوم: مثال : 5 تعداد اجرا شدن دستور اصلیx+1 x : در تکه برنامه زیر چیست 6

7 تحلیل پیچیدگی زمانی برای حاالت بهترین بدترین و متوسط برخی مسائل برای همه موارد یک تابع پیچیدگی دارند مثل الگوریتم جمع عناصر یک آرایه : 7

8 T(n) =n n در برنامه فوق عمل اصلی S+A[i] S =: به تعداد بار اجرا شده و همواره می باشد. ولی در الگوریتمی مثل جستجوی خطی )ترتیبی( تابع پیچیدگی برای حاالت مختلف ممکن است متفاوت باشد. فرض گنید در آرایه n خانه ای A می خواهیم خانه به خانه از اول تا انتها به دنبال عدد معین x بگردیم.اگر : No و در غیر اینصورت بگوییم Yes پیدا کردیم بگوییم A را در آرایه x در برنامه فوق عمل اصلی شرط A[i]) if x) = می باشد. قضیه اصلی : اگر ( f(nباشدآنگاه = a m n m +. +a 1 n + a 0 f(n) = O(n m ) مثال : 6 8

9 مثال : 7 مرتبه اجرایی برنامه های زیر را به دست آورید : مثال : 8 تعداد دقیق اجرا شدن دستور (OK) write و مرتبه اجرایی ان را در تکه برنامه زیر به دست آورید. حل : حلقه های فوق وابسته به یکدیگر بوده و همانطور که قبال دیدید تعداد دقیق اجرا شدن دستور write برابر جمع تصاعد عددی از 1 تا n می باشد یعنی باشد. n(n+1) 2 و بنابر قضیه اصلی مرتبه اجرایی آن ) 2 O(n می 9

10 مثال : 9 مرتبه اجرایی زیر (1)O میباشد چرا که حلقه به تعداد معین و محدودی اجرا می شود : نکته : 1 با توجه به مثال های فوق میتوان گفت 2 حلقه for تودرتو )چه وابسته به هم باشد و چه مستقل ) همواره از مرتبه ) 2 O(n و به همین ترتیب 3 حلقه for تودر تو )مستقل یا وابسته ) از مرتبه ) 3 O(n می باشد البته به شرطی که تمامی حلقه ها به نحوی تابعی از n باشند. مثال : 10 مرتبه اجرایی برنامه زیر چیست فرض کنید =n 32 آنگاه 10

11 پس برای 32=n عمل اصلی x:=x+1 5 بار انجام می شود 32) = log 2 (5. پس در حالت کلی مرتبه logn اجرایی الگوریتم فوق برابر O(log) می باشد.توجه کنید در درس ساختمان داده عموما منظور از یعنی. log 2 n نکته : 2 1 در حلقه while که به طور طبیعی شمارنده آن از n تا تغییر می کند.اگر مرتبا شمارنده آن با دستور,k i=i div بر عدد k تقسیم شود مرتبه اجرایی آن) O (log k n خواهد بود. به همین ترتیب اگر شمارنده با دستور i=i*k از 1 تا n تغییر کند باز هم مرتبه اجرایی آن ( n O (log k می باشد: نکته : 3 در جدول زیر مرتبه اجرایی چند تابع به ترتیب صعودی از چپ به راست نوشته شده است : نکته : 4 نماد O زمان اجرای الگوریتم را برای حد باالی n نشان می دهد و برای n های کمتر از حد خاصی ممکن است اطالعات مناسبی را به ما ندهد.مثالض زمان اجرای یک الگوریتم 1000 n و زمان اجرای الگوریتمی 2 10 n 3 دیگر می باشد. 11

12 با نماد O الگوریتم اول از مرتبه ) 2 O(n و الگوریتم از مرتبه ) 3 O(n است.ولی برای n های کمتر از 100 الگوریتم دوم سریعتر از الگوریتم اول خواهد بود : لذا هنگام مقایسه دقیق سرعت اجرای الگوریتم ها به محدوده n نیز باید توجه داشته باشیم. نکته : 5 برنامه هایی با پیچیدگی نمایی تنها برای مقادیر کوچک n )اغلب 40 n ) سودمند هستند. نکته : 6 از نظر عملی برای n های بزرگ (100 n) تنها برنامه هایی با پیچیدگی کم ( مانند n,nlogn, n 2 و ) سودمند می باشند. n 3 نکته : 7 برای اعداد صحیح a, b,r بزرگتر از صفر از نظر مرتبه داریم نکته : 8 به ترتیب مرتبه اجرایی و زمان اجرایی الگوریتمی در کامپیوتری با سرعت باشند و v 1 v 1 t 1 اگر ( 2 O(n v 2 به ترتیب مرتبه اجرایی و زمان اجرایی الکوریتمی دیگر در کامپیوتری با t 2 به همین ترتیب ( 2 O(n v 2 سرعت باشند خواهیم داشت : 12

13 مثال : 11 الگوریتمی با مرتبه زمانی (n o(n log در کامپیوتری در مدت زمان 1 ثانیه اجرا می شود. همان الگوریتم روی کامپیوتر دیگری با سرعت 100 برابر در چه مدت زمانی اجرا خواهد شد مثال : 12 برنامه ای با اندازه 10 و مرتبه اجرایی ( 2 O(n روی سیستمی در مدت زمان 1 msec اجرا می شود. همان مسئله با اندازه 100 روی همان کامپیوتر در چه مدت زمان اجرا می شود نمادهای Ω و θ )امگای بزرگ و تتا( به صورت صوری می توان عبارت زیر را برای تعریف O در نظر گرفت : 13

14 عکس تعریف O تعریف Ω می باشد که به صورت صوری معادل عبارت زیر است : یعنی Ω حد پایین را برای تابع مشخص می کند. مثال : 13 برای f(n) = 5n 3 + 2n عبارات زیر همگی درست هستند : و Ω f(n) = Ω(n 3 ولی اغلب منظور از Ω در مثال فوق همان) است.بنابراین تعاریف O چندان دقیق نبوده و به همین دلیل اغلب از مفهوم θ استفاده می شود که مطابق تعریف صوری زیر است : تذکر : تعاریف Ω و θ در کتاب ساختمان داده آورده شده است ولی تا همین حد که در اینجا بیان شد برای درس طراحی الگوریتم کفایت می کند. مثال : 14 برای f(n) = 5n 3 + 5n عبارات زیر درست هستند : 14

15 تذکر : اغلب در تست های کنکور منظور از نماد O همان θ می باشد. در واقع با توجه به تعاریف فوق داریم : مثال : 15 15

16 نمادهای o و ω )ای کوچک و امگای کوچک( در برخی از کتاب ها تعریف o کوچک به صورت زیر آمده است : o(g(n)) f(n) = است اگر و تنها اگر عبارت زیر برقرار باشد: مثال : 19 ) 2 3n+2 = O(n است چرا که : در واقع می توان گفت اگر O بزرگ به معنای بزرگ تر یا مساوی ولی ای کوچک به معنای فقط بزرگ تر است. 16

17 مثال : 20 مشابه فوق می توان نشان داد که : مثال : 21 5n 2 3n + 4 o(n 2 ) ولی 5n 2 3n + 4 = O(n 2 ) نکته : همان طور که قبال گفتیم دسته های پیچیدگی معروف به ترتیب از چپ به راست عبارت اند از : اگر تابع g(n) در طرف چپ تابع f(n) باشد آنگاه(( o(f(n g(n) ε مثال برای a < b داریم) (a n O(b n چرا که : a زیرا < 1 b 17

18 بر عکس o کوچک, می توان ω کوچک را به صورت زیر تعریف کرد : یا مقایسه خواص O, : ω, o, θ,, Ω, مثال : 23 18

19 مرتبه اجرایی الگوریتم بازگشتی محاسبه فاکتوریل را به دست آورید روش اول : ترسیم درخت بازگشتی : اگر مثال 4=n باشد : 3 همان طور که مشاهده می شود به ازای 4=n تابع بوده تعداد بار خودش را فراخوانی می کند که با احتساب بار اول یعنی fact(4) تابع مذکور 4 بار فراخوانی می شود. پس در حالت کلی به ازای, n تابع n بار فراخوانی می شود. لذا مرتبه اجرایی این الگوریتم O(n) T(n) = می باشد و در واقع مرتبه تعداد گره های درخت بازگشتی, همان مرتبه اجرایی الگوریتم است. معادله فوق یک معادله بازگشتی است که روش های استانداردی برای حل آن وجود دارد از جمله رو جایگذاری : 19

20 مثال : 24 مرتبه اجرایی الگوریتم بازگشتی برج های هانوی را به دست آورید. روش اول : ترسیم درخت بازگشتی. مثال اگر 3=n باشد, تعداد گره های درخت 7 عدد است : n 15 به همین ترتیب اگر 4=n باشد تعداد کل گره های درخت بازگشتی می شود و در حالت کلی برای تعداد کل گره ها 1 n 2 یعنی از مرتبه ) n 2)O است. تذکر : تعداد کل گره های درخت دودویی پر با n سطح, از مرتبه ) n 2)O می باشد. روش دوم : 20

21 n-1 اگر 1=n باشد فقط یک انتقال صورت می گیرد. در غیر اینصورت عالوه بر انتقال تابع دو بار با مقدار فراخوانی می گردد.لذا : حال با روش جایگذاری معادله بازگشتی فوق را حل می کنیم : مثال : 25 مرتبه اجرایی تابع زیر کدام است حل : فرض کنید 8=n باشد : 21

22 روش تقسیم و غلبه و روش پویا مثال : 26 تابع زیر به صورت بازگشتی جمله n ام سری فیبونانچی را محاسبه می کند. در سری فیبونانچی هر جمله جمع دو جمله قبلی خود است و دو جمله اولیه برابر "1" می باشد یعنی درخت بازگشتی این الگوریتم برای محاسبه fib(5) به صورت زیر است : 22

23 23

24 فصل دوم روابط بازگشتی 24

25 مفهوم روابط بازگشتی 25

26 مثال : 1 در رابطه بازگشتی زیر مقادیر a 2 تا a 5 را به دست آورید: حل : همان طور که مشاهده می شود جمله عمومی a n در واقع همان! nاست. منظور از حل رابطه بازگشتی آن است که a n را بر حسب n به صورت مستقیم به دست آوریم یعنی : مثال : 2 26

27 با مثال نشان دهید که : حل : از روی رابطه مستقیم 1 n a n = 2 داریم : از روی رابطه بازگشتی داریم : مثال 6 : مساله استاندارد برج های هانوی : این مسئله را در درس ساختمان داده ها خوانده اید که می خواهیم n دیسک با قطرهای متمایز را از روی میله A به میله C و به کمک میله B انتقال دهیم. 27

28 در این جا دو محدودیت داریم یکی آن که در هر بار انتقال فقط یک دیسک را می توان منتقل ساخت و دوم اینکه یک دیسک با قطر بزرگ تر نباید روی دیسکی با قطر کوچک تر قرار گیرد. الگوریتم بازگشتی این مسئله به صورت زیر است : 1- ابتدا (1-n) دیسک را با رعایت دو شرط گفته شده از میله A به B انتقال می دهیم. 2- سپس دیسک آخر را از میله A به C می بریم. (1-n) دیسک موجود را در میله B را با رعایت دو شرط گفته شده از میله B به C منتقل می کنیم H n پس بدیهی است که اگر تعداد حرکات الزم برای انتقال n دیسک را با نمایش دهیم, این میزان برابر است با : و شرط اولیه = 1 1 H می باشد. 28

29 حل روابط بازگشتی ساده با روش جایگذاری a n-1 برای یک دسته از مسائل ساده مثل حالتی که a n فقط به بستگی داشته باشد می توان از روش جایگذاری روابط بازگشتی را حل کرد. مثال : 7 رابطه بازگشتی n 1 a n = na را با شرط اولیه = 1 1 a حل کنید. a 5 = 5a 4 = 5 4! = 5! پس در حالت کلی داریم!n a n = مثال : 8 رابطه بازگشتی + 3 n 1 (n 2) T n = T با شرط اولیه = 1 1 T 29

30 مثال : 9 رابطه بازگشتی تعداد حرکات مهره ها در مسئله برج های هانوی که به صورت n a n = 2a و با شرط اولیه = 1 1 a بوده را حل کنید. می دانیم جمله تصاعد هندسی n جمله, با جمله اول t 1 و با ضریب تصاعد q برابر است با : t 1 (q n 1) q 1 در تصاعد هندسی فوق 1 = 1 2=q, t و تعداد جمالت n می باشد, لذا : مثال برای انتقال 4 مهره به 15=1-4 2 حرکت نیاز داریم. مثال : 10 (n 2) a n = a n 1 + n تعداد نواحی ایجاد شده توسط n خط متقاطع که با رابطه بازگشتی و شرط اولیه = 2 1 a )مطابق مثال ) 4 بیان می شد را به صورت مستقیم محاسبه کنید. 30

31 تقسیم بندی روابط بازگشتی در حالت کلی یک روش عمومی جهن حل تمام روابط بازگشتی وجود ندارد ولی در ادامه حل چند دسته از روابط بازگشتی معروف و پر استفاده را شرح می دهیم. تعریف : رابطه زیر را یک رابطه بازگشتی خطی از درجه )یا مرتبه ) k با ضرایب ثابت می نامیم : n C k 0 که C k,, C 1, C 1 اعداد ثابت حقیقی بوده و است. توجه کنید که Cها i وابسته به نیستند. این رابطه از درجه k است چرا که a n بر حسب k جمله قبلی خود بیان شده است. خطی بودن رابطه فوق از آن جهت است که طرف راست مجموعی از مضرب هایی از جمالت قبلی دنباله است. همگن بودن رابطه فوق از آن جهت است که هیچ دو جمله ای که در آن a j نباشد را ندارد. حل رابطه بازگشتی درجه اول : عموما روابط بازگشتی درجه اول با روش جایگذاری به سادگی حل می شوند. این جایگذاری می تواند از آخر به اول یا از اول به آخر باشد. 31

32 مثال : 13 رابطه 1 n a n = Ca را حل کنید که C عدد ثابتی است و شرط اولیه 1= 0 a می باشد. مثال 14: رابطه + 1 n 1 a n = 2a که در آن 2 n و = 1 1 a را حل کنید. حل تقریبی روابط بازگشتی حل دقیق روابط بازگشتی در درس ساختمان گسسته مطرح می شود و ما از ذکر مجدد آن در اینجا خودداری می کنیم. در اینجا تنها به حل تقریبی دسته ای از روابط بازگشتی مهم به کمک نمادهای O یا θ می پردازیم. 32

33 در حالت کلی داریم : مثال : 19 روابط بازگشتی از مدل تقسیم و غلبه پیچیدگی زمانی بسیاری از الگوریتم های بازگشتی به فرم کلی رابطه بازگشتی زیر است : مثال برای = 4 a و = 25 n تعداد صدا زدن ها به شکل زیر است : 33

34 ارتفاع درخت شکل فوق برابر 2 است یعنی = 2 25 log 5 که در حالت کلی = 2 n log b می شود. در هر سطح هر گره به 4 گره تقسیم می شود که در حالت کلی هر گره به a انشعاب تقسیم می گردد. پس : توجه کنید که h را برابر log b n در نظر گرفته ایم و ارتفاع, تعداد سطوح منهای یک است. پس در حالت کلی داریم : 34

35 35

36 فصل سوم روش تقسیم و غلبه (Divide and Conquer) 36

37 37

38 مفهوم تکنیک تقسیم و غلبه نامگذاری این روش از یک تکنیک جنگی که ناپلئون به کار برد گرفته شده است. در سال 1805 ارتشی از سربازان روسی و اتریشی با بیش از 15 هزار نفر به جنگ ناپلئون آمدند. در این حال ناپلئون به قلب سپاه آنان حمله کرده و با تقسیم نیروهای دشمن به دو بخش بر آنها پیروز شد. در واقع ناپلئون با تقسیم (Divide) سپاهی بزرگ به دو سپاه کوچک تر و پیروز شدن بر تک تک آنها موفق شد بر آن سپاه بزرگ غلبه یافته و آن را فتح کند. (Conquer) مثال اول : جستجوی دودویی جستجوی دودویی فقط در آرایه های مرتب استفاده می شود. در این روش عنصر مورد نظر با خانه وسط آرایه مقایسه می شود. اگر با این خانه برابر بود جستجو تمام می شود. اگر عنصر مورد جستجو از خانه وسط بزرگ تر بود جستجو در بخش باالیی آرایه و در غیر اینصورت جست و جو در بخش پایینی آرایه انجام می شود ( فرض کرده ایم که آرایه به صورت صعودی مرتب شده است( این رویه تا یافتن عنصر مورد نظر یا بررسی کل خانه های آرایه ادامه می یابد. مثال : در لیست زیر می خواهیم ببینیم عدد 44 در کدام خانه قرار دارد 38

39 ابتدا خانه وسطی( 6 ) را با عدد 44 مقایسه می کنیم. چون 30 کمتر از 44 است پس نیمه باالیی آرایه یعنی از خانه 7 تا 12 را فقط نگاه می کنیم. برای این منظور low را برابر + 1 mid قرار می دهیم : 44 کمتر از حال خانه وسط یعنی خانه 9 را که حاوی عدد 45 است را با مقایسه می کنیم. چون است پس نیمه پایین این آرایه را فقط نگاه می کنیم. برای این کار high را برابر 1- mid قرار می دهیم. حال خانه شماره 7 سپس خانه شماره 8 را با کلید 44 مقایسه می کنیم و درمی یابیم که عدد 44 در خانه شماره 8 قرار دارد. برنامه مربوط به جستجوی باینری به صورت زیر است : تابع زیر جستجوی باینری را )به صورت غیر بازگشتی( انجام می دهد و مشخص می سازد عدد m در کدام خانه آرایه x وجود دارد. N طول آرایه مرتب شده x است.اگر عدد m در آرایه نباشد تابع مقدار 1- برمی گرداند. 39

40 حال نسخه بازگشتی الگوریتم جستجوی دودویی را بیان می کنیم : 40

41 تحلیل پیچیدگی زمانی جستجوی دودویی جستجوی دودویی پیچیدگی زمانی در هر حالت ندارد.لذا باید حالت های خوب, بد و متوسط آن را جداگانه حساب کنیم. یکی از بدترین حالت ها هنگامی رخ می دهد که عدد مورد جستجو (x) آخرین )بزرگترین( ذعنصر آرایه باشد. در این حالت آرایه باید مرتبا نصف شود تا هنگامی که در نهایت آرایه یک خانه داشته باشد. آرایه ای با یک خانه تنها به یک عمل مقایسه نیاز دارد. لذا : پیچیدگی زمانی جستجوی دودویی : با توجه به قضیه اصلی زیر که قبال بیان کردیم : جواب رابطه بازگشتی w(n) برای جستجوی دودویی به صورت دقیق برابر است با 41

42 در تست ها علت فرمول 1 + n log را می بینید. مثال : فرض کنید آرایه ای 5 خانه ای و مرتب داریم و می خواهیم میانگین تعداد مقایسه ها را برای جست و جوی موفق و نیز میاتگین تعداد مقایسه ها را برای جستجوی ناموفق به دست آوریم : برای یافتن عدد 11 به 2 مقایسه, عدد 22 به 3 مقایسه, عدد 33 به یک مقایسه و عدد 44 به 2 مقایسه و عدد 55 به 3 مقایسه نیاز است. پس : این روش شبیه یافتن اعداد در درخت جست و جوی زیر است که متوسط سطح هر گره داخلی را به دست می آوریم. 42

43 مثال دوم : مرتب سازی ادغامی قبل از توضیح مرتب سازی ادغام الزم است نحوه ترکیب دو لیست مرتب را در یک لیست مرتب جدید بیان کنیم. مثال : فرض کنید دو دسته کارت مرتب شده به شکل زیر داریم. در هر مرحه کارت جلویی هر دسته را با کارت جلویی دسته دیگر مقایسه می کنیم و کارت با شماره کوچک تر را در دسته جدید قرار می دهیم. هر گاه یکی از دسته ها خالی شد تمام کارت های باقی مانده در دسته دیگر را در انتهای دسته کارت جدید قرار می دهیم. 43

44 تابع زیر دو آرایه مرتب A با P عنصر و B با m عنصر را گرفته و یک آرایه S با m+p عنصر مرتب شده را برمی گرداند.)شروع اندیس آرایه ها را 1 فرض کرده ایم( : 44

45 بدترین حالت نیز زمانی رخ می دهد که همه عناصراز آرایه اول )به جز آخرین عضو آن ) از اولین عنصر آرایه دوم کوچک تر باشند. ولی این آخرین عضو از تمام عناصر آرایه دوم بزرگ تر باشد. مثل شکل زیر که در این حالت به 8 مقایسه نیاز داریم. یعنی در بدترین حالت تعداد مقایسه ها را برابر است با : n خانه حال که تابع mergo را شرح دادیم به توضیح مرتب سازی ادغام می پردازیم. مرتب سازی آرایه ای با روش ادغام شامل مراحل زیر است : 45

46 آرایه را به دو قسمت هر یک با n 2 عنصر تقسیم کن. با روش ادغام هر زیر آرایه را مرتب کن.اگر آرایه به قدر کافی کوچک نمی باشد به صورت بازگشتی -1-2 آن را کوچک تر و حل کن. 3- از طریق الگوریتم ادغام زیر آرایه های مرتب شده را در یک آرایه مرتب, ترکیب کن. شکل زیر مراحل این الگوریتم را برای یک آرایه فرضی نشان می دهد : 46

47 تحلیل پیچیدگی زمانی مرتب سازی ادغامی در بدترین حالت عمل اصلی را مقایسه در تابع ادغام (merge) در نظر می گیریم و می خواهیم تعداد این مقایسه را در s بدترین حالت بر حسب اندازه ورودی n که تعداد عناصر آرایه است به دست می آوریم. با توجه به توضیحات مربوط به این الگوریتم داریم : (P+M-1) B W(m) زمان الزم برای مرتب سازی آرایه A و زمان الزم برای مرتب سازی و زمان W(p) الزم برای ادغام A و B در بدترین حالت هستند. در ابتدا فرض می کنیم n توانی از 2 باشد, در این صورت : W(l)=0 اگر اندازه ورودی 1 باشد )یعنی آرایه یک خانه ای باشد(نیازی به ادغام نبوده و است.پس رابطه پیچیدگی زمانی برای مرتب سازی ادغام هنگامی که 1<n بوده و n توانی از 2 باشد به صورت زیر است : 47

48 با توجه به قضیه اصلی زیر : پس در حالت داریم : 48

49 مثال : 3 فرض کنید ارایه اولیه به صورت زیر باشد انجام یک مرحله از الگوریتم فوق به صورت زیر است : 49

50 pivot = 26 I =1 right = 10 ابتدا در = 1 left و و و و 11=j می شود. سپس از سمت چپ مرتبا i زیاد شده تا هنگامی که به اولین عنصر بزرگ تر از 26 )یعنی 37( برسیم.به همین ترتیب از سمت راست مرتبا j کم می شود. تا به اولین عنصر کوچک تر از )یعنی 19( برسیم.در این حال جای این دو خانه یعنی 19 عوض و می شود. پس آرایه به صورت زیر درمی آید : 50

51 نمونه زیر مراحل کار افراز را مطابق الگوریتم فوق نشان می دهد. عنصر لوال عدد 26 است. 51

52 بهترین حالت هنگامی است که عنصر محور )افراز( همواره وسط آرایه قرار می گیرد. در این حالت اگر برای سادگی فرض کنیم n = 2 m آن گاه پیچیدگی در بهترین زمان برابر است با : نکته : پیچیدگی روش های ادغام و سریع به ورت زیر است : 52

53 مثال چهارم : ضرب ماتریس های استراسن (Strassen) همان طور که می دانید الگوریتم ساده ضرب ماتریس ها به صورت زیر است : C B تکه برنامه فوق دو ماتریس مربعی A و را ضرب کرده و حاصل را در ماتریس می ریزیم. هر سه ماتریس n*n هستند. در الگوریتم ساده فوق تعداد ضرب ها همواره T(n) = n 3 است. تعداد جمع ها نیز در برنامه ساده فوق T(n) = n 3 می باشد.با تغییر ساده زیر می توان تعداد جمع ها را کاهش داد و به T(n) = n 3 n- 2 رساند : پس خالصه در الگوریتم استاندارد ضرب ماتریس ها را داریم : 53

54 2 حال روش ضرب ماتریس ها را به صورت تقسیم و غلبه بیان می کنیم.اگر n توانی از باشد می توان ماتریس های A و B را به چهار ماتریس کوچکتر که هر یک n 2 n 2 هستند تقسیم نمود. n اگر در الگوریتم باال عمل اصلی را تعداد ضرب ها در نظر بگیریم, آنگاه تعداد ضرب ها برای ماتریس های 2 n 2 n*n به 8 عمل ضرب ماتریس های نیاز خواهند داشت. از طرف دیگر بدیهی است که ضرب دو ماتریس 1*1 فقط به یک عمل ضرب اسکالر نیاز دارد. لذا برای الگوریتم ساده تقسیم و غلبه ضرب ماتریس ها داریم : 54

55 یادآوری : نتیجه فوق از قضیه زیر به دست آمد که در فصل قبلی بیان کرده بودیم : همان طور که مشاهده می شود روش تقسیم و غلبه مانند روش مستقیم از مرتبه ) 3 θ(n و مزیتی ندارد. n 3 (strassen) ولی در سال 1969 استراسن الگوریتمی را معرفی کرد که تعداد ضرب های آن از کمتر بوده و تقریبا n 2.81 بود که آن را در ادامه شرح می دهیم. استراسن اثبات کرد که حاصلضرب دو ماتریس A*B یعنی ماتریس C را می توان از روابط زیر به دست آورد ( برای حالت 2=n به سادگی می توانید آن را اثبات کنید.( 55

56 مثال برای ماتریس زیر : بدیهی است که برای حالت 1=n یعنی ضرب ماتریس های L*L تنها به یک عمل ضرب و صفر عمل جمع و تفریق نیاز داریم. با توجه به توضیحات فوق : و به همین ترتیب تعداد جمع ها برابر است با : 56

57 جدول زیر روش استراسن را با روش استاندارد مقایسه می کند : بنابراین روش استراسن کارآمدترین از روش استاندارد است. θ(n 2 ) نکته : می توان اثبات کرد ضرب ماتریس ها حداقل به زمان نیاز دارد و لی هنوز کسی نتوانسته است الگوریتمی از مرتبه 2 برای ضرب ماتریس ها ابداع کند و از طرف دیگر تاکنون نیز کسی نتوانسته اثبات کند نوشتن چنین الگوریتمی غیر ممکن است. مثال پنجم : ضرب اعداد صحیح بزرگ همانطور که می دانید اعداد صحیح بزرگ را می توان توسط آرایه ذخیره کرد. مثال عدد بزرگ 8,173,963,563 را به صورت زیر ذخیره کنیم: برای تعیین مثبت یا منفی بودن عدد هم کافی است آخرین خانه سمت چپ را به عنوان عالمت در نظر بگیریم که اگر مثال صفر باشد یعنی مثبت و اگر 1 باشد یعنی منفی. در حالت کلی عدد صحیح u با n رقم را می توان به صورت زیر نشان داد : 57

58 ضرب این دو عدد به صورت زیر خواهد بود : پس ضرب u در V به چهار عمل ضرب روی اعداد صحیح با نیمی از ارقام نیاز دارد. توجه کنید که ضرب یک عدد در 10 m یا 10 2m به سادگی در زمان O(n) صورت می پذیرد. مثال : پیاده سازی الگوریتم ضرب فوق به صورت زیر است : جواب فوق از قضیه اصلی در فصل قبل به دست آمده است. مقدار S همان مقدار آستانه است که به ازای آن دیگر نمونه تقسیم نمی شود. 58

59 الگوریتم فوق از درجه n 2 بوده و در نتیجه کند است با یک تغییر می توان مرتبه اجرای الگوریتم را پایین تر آورد. همان طور که در باال مشاهده کردید تابع prod باید موارد زیر را محاسبه کند: Xw,xz +yw,yz یعنی تابع prod بایستی چهار بار برای محاسبه, xw,xz,yw,yz صدا زده شود.حال روابط مذکور را قدری دستکاری می کنیم. xz + yz = (x + y)(w + z) xw yz xz+yz را با یعنی ابتدا xw و yz را به دست آورده و سپس به کمک عبارت سمت راست رابطه فوق مقدار یک عمل ضرب به دست می آوریم. پس در کل به جای 4 ضرب به 3 ضرب نیاز خواهیم داشت. لذا : حال اگر بخواهیم به شیوه مستقیم بزرگ ترین و کوچک ترین عنصر یک آرایه را پیدا کنیم یک الگوریتم ساده به صورت زیر است : 59

60 الگوریتم زیر به صورت مستقیم با فرض آنکه n عددی زوج است کوچکترین و بزرگ ترین عنصر را با تکنیک جفت کردن کلیدها به دست می آورد : برای نمونه یک آرایه 10 خانه ای در نظر گرفته و الگوریتم فوق را روی آن آزمایش کنید. در برنامه فوق ( n 2 1) n برای حلقه for های زوج به تعداد بار اجرا می شود که در هر بار اجرا سه مقایسه صرت می 60

61 گیرد. یک مقایسه نیز در ابتدای کار و بیرون حلقه انجام می پذیرد لذا مرتبه اجرایی برنامه فوق در تمامی حاالت برابر است با : به عنوان تمرین برنامه فوق را برای nهای فرد بازنویسی کرده و نشان دهید که برای nهای فرد پیچیدگی زمانی برابر است با لذا در کل داریم : min Low.high در برنامه زیر آرایه S حاوی اندیس های بوده و خروجی تابع توسط پارامترهای و max برگردانده می شود : 61

62 پیچیدگی زمانی الگوریتم فوق از رابطه بازگشتی زیر به دست می آید : با حل رابطه فوق به نتیجه زیر می رسیم : یافتن بزرگ ترین کلید دوم : روش تورنمنت همان روشی است که در مسابقات ورزشی حذفی استفاده می شود. فرض می کنیم 8 عدد به صورت درخت زیر با یکدیگر مسابقه دهند و هر بار برنده عدد بزرگ تر باشد : 62

63 63

64 کجا نباید از تقسیم و غلبه استفاده کرد در صورت امکان در موارد زیر ازروش تقسیم و غلبه استفاده نمی کنیم چرا که مرتبه الگوریتم نمایی می شود : 1- هنگامی که نمونه ای با اندازه n به دو یا چند نمونه تسیم می شود که اندازه آن ها نیز تقریبا برابر با n است.مثال : c n c هنگامی که نمونه ای با اندازه n, تقریبا به n نمونه با اندازه تقسیم شود که یک مقدار ثابت -2 اسن. توجه کنید که همه مسائل را نمی توان به نمونه های کوچک تر تقسیم کرد و سپس نتایج حاصله را با هم ترکیب نمود. مثال اگر بخواهیم بزرگ ترین عدد بین 20 عدد را پیدا کنیم می توان آن را به دو دسته 10 تایی تقسیم کرد, سپس ماکزیمم هر دسته را یافته و با مقایسه این دو بزرگ ترین را پیدا کرد.ولی مثالض در مورد یک دستگاه 20 معادله 20 مجهولی نمی توان آن را به دو دستگاه کوچک تر 10 معادله و 10 مجهولی تقسیم کرد. 64

65 فصل چهارم برنامه نویسی پویا 65

66 66

67 مفهوم برنامه نویسی پویا Programming) (Dynamic همان طور که در فصل قبل دیدید روش تقسیم و حل یک روش باال به پایین (Top-down) بود یعنی به کمک یک رابطه بازگشتی از مساله یک راست به سراغ مساله اصلی )حالت n کوچک تقسیم می کنیم. ) رفته و آن را به نمونه های این نمونه ها را ان قدر کوچک می کنیم تا بتوانیم باالخره آن ها را حل کنیم.سپس با ترکیب این جواب نمونه های کوچک به جواب نمونه اصلی می رسیم. در تکنیک برنامه نویسی پویا نیز یک رابطه بازگشتی نیاز داریم که حاالت بزرگ تر را بر حسب حاالت کوچک تر نشان می دهد و از این این تکنیک مثل تقسیم و غلبه است.ولی در این روش ابتدا نمونه های کوچک تر را حل کرده و نتایج را ذخیره می کنیم و سپس هر گاه به هر کدام آنها نیاز داشتیم به جای محاسبه دوباره کافی است آن ها را بازیابی کنیم. در برنامه نویسی پویا حل را از باال به پایین (down-top) در یک آرایه )یا یک سری آرایه ) بنا می کنیم. تشابه تکنیک تقسیم و غلبه با تکنیک پویا آن است که در هر دو رابطه بازگشتی داریم و تفاوت آن ها در این است که تقسیم و غلبه یک روش کل به جزء و تکنیک پویا یک روش جزء به کل است. مثال : رابطه بازگشتی T(n-1)+3 T(n) = با حالت خاص 1= (1)T را حل کنید. روش اول )باال به پایین( : 67

68 روش دوم )پایین به باال ) : مثال اول : سری فیبونانچی مساله سری فیبونانچی را در انتهای فصل اول به دو صورت تقسیم و غلبه و پویا به صورت زیر حل کردیم : 68

69 مثال دوم : ضریب دو جمله ای همان طور که می دانید بسط دو جمله ای نیوتن a) + (b n به صورت زیر می باشد : و می دانیم که برای محاسبه ضریب دو جمله ای نیوتن یعنی ) k ( n می توان از فرمول مستقیم استفاده کرد ولی محاسبه!n برای مقادیر نه چندان بزرگ n هم خیلی بزرگ خواهد بود لذا باید راه حل بهتری پیدا کنیم. 69

70 یک فرمول بازگشتی برای محاسبه ترکیب k از n به صورت زیر است : مثال ) 3 (6 + ) 2 (6 = ) 3 ( 7 پیاده سازی فرمول فوق به صورت الگوریتم تقسیم و غلبه به صورت زیر است : در تست ها خواهید دید که تعداد جمالتی که الگوریتم فوق برای به دست آوردن ( n k ) کند برابر است با : الزم است محاسبه 2 ( n k ) 1 توجه کنید که فرمول فوق از همان فرمول بازگشتی ) n ( k به دست آمده است. 70

71 منظور از B[i][j] عبارت B[n][k] = ( n k ), (i j ) صورت زیر است : است. برنامه ای که ماتریس فوق را اجرا می کند به 71

72 گراف وزن دار فوق را توسط ماتریس w که به ماتریس هم جواری (adjacency) فرمول زیر نمایش داده ایم : معروف است طبق وزن یال اگر یالی از V i به V j وجود داشته باشد : = W[i][j] اگر یالی از V i به V j وجود نداشته باشد : { 0 اگر i = j باشد : 72

73 پس تعداد کل راه حل های ممکن (! O(n است که بسیار زیاد است. در ادامه الگوریتم فلوراید را شرح می دهیم که از مرتبه ) 3 O(n است. ابتدا الگوریتمی را به دست می آوریم که فقط طول کوتاه ترین مسیرها را به ما می دهد. سپس قدری آن را اصالح می کنیم تا کوتاه ترین مسیر را نیز برای ما نمایش دهد. به عبارتی دیگر هدف فعلی ما محاسبه ماتریس D زیر از روی ماتریس W )برای شکل گراف قبلی ) است : برای اینکه مراحل الگوریتم را به خوبی درک کنید با روش دستی مرحله به مرحله ماتریس های زیر را به دست آورید : 73

74 مثال برای محاسبه [2][3] 1 D این گونه عمل شده است : ماتریس P یک ماتریس n n با اندیس های 1 تا n است که مقدار اولیه عناصر ان صفر است : 74

75 مثال در گراف مثال قبل ماتریس p برابر زیر خواهد شد : روش پویا برای حل دسته مسائل بهینه سازی تعریف : هنگامی که می گوییم اصل بهینگی برای یک مسئله صادق است که یک حل بهینه برای نمونه ای از مسئله همواره حاوی حل بهینه برای همه زیر نمونه های زیر باشد. V i مثال برای مسئله کوتاه ترین مسیر اصل فوق برابر است چرا که اگر V k یک راس روی مسیر بهینه از به V j V k و V k V i V j باشد آنگاه زیر مسیرهای به به نیز باید بهینه باشند. ولی مثال در مسئله یافتن طوالنی ترین مسیر بین دو راس اصل بهینگی صادق نبوده و نمی توان آن را از طریق برنامه نویسی پویا حل کرد. 75

76 جهت نمونه در شکل زیر : مسیر 4 V 1, V 2, V 3, V می باشد ولی زیر مسیر V 4 طوالنی ترین مسیر ساده )مسیر بهینه ) از V 1 به V 3 یک زیر مسیر بهینه )طوالنی ترین ) از V 1 به نیست و مسیری طوالنی تر به صورت V 1, V 3 3 V 1, V 2, V بین آن دو وجود دارد. مثال چهارم : ضرب زنجیره ای ماتریس ها همان طور که میدانید ضرب ماتریس ها خاصیت جابه جایی ندارد ولی خاصیت شرکت پذیری را دارد. همچنین ضرب دو ماتریس A B به شرطی تعریف شده است که وسط آن ها یکسان باشد. یعنی تعداد ستون های A با تعداد سطرهای B برابر باشد. k n m در کل به A m n B n k می توان اثبات کرد که دو ماتریس عمل ضرب نیاز دارد. حال به مثال زیر توجه کنید : مثال : ضرب 3 ماتریس 4 20 A 10 5 B C را به جه ترتیبی انجام دهیم تا سریع تر انجام شود حل : 76

77 اگر A و B را در هم ضرب کنیم و بعد در C ضرب کنیم : ولی اگر B را در C ضرب کرده و سپس حاصل را در A ضرب کنیم : پس A(BC) سریعتر از (AB)C انجام می پذیرد. قضیه : برای محاسبه ضرب سه ماتریس M a b N b c P c d برای آن که ترتیب (M.N).P زمان کمتری نسبت به M.(N.P) صرف کند می بایست داشته باشیم : 77

78 اثبات : A 1 Aو و 2. A n n اگر T(n) تعداد ترتیب های متفاوت برای ضرب ماتریس باشد زیر مجموعه از این ترتیب ها حالتی است که در آنها A 1 آخرین ماتریسی است که در مجکوعه ضرب می شود یعنی : A n بنابراین تعداد ترکیب های ممکن برای ضرب ماتریس های A 2 برابر تا 1-n T خواهد بود. حال به پرانتز ) n A( 2 A 3. A توجه کنید در این پرانتز نیز یک زیر مجموعه عبارت از همه ترتیب هایی است که در آن A n آخرین ماتریسی است که ضرب می شود.پس تعداد ترتیب های مختلف در این زیر مجموعه هم T(n-1) بوده و لذا داریم : 78

79 در این صورت روشن است که هریک از دو پرانتز فوق باید حداقل تعداد ضرب را داشته باشند تا ضرب دو پرانتز نیز حداقل تعداد ضرب را شامل باشند. فرض کنید می خواهیم چهر ماتریس زیر را در یکدیگر ضرب کنیم : d k تعداد ستون های ماتریس A k را با نمایش می دهیم. و از آن جا که تعداد سطرهای آن می بایست با تعداد ستون های ماتریس قبلی برابر باشد تعداد سطرهای ماتریس A برابر 1-k d است. ابتدا مساله را از روش مستقیم که بسیار ناکارآمد است حل می کنیم. یعنی تمتمی حاالت ممکن ضرب را 5 4 یافته و بهترین ان را )که حداقل تعداد ضرب را دارد ) انتخاب می کنیم. ماتریس را به طریق ممکن مشابه زیر می توان در یکدیگر ضرب کرد : 132 کمترین تعداد ضرب مربوط به حالت ) 4 A 1 ((A 2 A 3 )A با ضرب است.دقت کنید قانون ساده سرانگشتی که می گفت " ابتدا آنهایی را ضرب کن که بعد وسطشان بزرگتر است " 79

80 در اینجا صادق نیست. حال یک روش حل پویا برای ایم مسئله پی ریزی می کنیم. همانند مثال های قبلی برای حل این مسئله به صورت پویا از یک ماتریس M[n][n] استفاده میکنیم که n تعداد ماتریس هایی است که می خواهیم در یکدیگر ضرب شوند. خانه های این ماتریس با مقادیر زیر پر می شوند : ضرب 4 ماتریس A 1 A 2 A 3 A 4 به صورت بازگشتی یکی از سه حالت زیر است یعنی اولین نقطه جداکننده می تواند بعد از یا بعد از A 2 یا بعد از A 1 A 3 باشد : تعداد حداقل ضرب ها برای هر یک از حاالت فوق به صورت زیر است : 80

81 عبارات باال یعنی " حداقل تعداد ضرب ها را برای ضرب ) 4 A) 2 A 3 A به دست بیاور و با ) 4 (d 0 d 1 d که (A) d0 d 1 است جمع کن. این حاصل حداقل (A 2 A 3 A 4 ) d1 d 4 تعداد ضرب الزم برای انجام محاسبه A 1 می دهد. به همین ترتیب : ضرب ها را برای محاسبه( (A 2 A 3 A 4 M[i][j] =0 توجه کنید برای I = j عبارت است چرا که تعداد ضرب های الزم برای ایجاد یک ماتریس تنهای ) i A) را نشان می دهد که هیچ ضربی نیاز ندارد. پس از محاسبه عبارات الف و ب و ج جواب نهایی مینیمم بین آنها می باشد. با توجه به مثال فوق می توان فرمول اصلی حل مساله فوق را نوشت : 81

82 82

83 مینیمم توجه کنید برای قطر 1 مینیمم یک عبارت برای قطر مینیمم بین عبارت و برای قطر بین 3 عبارت را محاسبه کردیم. 132 A 4 A 1 جواب نهایی مورد نظر = 132 [4][1]M است که نشان می دهد برای ضرب به حداقل تا ضرب نیاز است. برای یافتن ترتیب ضرب بهینه یعنی) A 1 ((A 2 A 3 )A 4 بسازیم. کافی است کنار ماتریس M یک ماتریس P را نیز برای مثال فوق کار را از عنصر [4][1]M شروع می کنیم. در هنگام محاسبه این عنصر داشتیم : 83

84 A 1 K = 1 یعنی حداقل مربوط به است. این بدان معناست که برای ضرب تا A 4 ابتدا باید ترتیب را در (A 1 )(A 2 A 3 A 4 ) : بشکنیم A 1 حال به سراغ [4][2]M می رویم که ببینیم برای ضرب A 2 تا A 4 عملیات در کجا باید شکسته شود. P (A 2 A 3 )A 4 پس باید پرانتز بسته در نقطه 3=K گذاشته شود یعنی بدین ترتیب ماتریس برابر زیر خواهد شد که از روی آن به راحتی میتوان ترتیب بهینه را چاپ کرد : مثال : میخواهیم 6 ماتریس را در هم ضرب کنیم A 1 A 2 A 3 A 4 A 5 A 6 ماتریس P آنها طبق الگوریتم فوق به صورت زیر درآمده است. ترتیب بهینه را برای حداقل تعداد ضرب ها چاپ کنید. 84

85 حل : عنصر = 1 [6][1]P است یعنی اولین جداسازی بعد از A 1 صورت می گیرد : سپس به سراغ = 5 [6][2]P می رویم. یعنی جداسازی بعدی از A 5 است : حال به سراغ = 4 [5][2]P می رویم یعنی جداسازی بعدی از A 4 است : مثال پنجم : درخت های جست و جوی دودویی بهینه (Binary Search همان طور که در درس ساختمان داده ها خوانده اید درخت جستجوی دودویی یا BST Tree) یک درخت دودویی است که مقدار هر گره بزرگ تر از هر مقدار زیر درخت چپ و کوچک تر از هر مقدار در زیر درخت راست آن می باشد. هر گره دارای یک کلید است و عموما دو گره نباید دارای کلید 85

86 یکسان باشند )یعنی عموما کلیدها منحصر به فرد هستند(. مثال شکل )الف( زیر یک درخت BST است ولی شکل )ب( BST نیست. چرا که در زیر درخت سمت راست گره 51 عدد 25 از آن کوچک تر است : الگوریتم جستجو در درخت BST فرض کنید دنبال کلیدی هستیم که می دانیم حتما در درخت است. جهت جستجو همواره از ریشه شروع می کنیم. اگر کلید مورد جستجو از کلید گره بزرگ تر بود به سمت راست و اگر کوچک تر بود به سمت چپ می رویم. این عمل را آن قدر تکرار می کنیم تا باالخره داده مورد نظر پیدا شود. بدیهی است تعداد مقایسه ها برای یافتن یک کلید Key برابر عبارت زیر است که منظور از depth(key) عمق آن کلید است. depth(key)+1 86

87 مثال در شکل های زیر : 87

88 حل : مثال : درخت BST بهینه مربوط به کلیدهای زیر را با احتماالت داده شده ترسیم کنید : حل : 88

89 : قطر 1 از انجا که در قطر 1 داریم A[I][I] = P I به راحتی احتماالت داده شده را در قطر مربوطه قرار می دهیم. به همین ترتیب R[i][i] = i می باشد چرا که در درخت BST بهینه از کلید های که اندیس ریشه همان i است. ( چرا که این درخت فقط یک گره دارد( Key i تا key i بدیهی است پس در خانه [2][1]R عدد 1=k را قرار می دهیم. و در خانه [3][2]R عدد 2=k را قرار می دهیم. قطر 3 89

90 و در خانه [3][1]R عدد 1= k را قرار می دهیم. Key 1 تا key 3 در کل به زمان جستجوی میانگین 1.4 پس درخت BST بهینه باکلیدهای نیاز دارد.برای ترسیم شکل به ماتریس R نگاه می کنیم برای را در ریشه قرار می دهیم : Key 1 تا key 3 ریشه Key 1 می باشد. (R[1][3]=1) پس آن برای Key 2 تا key 3 ریشه Key 2 است چرا که [3][2]R می باشد. > 2 Key است ان را در سمت راست Key 1 قرار داده ایم. توجه کنید چون می دانیم Key 1 در آخر هم key 3 را در سمت راست Key 2 رسم می کنیم. پیاده سازی الگوریتم فوق را به عنوان تمرین بر عهده دانشجویان قرار می دهیم. البته کدهای آن را به زبان C می توانید در کتاب بیپولیتان مشاهده کنید. 90

91 مشابه الگوریتم ضرب ماتریس ها این الگوریتم نیز نیاز به سه حلقه تو در تو دارد و لذا مرتبه اجرایی آن ) 3 θ(n است. مثال ششم : فروشنده دوره گرد فروشنده ای می خواهد از تعدادی شهر که توسط جاده هایی به یکدیگر متصل هستند عبور کند و در آخر به شهر اولیه خود برگردد. هدف یافتن کوتاه ترین مسیر برای فروشنده است به نحوی که از تمام شهرها دقیقا یک بار عبور کند و این مساله استاندارد فروشنده دوره گرد است. در یک گراف جهت دار یک تور که به آن مدار هامیلتون نیز گفته می شود عبارت از مسیری از یک راس به خودش است که از تمام رئوس دیگر دقیقا یک بار عبور می کند. منظور از یک تور بهینه در گراف جهت دار وزن دار مسیری از یک نوع است که طول آن حداقل می باشد. بنابراین مسئله فروشنده دوره گرد در واقع پیدا کردن یک تور بهینه برای یک گراف جهت دار موزون است. توجه کنید که ممکن است گرافی اصال تور نداشته باشد.همچنین طول تور بهینه وابسته به انتخاب راس آغازین نیست. مثال : در گراف شکل زیر 3 تور با طول های تعیین شده عبارت اند از : 91

92 مثال : در گراف جهت دار موزون زیر با ماتریس هم جواری W داده شده طول تور بهینه را به دست آورید. قدم سوم : مجموعه A را دو عضوی می گیریم : قدم چهارم : در آخر مجموعه A را سه عضوی می گیریم : 92

93 پس طول تور بهینه برابر 21 می باشد. نحوه پیاده سازی الگوریتم فوق در یک زبان برنامه نویسی به عنوان تمرین بر عهده دانشجویان گذاشته می شود. برنامه آن را به زبان ++C می توانید از کتاب نیپولیتان مطالعه کنید. توجه کنید با آنکه زمان فوق از نوع نمایی است ولی به مراتب بهتر از زمان الگوریتم استاندارد یعنی!(1 n) است. مثال اگر عمل اصلی را یک میکرو ثانیه در نظر بگیریم برای گرافی با 20= n راس داریم : البته الگوریتم ) n θ(n 2 2 نیز هنگامی عملی است که n نسبتا کوچک باشد چرا که مثال برای =n 70 نیز این الگوریتم سال ها وقت نیاز دارد. نکته : 1 می توان اثبات کرد حافظه مورد نیاز این الگوریتم از مرتبه) θ(n2 n است. 93

94 مثال هفتم : بزرگ ترین زیر دنباله )رشته( مشترک (LCS) Z= <B,C,A> Y=<B,D, C, A,B,A> X= دو رشته <A,B,C,B,D,A,B> و را در نظر بگیرید..یک زیر رشته مشترک برای این دو رشته است. توجه کنید که <B,C,A> الزم نیست دقیقا پشت سر هم در دو رشته X و Y ظاهر شده باشد بلکه تنها الزم است توالی ظاهر شدن )اول B بعد C و بعد ) A در دو رشته وجود داشته باشد. k n, X=<x 1, x 2,,x n > به عبارت دقیق تر رشته > k Z = <z 1, z 2,.z یک زیر رشته برای رشته است هر گاه یک رشته اکیدا صعودی مثل > n < i 1 i 2,., i از اندیس های x وجود داشته باشد به گونه ای که برای همه =j k,.,1,2 رابطه x ij = z j برقرار باشد. در مثال فوق زیر رشته C,A>,B> به طول 3 طوالنی ترین زیر رشته مشترک در X و Y نیست. بلکه رشته <B,C,B,A> به طول 4 طوالنی ترین زیر دنباله مشترک آن ها است. در کتاب آقای قلی زاده یک روش پویا برای حل این مساله ارایه شده است.که از مرتبه (m θ(n, است. n و طول دو رشته مورد نظر هستند.. بررسی این Y = < y 1, y 2,.. y n > و X=<x 1, x 2,,x n > m روش را در قسمت مطالعه و تحقیق بر عهده دانشجویان گذتشته ایم. سری کاتان سری معروف کاتان به صورت زیر بوده و جواب بسیاری از مسائل شمارشی می باشد : 94

95 برخی ار مقادیر این سری عبارت اند از : می توان اثبات کرد )به کتاب هورویتز رجوع کنید( که سری فوق معادل فرمول زیر است : حال چند مساله استاندارد را مطرح می کنیم که تعداد حاالت مختلف آنها با سری فوق محاسبه می شود. n مساله ضرب ماتریس ها : در قسمت های قبلی گفتیم تعداد حاالت مختلفی که می توان -1 ماتریس را در هم ضرب کرد حداقل از مرتبه نمایی است. ولی می خواهیم تعداد دقیقاین حاالت را به دست آوریم. فرض کنید در اولین مرحله ضرب ماتریس ها T(i) (A 1 A 1. A i )(A i+1 A i+2. A n ) را در نقطه i به دو دسته تقسیم کرده ایم یعنی : اگر تعداد حاالت ممکن برای ضرب پرانتز سمت چپ باشد.پس (i T(n پرانتز سمت راست بوده و در کل داریم : تعداد حاالت ممکن برای ضرب 95

96 که حل رابطه فوق به فرمول زیر می رسد. ای ضرب 4 ماتریس, 5 حالت زیر امکان پذیر است : 2- مساله تعداد درخت های دودویی : می خواهیم بدانیم با n گره چند فرم درخت دودویی می توان ساخت. مثال برای 3=n جواب 5 است. 3- مساله پشته : می خواهیم بدانیم با n توان داشت. عدد ورودی که به ترتیب وارد یک پشته می شوند, چند حالت مختلف می 96

97 مثال برای اعداد 1 و (3=n) 2 و 3 که به ترتیب از راست به چپ وارد پشته می شوند 5 حالت خروجی زیر امکان پذیر است )داخل پرانتزها را از چپ به راست بخوانید( : (1,2,3), (1,3,2), (2,1,3), (2,3,1), (3,2,1) پس حل مساله فوق مشابه تعداد درخت های دودویی معادل جمله 1+n از سری کاتان است. 4- مساله مثلث بندی چند ضلعی محدب : می خواهیم بدانیم به چند طریق می توان قطرهای نامتقاطع یک چند ضلعی محدب را رسم کرد و n-2 n-3 آن را به مثلث های مختلف تقسیم نمود.در حالت کلی یک n ضلعی همواره با قطر به مثلث افراز می شود.مثال برای =n 5 به 5 صورت مختلف می توان قطرها را بر طبق جمالت فوق رسم کرد : 97

98 پس تعداد حاالت مساله فوق معادل (1-n) امین عدد کاتان است : 98

99 فصل پنجم روش حریصانه 99

100 100

101 مفهوم روش حریصانه : نام این روش از شخصیت معروف اسکروج گرفته شده است. اسکروج به جای آن که به گذشته و آینده فکر کند تنها انگیزه هر روز او به دست آوردن طالی بیشتر بود. الگوریتم حریصانه (Greedy) نیز مانند شیوه اسکروج می باشد. الگوریتم های حریصانه یا آزمند شبیه روش های پویا اغلب برای حل مسائل بهینه سازی استفاده می شوند. در شیوه حریصانه در هر مرحله عنصری که بر مبنای معیاری معین "بهترین " به نظر می رسد بدون توجه به انتخاب هایی که قبال انجام شده یا در آینده انجام خواهد شد, انتخاب می شود.الگوریتم های حریصانه اغلب راه حل هایی ساده هستند.در روش حریصانه بر خالف روش پویا, مساله به نمونه های کوچک تر تقسیم نمی شود. 1, 5,10, 12, مثال 2 : فرض کنید به فردی قرار است تومان پس بدهیم سکه های موجود تومانی است.)با اینکه ما در ایران سکه 12 تومانی نداریم ولی این فرض را بکنید که داریم( 4 12 با الگوریتم حریصانه فوق به این نتیجه می رسیم که باید به آن فرد یک سکه تومانی و سکه یک 5 10 تومانی بدهیم یعنی جمعا 5 سکه. در حالی که حل بهینه مساله فوق یک سکه تومانی, یک سکه تومانی و یک سکه یک تومانی است.یعنی در کل سه سکه. از مثال فوق نتیجه می گیریم که هر الگوریتم حریصانه الزاما حل بهینه را نمی دهد و برای هر مساله خاص باید اثبات کنیم که آیا الگوریتم حریصانه برای آن, جواب بهینه می دهد یا خیر و این موضوع اغلب سخت ترین مرحله کار است. با توجه به مثال های فوق می توان مراحل روش حریصانه را به این صورت بیان کرد : کار با یک مجموعه تهی شروع شده و به ترتیبی خاص عناصری به مجموعه اضافه می شوند.هر دور تکرار الگوریتم شامل بخش های زیر است : 101

102 1- روال انتخاب : این روال عنصر بعدی را طبق یک معیار حریصانه انتخاب می کند. این انتخاب یک شرط بهینه را در همان برهه برآورده می سازد. تحقیق عملی بودن : در این مرحله مشخص می شود که آیا مجموعه جدید به دست آمده برای -2 رسیدن به حل عملی است یا خیر. تحقیق حل : مشخص می سازد که آیا مجموعه جدید نمونه مورد نظر را حل کرده است یا خیر. -3 در ادامه مثال هایی را بیان می کنیم که با این روش حل می شوند و در آخر مثالی را می آوریم که با روش حریصانه قابل حل نبوده و باید روش پویا برای حل آن استفاده کرد وبدین ترتیب روش پویا و حریصانه را با یکدیگر مقایسه می کنیم تا دریابیم در هر مورد بهتر است از کدام روش استفاده کرد. مثال اول : الگوریتم پریم (prim) در درس ساختمان داده ها خوانده ایک که درخت یک گراف بدون جهت, متصل و بی چرخه است. به عبارتی دیگر درخت یک گراف بدون جهت است که در آن بین هر جفت از رئوس فقط و فقط یک مسیر وجود دارد. توجه کنید در این تعریف هیچ گره ای را به عنون ریشه در نظر نمی گیریم ولی در درخت ریشه دار tree) (rooted یکی از راس ها ریشه می باشد و اغلب منظور از درخت, درخت ریشه دار است. البته در این قسمت فرض می کنیم با درخت هایی سر و کار داریم که ریشه آن ها برای ما مهم نیست. درخت پوشا برای یک گراف, یک زیر گراف متصل می باشد که حاوی همه G (spanning tree) راس های گراف G بوده و همچنین یک درخت است به عبارت دیگر درخت پوشا شامل همه رئوس و برخی یال های گراف است به نحوی که متصل بوده و چرخه نیز ندارد. 102

103 مثال برای گراف بدون جهت وزن دار زیر سه درخت پوشا را در پایین آن رسم کرده ایم. همان طور که مشاهده می کنید یک گراف ممکن است چندین درخت پوشا داشته باشد. گراف فوق درخت های پوشای بیشتری از آن چه در باال رسم کرده ایم دارد. وزن کلی درخت های فوق عبارت اند از : = = =

104 همان طور که می دانید یک گراف بدون جهت را می توان به صورت دو مجموعه E, V نشان داد : (E G=(Vکه, V مجموعه رئوس و E مجموعه یال ها می باشند. مثال برای گراف قبلی داریم : در گراف بدون جهت ) 2 (V 1, V با ) 1 (V 2, V یکسان است ولی قرارداد می کنیم که هنگام نوشتن ابتدا راسی که اندیس کوچک تر دارد بیاوریم. درخت پوشای T برای گراف (E =G V), شامل همه رئوس V می باشدولی برخی از یال های E را دارد که آنها را با F نمایش می دهیم. پس : T = (V, F), F E در الگوریتم پریم ابتدا مجموعه یال های F را برابر تهی و مجموعه رئوس Y را نیز برابر یک راس دلخواه قرار می دهیم.سپس نزدیک ترین راس به Y را از مجموعه V-Y انتخاب می کنیم. بدیهی است که این V 2 Y راس توسط یالی با کمترین وزن به راسی از مجموعه متصل است.مثال در گراف زیر را انتخاب کرده که کمترین یال )برابر 1( را دارد. بدین ترتیب V 2 را به Y و ) 2 V) 1, V را به F اضافه می کنیم: 104

105 در قدم بعدی V 3 را به مجموعه Y و ) 3 V) 1, V را به مجموعه F اضافه می کنیم : این عملیات افزودن نزدیک ترین رئوس را آن قدر تکرار می کنیم تا Y=V چرخه نیز بررسی می گردد : شود. البته باید عدم ایجاد Y={V 1, V 2, V 3 } در مرحله فوق فاصله } 5 V-Y = {V 4, V را با گره های وجود در مقایسه کردیم و V 5 V 3 دیدیم که فاصله V 5 با گره از همه کمتر است لذا را به Y و ) 5 (V 3, V را به F اضافه کردیم. V 4 در مرحله آخر فاصله V 4 را با گره های موجود در } 5 Y = {V 1, V 2, V 3, V مقایسه کرده و گره را به Y و ) 4 V) 3, V را به F اضافه می کنیم و درخت پوشای کمینه به دست می آید. 105

106 الگوریتم فوق را به صورت زیر می توان بیان کرد : ا لبته در هنگام انتخاب راس از -V Y باید دقت کرد که حلقه ایجاد نشود. نکته : در یک گراف کامل K n با n راس به تعداد 2-n n درخت پوشا وجود دارد. از آنجا که در الگوریتم پریم در هر مرحل فاصله هر گره با گره های قبلی مقایسه می شود پس بدیهی است که از مرتبه ) 2 θ(n می باشد که n تعداد رئوس گراف است. ) 2 θ(n :مرتبه اجرای الگوریتم پریم 106

107 هر چند که الگوریتم حریصانه اغلب ساده تر از الکوریتم های پویا هستند ولی معموال مشخص کردن این که آیا این الگوریتم حریصانه همواره جواب بهینه را می دهد دشوار بوده و نیاز ه اثبات رسمی دارد.در کتاب نیپولیتان قضیه ای اثبات شده است که نشان می دهد الگوریتم پریم همواره یک درخت پوشای کمینه را تولید می کند. مثال دوم : الگوریتم کروسکال (kruskal) این الگوریتم نیز مشابه الگوریتم پریم برای یافتن درخت پوشای کمینه یک گراف به کار می رود.در این الگوریتم ابتدا یال ها از کمترین وزن به بیشترین وزن مرتب می شوند سپس یال ها به ترتیب انتخاب شده و اگر یالی ایجاد حلقه کند کنار گذاشته می شود. عملیات هنگامی خاتمه می یابد که تمام راس ها به هم وصل شوند یا این که تعداد یال های موجود در f برابر 1-n شود که تعداد راس ها است. در برخی کتاب ها این روش با نام راشال مطرح شده است. شکل زیر مراحل کار برای یک گراف شخصی را نشان می دهد. 107

108 e بیشتر زمان در الگوریتم کروسکال مربوط به مرتب سازی یال هاست پس اگر تعداد یال باشد زمان این الگوریتم از مرتبه θ(elge) خوهد بود. ممکن است به نظر برسد که این زمان بستگس به n )تعداد رئوس ) ندارد. ولی همان طور که می دانید در بهترین حالت تعداد یال ها برابر 1-n و در بدترین حالت که گراف کامل باشد و بین هر دو راس یک مسیر مستقیم داشته باشیم تعداد یال ها برابر n(n 1) 2 خواهد بود یعنی : پس اگر e نزدیک به کران پایین باشد یعنی گراف نسبتا خلوت بوده و یال کمی داشته باشد : الگوریتم کروسکال از مرتبه رو به رو است : 108

109 و اگر e نزدیک به کران باال باشد یعنی گراف نسبتا پر باشد و یال های زیادی داشته باشد : خالصه آنکه پس اگر گرافی یال های کمی دارد بهتر است از روش کروسکال و اگر یال های زیادی دارد بهتر است از روش پریم استفاده کنیم. تذکر : می توان اثبات کرد که الگوریتم کروسکال همواره یک درخت پوشای کمینه ایجاد می کند. شکل زیر مراحل الگوریتم فوق را برای یک گراف فرضی نشان می دهد : 109

110 محاسبه کوتاه ترین مسیر از V 1-1 V 5 ابتدا راس V 5 را انتخاب ی کنیم چرا که نزدیک ترین راس به V 1 می باشد و بدین دلیل را به Y -2 و > 2 < V 1, V را به F اضافه ی کنیم. V 4 V 4 حال با در نظر گرفتن گره V 5 به عنوان واسطه گره را انتخاب می کنیم چرا که کوتاه ترین -3 مسیر تا V 1 را )به کمک گره V( 5 دارد. 110

111 V 1 راس V 5 را انتخاب می کنیم چرا که با واسطه گری } 5 V} 4, V کوتاه ترین مسیر از را دارد. -4 در آخر نیز را انتخاب می کنیم و می بینیم که کوتاه ترین مسیر از V 2 مسیر به V 1 V 2-5 F است.لذا را به Y و آخرین یال مسیر مذکور یعنی > 2 < V 4, V را به V 2 [V 1, V 5, V 4, V 2 ] اضافه می کنیم. 111

112 مثال چهارم : الگوریتم هافمن : A n,. A 2, A 1 n فرض می کنید می خواهید عنصر اطالعاتی را به وسیله رشته هایی از بیت ها به صورت کد درآوریم. یک راه ساده برای این منظور آن است که هر عنصر را به وسیله یک رشته r بیتی کد گذاری کنیم که در آن در این حالت طول کد همه عناصر با هم یکسان است. 2 r 1 < n < 2 r مثال : برای کد گذاری 48 کاراکتر حداقل به چند بیت نیاز داریم 32 = 2 5 < = 64 r = 6 پس حداقل به 6 بیت نیاز داریم. حال فرض کنید عنصر های اطالعاتی با احنمال مساوی اتفاق نمی افتد آنگاه می توان با استفاده از رشته های با طول متغیر در مصرف حافطه صرفه جویی کرد. 112

113 به این ترتیب که عناصری که اغلب ظاهر می شوند با رشته های کوتاهتر و عناصری که به ندرت ظاهر می شوند با رشته های بزرگ تر نشان داده شوند.برای پیدا کردن این کدهای با طول متغیر می توان از الگوریتم های هافمن استفاده کرد. الگوریتم هافمن را با مثال زیر شرح می دهیم. فرض کنید A,H,G,F,E,D,C,B,A عنصر اطالعاتی با وزن های مشخص شده هستند. می خواهیم درخت با حداقل طول مسیر وزن داده شده را با استفاده از اطالعات باال و الگوریتم هافمن ترسیم کنیم. شکل زیر مراحل کار را نشان می دهد. در هر مرحله دو درختی که ریشه مینیمم دارند را با هم ترکیب می کنیم )وزن آن ها را با هم جمع می کنیم(. گره با وزن کمتر سمت چپ قرار می گیرد. 113

114 اگر همین طور الگوریتم را ادامه دهید شکل نهایی به صورت زیر می شود : درخت هافمن 114

115 همان طور که مشاهده کردید درخت عافمن از پایین به باال )از برگ ه ریشه ) ساخته می شود. H, G, F, E, D, C,B, A : مثال 8 عنصر اطالعاتی مثال قبلی را در نظر بگیرید. فرض کنید وزن ها نمایش درصد احتمالی باشند که عنصرها ظاهر می شوند.آنگاه درخت این عناصر با حداقل طول مسیر وزن داده شده را با الگوریتم هافمن می سازیم و سپس به شاخه های سمت چپ بیت 0 و به شاخه های سمت راست 1 را نسبت می دهیم. 115

116 حال برای پیدا کردن کد هر عنصر از ریشه تا آن عنصر حرکت کرده و بیت های مشاهده شده را می نویسیم: همان طور که مشاهده می کنید G که احتمال ظهور 25% دارد با رشته دو بیتی ولی B که احتمال ظهور 5% دارد با رشته 5 بیتی نشان داده شده است. 15 تمام می شود. در این حالت زمان کل در یعنی مثال در زمان 5 پردازنده به در زمان P 2 داده شده و P 2 سیستم یا به عبارت دیگر جمع زمان برگشت 3 برنامه برابر است با : =

117 همان طور که سیستم عامل خوانده اید اگر عامل زمانبندی (Shortest job First) SJF باشد, یعنی ابتدا به کوتاه ترین کارها سرویس دهیم, جمع زمان برگشت )یا زمان کل در سیستم ) حداقل خواهد بود. در مثال فوق اگر به ترتیب ] 2 P] 3 P, 1 P, سرویس دهی شوند, خواهیم داشت : ابتدا برنامه ها را به صورت صعودی مرتب می کنیم : {1,2,2,4,7,8,13} CPU1 CPU2 سپس اولین کار را به CPU1 و دومین کار را به می دهیم.بدیهی است که کارش را زودتر تمام می کند. لذا کار سوم را به CPU1 می دهیم و الی آخر. ولی اگر ترتیب 8 و 13 را در مرحله آخر عوض کنیم : 117

118 مثال : چهار کار زیر که همگی طول اجرای 1 داشته با بهره و مهلت داده شده را در نظر بگیرید : اینکه مهلت کار 3 برابر است یعنی اگر کا یا زمان در زمان شروع شود, بهره معادل آن به دست می آید و اگر بخواهد در زمان 3 یا بیشتر آغاز شود غیر قابل قبول بوده و بهره ای را نمی دهد در مثال فوق فرض می کنیم زمان صفر نداریم و شروع زمان 1 می باشد. برای مثال فوق انواع زمانبندی های ممکن و نیز بهره های به دست آمده عبارت اند از 118

119 در جدول فوق زمانبندی های غیرممکن نوشته نشده اند. مثالض زمانبندی [4,1] امکان پذیر نیست زیرا 4 اگر کار 1 اجرا شود دیگر مهلت کار تمام شده و نمی تواند اجرا گردد.هدف از این مثال به دست آوردن زمانبندی [4,1] با باالتریت بهره کل 70 است. اگر بخواهیم همه زمانبندی های ممکن را در نظر بگیریم الگوریتمی ار مرتبه ی فاکتوریل خواهد بود که خیلی زمان بر است لذا الگوریتمی حریصانه و بسیار سریع تر معرفی می کنیم. مثال : بهترین زمان بندی برای جدول زیر را جهت به دست آوردن حداکثر بهره بیان کنید. حل : جدول فوق بر اساس بهره های نزولی مرتب شده است. 119

120 قضیه : الگوریتم حریصانه ای که در باال شرح دادیم, همواره یک مجموعه بهینه را تولید می کند. اثبات قضیه فوق الذکر در کتاب نیپولیتان آمده است. کارهایی که در الگوریتم فوق صورت می گیرد یکی مرتب کردن n کار بر اساس بهره است که به زمان θnlgn نیاز دارد. دیگری بررسی امکان پذیر بودن مجموعه پدید آمده در همه مرحله ها که از مرتبه ) 2 θ(n بوده و بر طمان nlgn برتری دارد لذا 120

121 مثال هشتم : مساله کالسیک کوله پشتی (Knapsack) دزدی با کوله پشتی خود وارد جواهر فروشی می شود. کوله پشتی او تحمل حداکثر وزن W را دارد و بیشتر از آن را پاره می شود. هر قظعه جواهر وزن ) i W) و ارزش ) i (P معینی دارد. مساله مهم دزد انتخاب قطعاتی است که حداکثر ارزش را داشته باشد و نیز جمع وزن آنها از حداکثر W بیشتر نشود و این مساله کالسیک کوله پشتی است. یک راه حل ساده و غیر هوشمندانه آن است که همه زیر مجموعه های ممکن از n قطعه را در نطر بگیریم و با مقایسه کردن همه آنها حالتی را در نظر بگیریم که بیشترین ارزش را داشته و جمع وزن آن ها W باشد. از آنجا که تعداد این زیر مجموعه ها 2 n است لذا این الگوریتم از مرتبه نمایی است و ما دنبال راه حل سریع تری هستیم. ممکن است به نظر برسد یک راه حل حریصانه آن است که قطعاتی با ارزش بیشتر را زودتر برداریم تا هنگامی که جمع وزن آن ها به W برسد. ولی با مثال های ساده ای می توان نشان داد که این روش غلط است.مثال سه قطعه با وزن و ارزش های زیر را در نظر بگیرید : 10 میلیون فرض کنید حداکثر 30=W کیلوگرم باشد. در این حالت دزد فقط قطعه اول را برمی دارد که تومان به دست می آورد. در حالی که اگر قطعات دوم و سوم را برمی داشت صاحب 18 میلیون تومان می شد. 121

122 یک راه حل حریصانه دیگر آن است که قطعات را به ترتیب افزایش ارزش آنها به ازای واحد وزن مرتب کرده و سپس آنها را به ترتیب انتخاب می کنیم. برای جدول زیر و برای حداکثر 30=W 122

123 فصل ششم تکنیک عقبگرد 123

124 مفهوم تکنیک عقبگرد (Backtracking) فرض کنید در غار علی صدر قایقرانی می کنید و در 1000 توی این غار هنگامی که به بن بست می رسید باید از همان راهی که آمده اید بازگردید و بر سر دوراهی ها مسیر خود را عوض کنید. حال اگر بر سر برخی دو راهی ها تابلویی وجود داشته باشد که به شما بگوید انتهای این مسیر بن بست است آنگاه صرفه جویی زیادی در وقت خوذ خواهید کرد. مثال در مورد مسله کوله پشتی,,0 1 یک راه غیر هوشمندانه تولید تمام 2 n زیرمجموعه برای n قطعه بود که برای n های بزرگ بسیار زمان بر است. ولی اگر هنگام تولید این زیرمجموعه ها بتوانیم از عالئمی استفاده کنیم که به ما بگویید تولید بسیاری از این زیر مجموعه ها الزم نیست, آنگاه در وقت صرفه جویی زیادی می کنید. این تکنیک همان الگوریتم عقبگرد, پس گرد, پی جویی به عقب یا Backtracking است. الگوریتم های عقبگرد اغلب برای بسیاری از نمونه های بزرگ موثر می باشد اما نه برای همه نمونه ها. روش عقبگرد برای حل مسائلی به کار می رود که در آن دنباله ای از اشیا از یک مجموعه مشخص انتخابب می شود. به گونه ای که این دنباله مالک و قانونی خاصی رعایت کند. مشهورترین مساله کالسیک برای این تکنیک, مساله problem) (n-queen nوزیر است.در این مساله n*n می خواهیم n وزیر را در یک صفحه شطرنج به گونه ای قرار دهیم که هیچ وزیری نتواند دیگری را تهدید کند. یعنی هیچ دئ مهره ای نباید در یک سطر, ستون یا قطر یکسان قرار گیرند. n 2 n در این مسئله n وزیر منظور از دنباله مکانی است که وزیرها قرار می گیرند و مجموعه موقعیت در صفحه شطرنج و مالک و قانون (criterion) آن است که هیچ دو وزیری همدیگر را تهدید نکنند. تکنیک عقبگرد در واقع حالت اصالح شده ای از جستجوی عمقی یک درخت است.بحث جستجو و پیمایش درخت ها را به طور مفصل در درس ساختمان داده ها خوانده ایم. در اینجا جهت یادآوری پیمایش 124

125 یک درخت ( که نوعی پیمایش عمقی است( را یادآوری می کنیم.در این پیمایش ابتدا ریشه و preorder سپس فرزندان آن )عموما به ترتیب از چپ به راست ) پیمایش می شوند. تابع بازگشتی زیر این پیمایش را انجام می دهد. مثال در درخت شکل زیر گره ها به ترتیب پیمایش عمقی preorder شماره گذاری شده اند : نکته مهم در جستجوی فوق آن است که اغلب از جستجوی همه حاالت ممکن خودداری شده و حاالت و شاخه هایی که بنا به دالیلی منجر به پاسخ مورد نظر نمی شوند, حذف می گردند. 125

126 مثال اول : قفل رمزی (0) (1) یک قفل رمزی شامل n کلید دیجیتالی است که هر کلید فقط دو حالت بسته و یا باز دارد. می دانیم که n کلید دیجیتالی تعداد 2 n حالت مختلف را پدید می آورند و این قفل تنها با یک حالت که همان رمز است باز می شود. فرض کنید در یک مساله ساده = 3 n باشد و ما رمز را فراموش کرده باشیم. در حالت معمولی باید 8 حالت ممکن را بررسی کنیم ولی مثال اگر یادمان باشد که این رمز شامل دو رقم 1 جواب رسید. بوده می توان سریع تر به درخت زیر که به درخت فضای حالت tree) (state space معروف است تمام حالت های مختلف را نشان می دهد: قسمت هایی از درخت فوق با مسیر بسته نقطه چین مشخص ساخته ایم را بررسی نمی کنیم و بدین ترتیب قلمرو و فضای پاسخ را کوچک تر و محدودتر می کنیم. 126

127 مساله دوم : مساله n وزیر همان طور که قبال گفتیم در این مسئله می خواهیم تمامی حاالتی را پیدا کنیم که بتوان n وزیر را در صفحه شطرنج n*n قرار دارد به نحوی که هیچ دو وزیری یکدیگر را تهدید نکنند. می دانید که صفحه شطرنج استاندارد 8*8 می باشد. در ابتدا جهت سادگی n را برابر 4 در نظر می گیریم. یک راه حل روشن ولی غیر هوشمندانه آن است که مثال برای حالت 4=n تمامی حاالت ممکن چیدن مهره ها را آزمایش کنیم. ولی تعداد این حاالت ( 16 4 ) بوده که 1820 می شود. اولین حرکت برای باال بردن کارایی این است که می دانیم هیچ دو وزیری نمی توانند در یک سطر قرار بگیرند. لذا می توانیم برای ثبت محل قرارگیری وزیرها از آرایه یک بعدب با 4 خانه استفاده کنیم که (2,4,1,3) محتویات هر خانه شماره ستون محل قرار گیری وزیر در سطر مورد نظر را نشان می دهد.مثال متناظر شکل زیر بوده و یک جواب قابل قبول می باشد : 127

128 بخشی از درخت فضای حالت مثال فوق, که در کل 256 برگ دارد را در زیر رسم کرده ایم : زوج مرتب <j < I, به این معناست که وزیر در ردیف i ام و ستون j ام قراردارد.هر یک از مسیرها از ریشه به برگ یک حل کاندید است مانند مسیرهای زیر : 128

129 ولی با توجه به دو نکته می توان بخش های زیادی از درخت فوق را کنار گذاشت.یکی آنکه هیچ دو وزیری نمی توانند در یک ستون باشند لذا مثال در درخت فوق زیر شاخه های > 1, 2> را بررسی نمی کنیم. دوم آنکه هیچ دو وزیری نمی توانند در یک قطر باشند پس اگر وزیر اول در خانه > 1,1> باشد دیگر زیر شاخه های <2, 2> را بررسی نمی کنیم. 129

130 مفهوم واقعی درخت فوق و بررسی های مذکور در صفحه شطرنج 4*4 واقعی در شکل های زیر نشان داده شده است. 130

131 در این شکل وزیر سطر, 6 سطر 3 را در قطر سمت چپ خود تهدید می کند و داریم : Col (6) Col(3) = 4-1 = 3 = 6-3 همچنین وزیر سطر, 6 وزیر سطر 2 را در قطر سمت راست خود تهدید می کند و داریم : Col(6) col(2) = 4-8 = -4 = 2-6 پس وزیر در سطر i ام به شرطی وزیر در سطر k ام را تهدید می کند که شرط زیر برقرار باشد. شرط فوق را به کمک تابع قدر مطلق می توان به صورت زیر نوشت : 131

132 با توجه به توضیحات داده شده الگوریتم عقبگرد برای مساله n وزیر را می توان به صورت زیر نوشت : n ورودی این الگوریتم عدد صحیح و مثبت n و خروجی آن همه راه های ممکن جهت قرار دادن وزیر در یک صفحه شطرنج n*n است به گونه ای که هیچ دو وزیری یکدیگر را تهدید نکنند. هر خروجی آرایه از اعداد صحیح به نام col است که اندیس های این آرایه از 1 تا n بوده و col[i] نمایانگر ستونی است که وزیر سطر i ام در آن قرار می گیرد. الگوریتم فوق به صورت queens(0) در باالترین سطح صدا زده می شود. خروجی الگوریتم فوق برای 4=n به صورت زیر خواهد بود : 132

133 مثال سوم : رنگ آمیزی گراف : در این مساله می خواهیم تمام راه های ممکن جهت رنگ آمیزی گره های یک گراف بدون جهت را با استفاده از حداکثر m رنگ متفاوت پیدا کنیم به گونه ای که هیچ دو راس مجاوری هم رنگ نباشند. توجه کنید هدف رنگ کردن داخل گره ها است و نه فضای بین یال ها. مثال : در گراف شکل زیر : نمی توان با دو رنگ متفاوت گراف را به گونه ای رنگ آمیزی کرد که رئوس مجاور هم رنگ نباشند.ولی با 3 رنگ متفاوت این کار امکان پذیر است و یکی از راه های مکن عبارت است از : 133

134 البته برای حل مسئله فوق 6 حل وجود دارد که فقط در شیوه جابه جایی رنگ ها با هم فرق دارند.مثال یک حل دیگر عبارت است از : یک کاربرد مهم حل این مساله, رنگ آمیزی نقشه ها است ولی قبل از آن الزم است مفهوم گراف مسطح شرح داده شود. گرافی را مسطح می گوییم به شرطی که آن را بتوان در یک صفحه به گونه ای رسم کرد که هیچ دو یالی همدیگر را قطع نکنند. مثال گراف شکل زیر )سمت چپ مسطح است( : 134

135 135

136 تابع فوق در سطح باال به صورت m_coloring(0) صدا زده می شود. تعداد گره ها در درخت فضای حالت الگوریتم فوق برابر است با : مثال چهارم : مساله حاصل جمع زیر مجموعه ها W i در این مساله n عدد صحیح مثبت و یک عدد صحیح مثبت W داریم.هدف پیدا کردن تمامی زیر مجموعه هایی از این اعداد صحیح می باشد که حاصل جمع آنها برابر W است. w 1 = 5, w 2 = 6, w 3 = 10, w 4 = w=21 مثال برای 5=n و مقادیر زیر 11 w 5 =

137 حل : مسئله شامل جواب های زیر است : پس الگوریتم باید مجموعه های } 3 w }و 1, w 2, w } 5 {w 1, w و{ {w 3, w 4 را به عنوان خروجی بدهد. مسائلی مانند فوق را می توان به کمک ترسیم درخت فضای حالت و تکنیک عقبگرد حل کرد. مثال : برای n=3 و w=6 ومقادیر = 5 3 w و =1 1 w 2 = 4, w درخت فضای حالت به شکل زیر است : اگر داخل گره های درخت فوق جمع اوزان انتخاب شده تا آن گره را بنویسیم با توجه به مقادیر 6=w 1 1= w 2 = 4, w و = 5 3 w درخت فضای حالت زیر را به دست خواهیم آورد : 137

138 مسئله فوق یک جواب } 2 {w 1, w دارد. i وزن های بعدی آن نیز چنین خواهند بود. لذا اگر weight مساوی W نباشد گره ای در سطح به ام شرطی غیر امید بخش است که داشته باشیم : weight + w i+1 > w یک ویژگی دیگر نیز برای بررسی غیر امید بخش بودن یک گره می توان بیان کرد.اگر در یک گره معین اضافه کردن همه وزن های قطعات باقی مانده به weight آن را حداقل با w برابر نکند در این حالت مقدار weight در سطح بعدی آن گره هیچ گاه با W مساوی نمی شود. به عبارتی دیگر اگر Total برابر مجموع w i های باقیمانده باشد یک گره در صورتی غیرامید بخش است که داشته باشیم. weight + total < w مثال : برای n=4 و w=13 و مقادیر = 16 5 w w 1 = 3, w 2 = 4, w 3 = 5, w 4 = 6 138

139 درخت فضای حالت هرس شده با در نظر گرفتن دو شرط گفته شده در فوق )جهت بررسی امیدبخش بودن گره ها(به صورت زیر خواهد بود. توجه کنید که کل درخت فضای حالت 31 گره دارد و درخت هرس شده زیر دارای 15 گره است : گره های حاوی اعداد 12, 8, 9 به خاطر شرط weight + w 1+i > w غیر امید بخش هستند. گره های حاوی اعداد 7,3,4,0 به خاطر شرط weight + total < w غیر امید بخش می باشند. n و ورودی این برنامه عدد صحیح مثبت n آرایه صعودی از اعداد صحیح مثبت w دارای اندیس های 1 تا عدد صحیح مثبت w است خروجی این برنامه تمامی ترکیبات اعداد داخل آرایه w است به گونه ای که حاصل جمع آن ها برابر w گردد. متغیرهای include, W,w,n سراسری هستند. 139

140 تابع اصلی در سطح باال به صورت (0,0,total) sum_of_subsets صدا زده می شود که در ابتدا = total می باشد. n j=1 w[j] در بدترین حالت تعداد گره هایی که در درخت فضای حالت الگوریتم فوق جستجو می شوند برابر است با : هر چند که در موارد زیادی تعداد واقعی گره های مورد بررسی از حداکثر فوق کمتر است ولی به هر حال الگوریتم فوق از مرتبه نمایی است و ممکن است در شرایطی الزم باشد همه گره ها بررسی شوند. مثال در حالتی که داشته باشیم : n w i < W, w n = W j=1 آنگاه مساله فقط یک جواب } n w} داشته و برای یافتن آن باید همه گره ها بررسی شوند. 140

141 حل مساله کوله پشتی صفر و یک با تکنیک عقبگرد در کتاب نیپولیتان مساله کوله پشتی صفر و یک به شیوه عقبگرد نیز حل شده است که مطالعه آن را بر عهده دانشجویان قرار می دهیم. در اینجا فقط این نکته را یادآوری می کنیم که حل این مساله با روش برنامه نویسی پویا از مرتبه nw) O(Min 2) n, بوده و در روش عقبگرد در بدترین حالت ) n 2)θ گره را چک می کند. ممکن است به خاطر nw تصور شود که تکنیک پویا به تکنیک به تکنیک عقبگرد در این مساله ارجحیت دارد ولی با اجرای واقعی روی کامپیوتر هورویتز و شانی در سال 1978 نشان دادند که در مساله کوله پشتی صفر و یک روش عقبگرد معموال بازدهی بیشتری نسبت به روش پویا دارد. همچنین هورویتز و شانی در سال 1974 با ترکیب روش تقسیم و حل و روش برنامه نویسی پویا الگوریتمی را مطرح کردند که در بدترین حالت به (2 n 2)θ تعلق داشت و نشان دادند این الگوریتم اغلب بازدهی بیشتری نسبت به الگوریتم عقبگرد دارد. 141

142 فصل هفتم آشنایی با نظریه NP 142

143 143

144 مسائل P و NP P عبارت از تمامی مسائل تصمیم گیری می باشد که به کمک الگوریتم هایی از مرتبه چند جمله ای قابل P مخفف Polynomial )چند جمله ای ) است. حل هستند. به عنوان مثال تعیین کنید اینکه آیا کلید خاص در آرایه ای وجود دارد یا خیر از نوع مساله p هستند.مسائل halting زیادی جزو p هستند.از طرف دیگر مسائل اندکی مثل مساله و حساب پرزبرگر اثبات شده اندکه جزو p نمی باشند. نکته جالب آن است که مسائل زیاد دیگری وجود دارد که نمی دانیم آیا جزو دسته p هستند یا خیر مانند مساله تصمیم گیری فروشنده دوره گرد. مثال در مورد مساله تصمیم گیری فروشنده دوره گرد می توان الگوریتمی شبیه زیر نوشت که تصدیق کند آیا تور پیشنهادی وزن کوچکتر یا مساوی d را دارد یا خیر. ورودی این الگوریتم گراف G عدد d و رشته S حاوی تور ادعا شده است : تعریف : الگوریتم چند جمله ای غیرقطعی یا NP چند جمله ای می باشد. یک الگوریتم غیرقطعی است که مرحله تصدیق آن زمان منظور از Polynomial) (Nondeterministic مجموعه تمامی مسائل تصمیم گیری است که NP توسط الگوریتم های چند جمله ای غیرقطعی قابل حل هستند. 144

145 Nonpolynomial NP تذکر مهم : مخفف )غیر چند جمله ای( نیست بلکه مخفف Nondeterministic Polynomial )چند جمله ای غیرقطعی( است. مساله تصمیم گیری فروشنده دوره گرد یک مساله NP است چرا که عمل تصدیق آن را در زمان چند جمله ای صورت می گیرد البته ذکر این نکته بسیار ضروری است که معنای جمله فوق این نیست که الزاما الگوریتمی با زمان چند جمله ای برای حل مساله داریم. هدف از تعاریف P و NP طبقه بندی کردن الگوریتم ها است. می توان اثبات کرد که مسائل تصمیم گیری فروشنده دوره گرد کوله پشتی صفر و یک و رنگ آمیزی گراف همگی از نوع NP هستند.همچنین هزاران مساله دیگر وجود دارند که اثبات شده جزو NP بوده ولی هیچکس تاکنون نتوانسته برای حل آن ها الگوریتم هایی چند جمله ای بیان کند. بدیهی است که مسائل P را می توان در زمان چند جمله ای حل کرد و لذا مرحله تصدیق آن ها نیز به سادگی چند جمله ای خواهد بود.بنابراین تمامی مسائل تصمیم گیری را به صورت شکل زیر می توان طبقه بندی کرد : NP مسائلی که بغرنج بودن آنها به اثبات رسیده نظیر مساله halting و حساب پرزبرگر در نیستند.نکته جالب دیگر آن است که تاکنون کسی نتوانسته است اثبات کند که آیا P = NP است و یا برعکس NP P می باشد و این در واقع یکی از مهم ترین پرسش های بی پاسخ در علم کامپیوتر است. 145

146 این سوال از آن جهت اهمیت دارد که اکثر مسائل تصمیم گیری جزو NP می باشند و بنابراین اگر P = NP باشد برای اکثر مسائل تصمیم گیری می توان الگوریتم های چند جمله داشت. البته بسیاری از دانشمندان شک دارند که NP = P باشد. NP-hard, NP-Complete شرح کامل مسائل NP کامل (NP-Complete) و NP سخت (NP_hard) در کتاب نیپولیتان آمده است که به عنوان تحقیق و مطالعه بر عهده دانشجویان قرار می دهیم. P NP در اینجا خیلی خالصه بیان می کنیم که اگر P = NP باشد شکل سمت چپ زیر و اگر باشد شکل سمت راست زیر را خواهیم داشت : NP کامل NP یعنی اگر P NP باشد آنگاه = NP کامل P است. همچنین هر مساله سخت نیز می باشد یعنی NP کامل زیر مجموعه NP سخت است. 146

روش محاسبه ی توان منابع جریان و منابع ولتاژ

روش محاسبه ی توان منابع جریان و منابع ولتاژ روش محاسبه ی توان منابع جریان و منابع ولتاژ ابتدا شرح کامل محاسبه ی توان منابع جریان: برای محاسبه ی توان منابع جریان نخست باید ولتاژ این عناصر را بدست آوریم و سپس با استفاده از رابطه ی p = v. i توان این

Διαβάστε περισσότερα

محاسبه ی برآیند بردارها به روش تحلیلی

محاسبه ی برآیند بردارها به روش تحلیلی محاسبه ی برآیند بردارها به روش تحلیلی برای محاسبه ی برآیند بردارها به روش تحلیلی باید توانایی تجزیه ی یک بردار در دو راستا ( محور x ها و محور y ها ) را داشته باشیم. به بردارهای تجزیه شده در راستای محور

Διαβάστε περισσότερα

جلسه ی ۱۰: الگوریتم مرتب سازی سریع

جلسه ی ۱۰: الگوریتم مرتب سازی سریع دانشکده ی علوم ریاضی داده ساختارها و الگوریتم ها ۸ مهر ۹ جلسه ی ۱۰: الگوریتم مرتب سازی سریع مدر س: دکتر شهرام خزاي ی نگارنده: محمد امین ادر یسی و سینا منصور لکورج ۱ شرح الگور یتم الگوریتم مرتب سازی سریع

Διαβάστε περισσότερα

مفاهیم ولتاژ افت ولتاژ و اختالف پتانسیل

مفاهیم ولتاژ افت ولتاژ و اختالف پتانسیل مفاهیم ولتاژ افت ولتاژ و اختالف پتانسیل شما باید بعد از مطالعه ی این جزوه با مفاهیم ولتاژ افت ولتاژ و اختالف پتانسیل کامال آشنا شوید. VA R VB به نظر شما افت ولتاژ مقاومت R چیست جواب: به مقدار عددی V A

Διαβάστε περισσότερα

مثال( مساله الپالس در ناحیه داده شده را حل کنید. u(x,0)=f(x) f(x) حل: به کمک جداسازی متغیرها: ثابت = k. u(x,y)=x(x)y(y) X"Y=-XY" X" X" kx = 0

مثال( مساله الپالس در ناحیه داده شده را حل کنید. u(x,0)=f(x) f(x) حل: به کمک جداسازی متغیرها: ثابت = k. u(x,y)=x(x)y(y) XY=-XY X X kx = 0 مثال( مساله الپالس در ناحیه داده شده را حل کنید. (,)=() > > < π () حل: به کمک جداسازی متغیرها: + = (,)=X()Y() X"Y=-XY" X" = Y" ثابت = k X Y X" kx = { Y" + ky = X() =, X(π) = X" kx = { X() = X(π) = معادله

Διαβάστε περισσότερα

تحلیل مدار به روش جریان حلقه

تحلیل مدار به روش جریان حلقه تحلیل مدار به روش جریان حلقه برای حل مدار به روش جریان حلقه باید مراحل زیر را طی کنیم: مرحله ی 1: مدار را تا حد امکان ساده می کنیم)مراقب باشید شاخه هایی را که ترکیب می کنید مورد سوال مسئله نباشد که در

Διαβάστε περισσότερα

جلسه ی ۵: حل روابط بازگشتی

جلسه ی ۵: حل روابط بازگشتی دانشکده ی علوم ریاضی ساختمان داده ها ۶ مهر ۲ جلسه ی ۵: حل روابط بازگشتی مدر س: دکتر شهرام خزاي ی نگارنده: ا رمیتا ثابتی اشرف و علی رضا علی ا بادیان ۱ مقدمه پیدا کردن کران مجانبی توابع معمولا با پیچیدگی

Διαβάστε περισσότερα

جلسه ی ۴: تحلیل مجانبی الگوریتم ها

جلسه ی ۴: تحلیل مجانبی الگوریتم ها دانشکده ی علوم ریاضی ساختمان داده ها ۲ مهر ۱۳۹۲ جلسه ی ۴: تحلیل مجانبی الگوریتم ها مدر س: دکتر شهرام خزاي ی نگارنده: شراره عز ت نژاد ا رمیتا ثابتی اشرف ۱ مقدمه الگوریتم ابزاری است که از ا ن برای حل مسا

Διαβάστε περισσότερα

1) { } 6) {, } {{, }} 2) {{ }} 7 ) { } 3) { } { } 8) { } 4) {{, }} 9) { } { }

1) { } 6) {, } {{, }} 2) {{ }} 7 ) { } 3) { } { } 8) { } 4) {{, }} 9) { } { } هرگاه دسته اي از اشیاء حروف و اعداد و... که کاملا"مشخص هستند با هم در نظر گرفته شوند یک مجموعه را به وجود می آورند. عناصر تشکیل دهنده ي یک مجموعه باید دو شرط اساسی را داشته باشند. نام گذاري مجموعه : الف

Διαβάστε περισσότερα

تصاویر استریوگرافی.

تصاویر استریوگرافی. هب انم خدا تصاویر استریوگرافی تصویر استریوگرافی یک روش ترسیمی است که به وسیله آن ارتباط زاویه ای بین جهات و صفحات بلوری یک کریستال را در یک فضای دو بعدی )صفحه کاغذ( تعیین میکنند. کاربردها بررسی ناهمسانگردی

Διαβάστε περισσότερα

مدار معادل تونن و نورتن

مدار معادل تونن و نورتن مدار معادل تونن و نورتن در تمامی دستگاه های صوتی و تصویری اگرچه قطعات الکتریکی زیادی استفاده می شود ( مانند مقاومت سلف خازن دیود ترانزیستور IC ترانس و دهها قطعه ی دیگر...( اما هدف از طراحی چنین مداراتی

Διαβάστε περισσότερα

جلسه ی ۲۴: ماشین تورینگ

جلسه ی ۲۴: ماشین تورینگ دانشکده ی علوم ریاضی نظریه ی زبان ها و اتوماتا ۲۶ ا ذرماه ۱۳۹۱ جلسه ی ۲۴: ماشین تورینگ مدر س: دکتر شهرام خزاي ی نگارندگان: حمید ملک و امین خسر وشاهی ۱ ماشین تور ینگ تعریف ۱ (تعریف غیررسمی ماشین تورینگ)

Διαβάστε περισσότερα

جلسه ی ۱۸: درهم سازی سرتاسری - درخت جست و جوی دودویی

جلسه ی ۱۸: درهم سازی سرتاسری - درخت جست و جوی دودویی دانشکده ی علوم ریاضی ساختمان داده ۱۰ ا ذر ۹۲ جلسه ی ۱۸: درهم سازی سرتاسری - درخت جست و جوی دودویی مدر س: دکتر شهرام خزاي ی نگارنده: معین زمانی و ا رمیتا اردشیری ۱ یادا وری همان طور که درجلسات پیش مطرح

Διαβάστε περισσότερα

تخمین با معیار مربع خطا: حالت صفر: X: مکان هواپیما بدون مشاهده X را تخمین بزنیم. بهترین تخمین مقداری است که متوسط مربع خطا مینیمم باشد:

تخمین با معیار مربع خطا: حالت صفر: X: مکان هواپیما بدون مشاهده X را تخمین بزنیم. بهترین تخمین مقداری است که متوسط مربع خطا مینیمم باشد: تخمین با معیار مربع خطا: هدف: با مشاهده X Y را حدس بزنیم. :y X: مکان هواپیما مثال: مشاهده نقطه ( مجموعه نقاط کنارهم ) روی رادار - فرض کنیم می دانیم توزیع احتمال X به چه صورت است. حالت صفر: بدون مشاهده

Διαβάστε περισσότερα

فصل پنجم زبان های فارغ از متن

فصل پنجم زبان های فارغ از متن فصل پنجم زبان های فارغ از متن خانواده زبان های فارغ از متن: ( free )context تعریف: گرامر G=(V,T,,P) کلیه قوانین آن به فرم زیر باشد : یک گرامر فارغ از متن گفته می شود در صورتی که A x A Є V, x Є (V U T)*

Διαβάστε περισσότερα

دانشکده ی علوم ریاضی جلسه ی ۵: چند مثال

دانشکده ی علوم ریاضی جلسه ی ۵: چند مثال دانشکده ی علوم ریاضی احتمال و کاربردا ن ۴ اسفند ۹۲ جلسه ی : چند مثال مدر س: دکتر شهرام خزاي ی نگارنده: مهدی پاک طینت (تصحیح: قره داغی گیوه چی تفاق در این جلسه به بررسی و حل چند مثال از مطالب جلسات گذشته

Διαβάστε περισσότερα

جلسه ی ۳: نزدیک ترین زوج نقاط

جلسه ی ۳: نزدیک ترین زوج نقاط دانشکده ی علوم ریاضی ا نالیز الگوریتم ها ۴ بهمن ۱۳۹۱ جلسه ی ۳: نزدیک ترین زوج نقاط مدر س: دکتر شهرام خزاي ی نگارنده: امیر سیوانی اصل ۱ پیدا کردن نزدیک ترین زوج نقطه فرض می کنیم n نقطه داریم و می خواهیم

Διαβάστε περισσότερα

جلسه 3 ابتدا نکته اي در مورد عمل توابع بر روي ماتریس ها گفته می شود و در ادامه ي این جلسه اصول مکانیک کوانتمی بیان. d 1. i=0. i=0. λ 2 i v i v i.

جلسه 3 ابتدا نکته اي در مورد عمل توابع بر روي ماتریس ها گفته می شود و در ادامه ي این جلسه اصول مکانیک کوانتمی بیان. d 1. i=0. i=0. λ 2 i v i v i. محاسبات کوانتمی (671) ترم بهار 1390-1391 مدرس: سلمان ابوالفتح بیگی نویسنده: محمد جواد داوري جلسه 3 می شود. ابتدا نکته اي در مورد عمل توابع بر روي ماتریس ها گفته می شود و در ادامه ي این جلسه اصول مکانیک

Διαβάστε περισσότερα

فصل چهارم : مولتی ویبراتورهای ترانزیستوری مقدمه: فیدبک مثبت

فصل چهارم : مولتی ویبراتورهای ترانزیستوری مقدمه: فیدبک مثبت فصل چهارم : مولتی ویبراتورهای ترانزیستوری مقدمه: فیدبک مثبت در تقویت کننده ها از فیدبک منفی استفاده می نمودیم تا بهره خیلی باال نرفته و سیستم پایدار بماند ولی در فیدبک مثبت هدف فقط باال بردن بهره است در

Διαβάστε περισσότερα

سايت ويژه رياضيات درسنامه ها و جزوه هاي دروس رياضيات

سايت ويژه رياضيات   درسنامه ها و جزوه هاي دروس رياضيات سايت ويژه رياضيات درسنامه ها و جزوه هاي دروس رياضيات دانلود نمونه سوالات امتحانات رياضي نمونه سوالات و پاسخنامه كنكور دانلود نرم افزارهاي رياضيات و... کانال سایت ریاضی سرا در تلگرام: https://telegram.me/riazisara

Διαβάστε περισσότερα

همبستگی و رگرسیون در این مبحث هدف بررسی وجود یک رابطه بین دو یا چند متغیر می باشد لذا هدف اصلی این است که آیا بین

همبستگی و رگرسیون در این مبحث هدف بررسی وجود یک رابطه بین دو یا چند متغیر می باشد لذا هدف اصلی این است که آیا بین همبستگی و رگرسیون در این مبحث هدف بررسی وجود یک رابطه بین دو یا چند متغیر می باشد لذا هدف اصلی این است که آیا بین دو صفت متغیر x و y رابطه و همبستگی وجود دارد یا خیر و آیا می توان یک مدل ریاضی و یک رابطه

Διαβάστε περισσότερα

آزمایش 1: پاسخ فرکانسی تقویتکننده امیتر مشترك

آزمایش 1: پاسخ فرکانسی تقویتکننده امیتر مشترك آزمایش : پاسخ فرکانسی تقویتکننده امیتر مشترك -- مقدمه هدف از این آزمایش بدست آوردن فرکانس قطع بالاي تقویتکننده امیتر مشترك بررسی عوامل تاثیرگذار و محدودکننده این پارامتر است. شکل - : مفهوم پهناي باند تقویت

Διαβάστε περισσότερα

ﯽﺳﻮﻃ ﺮﯿﺼﻧ ﻪﺟاﻮﺧ ﯽﺘﻌﻨﺻ هﺎﮕﺸﻧاد

ﯽﺳﻮﻃ ﺮﯿﺼﻧ ﻪﺟاﻮﺧ ﯽﺘﻌﻨﺻ هﺎﮕﺸﻧاد دانشگاه صنعتی خواجه نصیر طوسی دانشکده برق - گروه کنترل آزمایشگاه کنترل سیستمهای خطی گزارش کار نمونه تابستان 383 به نام خدا گزارش کار آزمایش اول عنوان آزمایش: آشنایی با نحوه پیاده سازی الکترونیکی فرایندها

Διαβάστε περισσότερα

فعالیت = ) ( )10 6 ( 8 = )-4( 3 * )-5( 3 = ) ( ) ( )-36( = m n m+ m n. m m m. m n mn

فعالیت = ) ( )10 6 ( 8 = )-4( 3 * )-5( 3 = ) ( ) ( )-36( = m n m+ m n. m m m. m n mn درس»ریشه ام و توان گویا«تاکنون با مفهوم توان های صحیح اعداد و چگونگی کاربرد آنها در ریشه گیری دوم و سوم اعداد آشنا شده اید. فعالیت زیر به شما کمک می کند تا ضمن مرور آنچه تاکنون در خصوص اعداد توان دار و

Διαβάστε περισσότερα

جلسه 9 1 مدل جعبه-سیاه یا جستاري. 2 الگوریتم جستجوي Grover 1.2 مسا له 2.2 مقدمات محاسبات کوانتمی (22671) ترم بهار

جلسه 9 1 مدل جعبه-سیاه یا جستاري. 2 الگوریتم جستجوي Grover 1.2 مسا له 2.2 مقدمات محاسبات کوانتمی (22671) ترم بهار محاسبات کوانتمی (22671) ترم بهار 1390-1391 مدرس: سلمان ابوالفتح بیگی نویسنده: هیربد کمالی نیا جلسه 9 1 مدل جعبه-سیاه یا جستاري مدل هایی که در جلسه ي پیش براي استفاده از توابع در الگوریتم هاي کوانتمی بیان

Διαβάστε περισσότερα

قاعده زنجیره ای برای مشتقات جزي ی (حالت اول) :

قاعده زنجیره ای برای مشتقات جزي ی (حالت اول) : ۱ گرادیان تابع (y :f(x, اگر f یک تابع دومتغیره باشد ا نگاه گرادیان f برداری است که به صورت زیر تعریف می شود f(x, y) = D ۱ f(x, y), D ۲ f(x, y) اگر رویه S نمایش تابع (y Z = f(x, باشد ا نگاه f در هر نقطه

Διαβάστε περισσότερα

آزمایش 8: تقویت کننده عملیاتی 2

آزمایش 8: تقویت کننده عملیاتی 2 آزمایش 8: تقویت کننده عملیاتی 2 1-8 -مقدمه 1 تقویت کننده عملیاتی (OpAmp) داراي دو یا چند طبقه تقویت کننده تفاضلی است که خروجی- هاي هر طبقه به وروديهاي طبقه دیگر متصل شده است. در انتهاي این تقویت کننده

Διαβάστε περισσότερα

آزمون مقایسه میانگین های دو جامعه )نمونه های بزرگ(

آزمون مقایسه میانگین های دو جامعه )نمونه های بزرگ( آزمون مقایسه میانگین های دو جامعه )نمونه های بزرگ( فرض کنید جمعیت یک دارای میانگین و انحراف معیار اندازه µ و انحراف معیار σ باشد و جمعیت 2 دارای میانگین µ2 σ2 باشند نمونه های تصادفی مستقل از این دو جامعه

Διαβάστε περισσότερα

معادلهی مشخصه(کمکی) آن است. در اینجا سه وضعیت متفاوت برای ریشههای معادله مشخصه رخ میدهد:

معادلهی مشخصه(کمکی) آن است. در اینجا سه وضعیت متفاوت برای ریشههای معادله مشخصه رخ میدهد: شکل کلی معادلات همگن خطی مرتبه دوم با ضرایب ثابت = ٠ cy ay + by + و معادله درجه دوم = ٠ c + br + ar را معادلهی مشخصه(کمکی) آن است. در اینجا سه وضعیت متفاوت برای ریشههای معادله مشخصه رخ میدهد: c ١ e r١x

Διαβάστε περισσότερα

هو الحق دانشکده ي مهندسی کامپیوتر جلسه هفتم

هو الحق دانشکده ي مهندسی کامپیوتر جلسه هفتم هو الحق دانشکده ي مهندسی کامپیوتر کدگذاري شبکه Coding) (Network شنبه 2 اسفند 1393 جلسه هفتم استاد: مهدي جعفري نگارنده: سید محمدرضا تاجزاد تعریف 1 بهینه سازي محدب : هدف پیدا کردن مقدار بهینه یک تابع ) min

Διαβάστε περισσότερα

تمرین اول درس کامپایلر

تمرین اول درس کامپایلر 1 تمرین اول درس 1. در زبان مربوط به عبارت منظم زیر چند رشته یکتا وجود دارد (0+1+ϵ)(0+1+ϵ)(0+1+ϵ)(0+1+ϵ) جواب 11 رشته کنند abbbaacc را در نظر بگیرید. کدامیک از عبارتهای منظم زیر توکنهای ab bb a acc را ایجاد

Διαβάστε περισσότερα

جلسه 2 1 فضاي برداري محاسبات کوانتمی (22671) ترم بهار

جلسه 2 1 فضاي برداري محاسبات کوانتمی (22671) ترم بهار محاسبات کوانتمی (22671) ترم بهار 1390-1391 مدرس: سلمان ابوالفتح بیگی نویسنده: نادر قاسمی جلسه 2 در این درسنامه به مروري کلی از جبر خطی می پردازیم که هدف اصلی آن آشنایی با نماد گذاري دیراك 1 و مباحثی از

Διαβάστε περισσότερα

سلسله مزاتب سبان مقدمه فصل : زبان های فارغ از متن زبان های منظم

سلسله مزاتب سبان مقدمه فصل : زبان های فارغ از متن زبان های منظم 1 ماشیه ای توریىگ مقدمه فصل : سلسله مزاتب سبان a n b n c n? ww? زبان های فارغ از متن n b n a ww زبان های منظم a * a*b* 2 زبان ها پذیرفته می شوند بوسیله ی : ماشین های تورینگ a n b n c n ww زبان های فارغ

Διαβάστε περισσότερα

بسم اهلل الرحمن الرحیم آزمایشگاه فیزیک )2( shimiomd

بسم اهلل الرحمن الرحیم آزمایشگاه فیزیک )2( shimiomd بسم اهلل الرحمن الرحیم آزمایشگاه فیزیک )( shimiomd خواندن مقاومت ها. بررسی قانون اهم برای مدارهای متوالی. 3. بررسی قانون اهم برای مدارهای موازی بدست آوردن مقاومت مجهول توسط پل وتسون 4. بدست آوردن مقاومت

Διαβάστε περισσότερα

هندسه تحلیلی بردارها در فضای R

هندسه تحلیلی بردارها در فضای R هندسه تحلیلی بردارها در فضای R فصل اول-بردارها دستگاه مختصات سه بعدی از سه محور ozوoyوox عمود بر هم تشکیل شده که در نقطه ای به نام o یکدیگر را قطع می کنند. قرارداد: دستگاه مختصات سه بعدی راستگرد می باشد

Διαβάστε περισσότερα

تمرینات درس ریاض عموم ٢. r(t) = (a cos t, b sin t), ٠ t ٢π. cos ٢ t sin tdt = ka۴. x = ١ ka ۴. m ٣ = ٢a. κds باشد. حاصل x٢

تمرینات درس ریاض عموم ٢. r(t) = (a cos t, b sin t), ٠ t ٢π. cos ٢ t sin tdt = ka۴. x = ١ ka ۴. m ٣ = ٢a. κds باشد. حاصل x٢ دانش اه صنعت شریف دانش ده ی علوم ریاض تمرینات درس ریاض عموم سری دهم. ١ سیم نازک داریم که روی دایره ی a + y x و در ربع اول نقطه ی,a را به نقطه ی a, وصل م کند. اگر چ ال سیم در نقطه ی y,x برابر kxy باشد جرم

Διαβάστε περισσότερα

جلسه 14 را نیز تعریف کرد. عملگري که به دنبال آن هستیم باید ماتریس چگالی مربوط به یک توزیع را به ماتریس چگالی مربوط به توزیع حاشیه اي آن ببرد.

جلسه 14 را نیز تعریف کرد. عملگري که به دنبال آن هستیم باید ماتریس چگالی مربوط به یک توزیع را به ماتریس چگالی مربوط به توزیع حاشیه اي آن ببرد. تي وري اطلاعات کوانتمی ترم پاییز 39-39 مدرس: ابوالفتح بیگی و امین زاده گوهري نویسنده: کامران کیخسروي جلسه فرض کنید حالت سیستم ترکیبی AB را داشته باشیم. حالت سیستم B به تنهایی چیست در ابتداي درس که حالات

Διαβάστε περισσότερα

جلسه 22 1 نامساویهایی در مورد اثر ماتریس ها تي وري اطلاعات کوانتومی ترم پاییز

جلسه 22 1 نامساویهایی در مورد اثر ماتریس ها تي وري اطلاعات کوانتومی ترم پاییز تي وري اطلاعات کوانتومی ترم پاییز 1391-1392 مدرس: ابوالفتح بیگی و امین زاده گوهري نویسنده: محمد مهدي مجاهدیان جلسه 22 تا اینجا خواص مربوط به آنتروپی را بیان کردیم. جهت اثبات این خواص نیاز به ابزارهایی

Διαβάστε περισσότερα

ویرایشسال 95 شیمیمعدنی تقارن رضافالحتی

ویرایشسال 95 شیمیمعدنی تقارن رضافالحتی ویرایشسال 95 شیمیمعدنی تقارن رضافالحتی از ابتدای مبحث تقارن تا ابتدای مبحث جداول کاراکتر مربوط به کنکور ارشد می باشد افرادی که این قسمت ها را تسلط دارند می توانند از ابتدای مبحث جداول کاراکتر به مطالعه

Διαβάστε περισσότερα

جلسه ی ۱۱: درخت دودویی هرم

جلسه ی ۱۱: درخت دودویی هرم دانشکده ی علوم ریاضی ساختمان داده ا بان جلسه ی : درخت دودویی هرم مدر س: دکتر شهرام خزاي ی نگارنده: احمدرضا رحیمی مقدمه الگوریتم مرتب سازی هرمی یکی دیگر از الگوریتم های مرتب سازی است که دارای برخی از بهترین

Διαβάστε περισσότερα

جلسه 12 به صورت دنباله اي از,0 1 نمایش داده شده اند در حین محاسبه ممکن است با خطا مواجه شده و یکی از بیت هاي آن. p 1

جلسه 12 به صورت دنباله اي از,0 1 نمایش داده شده اند در حین محاسبه ممکن است با خطا مواجه شده و یکی از بیت هاي آن. p 1 محاسبات کوانتمی (67) ترم بهار 390-39 مدرس: سلمان ابوالفتح بیگی نویسنده: سلمان ابوالفتح بیگی جلسه ذخیره پردازش و انتقال اطلاعات در دنیاي واقعی همواره در حضور خطا انجام می شود. مثلا اطلاعات کلاسیکی که به

Διαβάστε περισσότερα

تحلیل الگوریتم پیدا کردن ماکزیمم

تحلیل الگوریتم پیدا کردن ماکزیمم تحلیل الگوریتم پیدا کردن ماکزیمم امید اعتصامی پژوهشگاه دانشهاي بنیادي پژوهشکده ریاضیات 1 انگیزه در تحلیل الگوریتم ها تحلیل احتمالاتی الگوریتم ها روشی براي تخمین پیچیدگی محاسباتی یک الگوریتم یا مساله ي

Διαβάστε περισσότερα

تلفات خط انتقال ابررسی یک شبکة قدرت با 2 به شبکة شکل زیر توجه کنید. ژنراتور فرضیات شبکه: میباشد. تلفات خط انتقال با مربع توان انتقالی متناسب

تلفات خط انتقال ابررسی یک شبکة قدرت با 2 به شبکة شکل زیر توجه کنید. ژنراتور فرضیات شبکه: میباشد. تلفات خط انتقال با مربع توان انتقالی متناسب تلفات خط انتقال ابررسی یک شبکة قدرت با 2 به شبکة شکل زیر توجه کنید. ژنراتور فرضیات شبکه: این شبکه دارای دو واحد کامال یکسان آنها 400 MW میباشد. است تلفات خط انتقال با مربع توان انتقالی متناسب و حداکثر

Διαβάστε περισσότερα

دبیرستان غیر دولتی موحد

دبیرستان غیر دولتی موحد دبیرستان غیر دلتی محد هندسه تحلیلی فصل دم معادله های خط صفحه ابتدا باید بدانیم که از یک نقطه به مازات یک بردار تنها یک خط می گذرد. با تجه به این مطلب برای نشتن معادله یک خط احتیاج به داشتن یک نقطه از خط

Διαβάστε περισσότερα

فصل 5 :اصل گسترش و اعداد فازی

فصل 5 :اصل گسترش و اعداد فازی فصل 5 :اصل گسترش و اعداد فازی : 1-5 اصل گسترش در ریاضیات معمولی یکی از مهمترین ابزارها تابع می باشد.تابع یک نوع رابطه خاص می باشد رابطه ای که در نمایش زوج مرتبی عنصر اول تکراری نداشته باشد.معموال تابع

Διαβάστε περισσότερα

باشند و c عددی ثابت باشد آنگاه تابع های زیر نیز در a پیوسته اند. به شرطی که g(a) 0 f g

باشند و c عددی ثابت باشد آنگاه تابع های زیر نیز در a پیوسته اند. به شرطی که g(a) 0 f g تعریف : 3 فرض کنیم D دامنه تابع f زیر مجموعه ای از R باشد a D تابع f:d R در نقطه a پیوسته است هرگاه به ازای هر دنباله از نقاط D مانند { n a{ که به a همگراست دنبال ه ){ n }f(a به f(a) همگرا باشد. محتوی

Διαβάστε περισσότερα

تئوری جامع ماشین بخش سوم جهت سادگی بحث یک ماشین سنکرون دو قطبی از نوع قطب برجسته مطالعه میشود.

تئوری جامع ماشین بخش سوم جهت سادگی بحث یک ماشین سنکرون دو قطبی از نوع قطب برجسته مطالعه میشود. مفاهیم اصلی جهت آنالیز ماشین های الکتریکی سه فاز محاسبه اندوکتانس سیمپیچیها و معادالت ولتاژ ماشین الف ) ماشین سنکرون جهت سادگی بحث یک ماشین سنکرون دو قطبی از نوع قطب برجسته مطالعه میشود. در حال حاضر از

Διαβάστε περισσότερα

srmphp.blog.ir موسسه آموزش عالی مهراروند ساختمان داده مهندس سید رسول موسوی تهیه و تنظیم: الهام صباحی

srmphp.blog.ir موسسه آموزش عالی مهراروند ساختمان داده مهندس سید رسول موسوی تهیه و تنظیم: الهام صباحی موسسه آموزش عالی مهراروند ساختمان داده استاد: مهندس سید رسول موسوی تهیه و تنظیم: الهام صباحی 1 زندگی یعنی تکاپو زندگی یعنی هیاهو زندگی یعنی شب نو روز نو اندیشه نو زندگی یعنی غم نو حسرت نو پیشه ی نو زندگی

Διαβάστε περισσότερα

فهرست مطالب جزوه ی فصل اول مدارهای الکتریکی مفاهیم ولتاژ افت ولتاژ و اختالف پتانسیل تحلیل مدار به روش جریان حلقه... 22

فهرست مطالب جزوه ی فصل اول مدارهای الکتریکی مفاهیم ولتاژ افت ولتاژ و اختالف پتانسیل تحلیل مدار به روش جریان حلقه... 22 فهرست مطالب جزوه ی فصل اول مدارهای الکتریکی آنچه باید پیش از شروع کتاب مدار بدانید تا مدار را آسان بیاموزید.............................. 2 مفاهیم ولتاژ افت ولتاژ و اختالف پتانسیل................................................

Διαβάστε περισσότερα

Top Down Parsing LL(1) Narges S. Bathaeian

Top Down Parsing LL(1) Narges S. Bathaeian طراحی کامپایلر Top Down Parsing LL1) تعریف top down parsing Parse tree را از ریشه به سمت برگها می سازد. دو نوع LL1), LLk) Recursive descent مثال G = {S},{, ) }, P, S) S S S ) S ε ))$ مثال S S ) S ε ))$

Διαβάστε περισσότερα

:موس لصف یسدنه یاه لکش رد یلوط طباور

:موس لصف یسدنه یاه لکش رد یلوط طباور فصل سوم: 3 روابط طولی درشکلهای هندسی درس او ل قضیۀ سینوس ها یادآوری منظور از روابط طولی رابطه هایی هستند که در مورد اندازه های پاره خط ها و زاویه ها در شکل های مختلف بحث می کنند. در سال گذشته روابط طولی

Διαβάστε περισσότερα

Angle Resolved Photoemission Spectroscopy (ARPES)

Angle Resolved Photoemission Spectroscopy (ARPES) Angle Resolved Photoemission Spectroscopy (ARPES) روش ARPES روشی است تجربی که برای تعیین ساختار الکترونی مواد به کار می رود. این روش بر پایه اثر فوتوالکتریک است که توسط هرتز کشف شد: الکترونها می توانند

Διαβάστε περισσότερα

مسائل. 2 = (20)2 (1.96) 2 (5) 2 = 61.5 بنابراین اندازه ی نمونه الزم باید حداقل 62=n باشد.

مسائل. 2 = (20)2 (1.96) 2 (5) 2 = 61.5 بنابراین اندازه ی نمونه الزم باید حداقل 62=n باشد. ) مسائل مدیریت کارخانه پوشاک تصمیم دارد مطالعه ای به منظور تعیین میانگین پیشرفت کارگران کارخانه انجام دهد. اگر او در این مطالعه دقت برآورد را 5 نمره در نظر بگیرد و فرض کند مقدار انحراف معیار پیشرفت کاری

Διαβάστε περισσότερα

يﺎﻫ ﻢﺘﻳرﻮﮕﻟا و ﺎﻫ ﺖﺧرد فاﺮﮔ ﻲﻤﺘﻳرﻮﮕﻟا ﻪﻳﺮﻈﻧ :سرد ﻲﺘﺸﻬﺑ ﺪﻴﻬﺷ هﺎﮕﺸﻧاد ﺮﺗﻮﻴﭙﻣﺎﻛ مﻮﻠﻋ هوﺮﮔ ﻪﻴﻟوا ﺞﻳﺎﺘﻧ و ﺎﻫﻒ ﻳﺮﻌﺗ

يﺎﻫ ﻢﺘﻳرﻮﮕﻟا و ﺎﻫ ﺖﺧرد فاﺮﮔ ﻲﻤﺘﻳرﻮﮕﻟا ﻪﻳﺮﻈﻧ :سرد ﻲﺘﺸﻬﺑ ﺪﻴﻬﺷ هﺎﮕﺸﻧاد ﺮﺗﻮﻴﭙﻣﺎﻛ مﻮﻠﻋ هوﺮﮔ ﻪﻴﻟوا ﺞﻳﺎﺘﻧ و ﺎﻫﻒ ﻳﺮﻌﺗ BFS DFS : درخت یک گراف همبند بدون دور است. جنگل یک گراف بدون دور است. پس هر مولفه همبندی جنگل درخت است. هر راس درجه 1 در درخت را یک برگ مینامیم. یک درخت فراگیر از گراف G یک زیردرخت فراگیر از ان است که

Διαβάστε περισσότερα

جلسه 2 جهت تعریف یک فضاي برداري نیازمند یک میدان 2 هستیم. یک میدان مجموعه اي از اعداد یا اسکالر ها به همراه اعمال

جلسه 2 جهت تعریف یک فضاي برداري نیازمند یک میدان 2 هستیم. یک میدان مجموعه اي از اعداد یا اسکالر ها به همراه اعمال نظریه اطلاعات کوانتمی 1 ترم پاییز 1391-1392 مدرسین: ابوالفتح بیگی و امین زاده گوهري جلسه 2 فراگیري نظریه ي اطلاعات کوانتمی نیازمند داشتن پیش زمینه در جبرخطی می باشد این نظریه ترکیب زیبایی از جبرخطی و نظریه

Διαβάστε περισσότερα

نویسنده: محمدرضا تیموری محمد نصری مدرس: دکتر پرورش خالصۀ موضوع درس سیستم های مینیمم فاز: به نام خدا

نویسنده: محمدرضا تیموری محمد نصری مدرس: دکتر پرورش خالصۀ موضوع درس سیستم های مینیمم فاز: به نام خدا به نام خدا پردازش سیگنالهای دیجیتال نیمسال اول ۹۵-۹۶ هفته یازدهم ۹۵/۰8/2۹ مدرس: دکتر پرورش نویسنده: محمدرضا تیموری محمد نصری خالصۀ موضوع درس یا سیستم های مینیمم فاز تجزیه ی تابع سیستم به یک سیستم مینیمم

Διαβάστε περισσότερα

جلسه 15 1 اثر و اثر جزي ی نظریه ي اطلاعات کوانتومی 1 ترم پاي یز جدایی پذیر باشد یعنی:

جلسه 15 1 اثر و اثر جزي ی نظریه ي اطلاعات کوانتومی 1 ترم پاي یز جدایی پذیر باشد یعنی: نظریه ي اطلاعات کوانتومی 1 ترم پاي یز 1391-1391 مدرس: دکتر ابوالفتح بیگی ودکتر امین زاده گوهري نویسنده: محمدرضا صنم زاده جلسه 15 فرض کنیم ماتریس چگالی سیستم ترکیبی شامل زیر سیستم هايB و A را داشته باشیم.

Διαβάστε περισσότερα

شاخصهای پراکندگی دامنهی تغییرات:

شاخصهای پراکندگی دامنهی تغییرات: شاخصهای پراکندگی شاخصهای پراکندگی بیانگر میزان پراکندگی دادههای آماری میباشند. مهمترین شاخصهای پراکندگی عبارتند از: دامنهی تغییرات واریانس انحراف معیار و ضریب تغییرات. دامنهی تغییرات: اختالف بزرگترین و

Διαβάστε περισσότερα

Beta Coefficient نویسنده : محمد حق وردی

Beta Coefficient نویسنده : محمد حق وردی مفهوم ضریب سهام بتای Beta Coefficient نویسنده : محمد حق وردی مقدمه : شاید بارها در مقاالت یا گروهای های اجتماعی مربوط به بازار سرمایه نام ضریب بتا رو دیده باشیم یا جایی شنیده باشیم اما برایمان مبهم باشد

Διαβάστε περισσότερα

هد ف های هفته ششم: 1- اجسام متحرک و ساکن را از هم تشخیص دهد. 2- اندازه مسافت و جا به جایی اجسام متحرک را محاسبه و آن ها را مقایسه کند 3- تندی متوسط

هد ف های هفته ششم: 1- اجسام متحرک و ساکن را از هم تشخیص دهد. 2- اندازه مسافت و جا به جایی اجسام متحرک را محاسبه و آن ها را مقایسه کند 3- تندی متوسط هد ف های هفته ششم: 1- اجسام متحرک و ساکن را از هم تشخیص دهد. - اندازه مسافت و جا به جایی اجسام متحرک را محاسبه و آن ها را مقایسه کند 3- تندی متوسط اجسام متحرک را محاسبه کند. 4- تندی متوسط و لحظه ای را

Διαβάστε περισσότερα

1 دایره فصل او ل کاربردهای بسیاری داشته است. یک قضیۀ بنیادی در هندسه موسوم با محیط ثابت دایره دارای بیشترین مساحت است. این موضوع در طراحی

1 دایره فصل او ل کاربردهای بسیاری داشته است. یک قضیۀ بنیادی در هندسه موسوم با محیط ثابت دایره دارای بیشترین مساحت است. این موضوع در طراحی فصل او ل 1 دایره هندسه در ساخت استحکامات دفاعی قلعهها و برج و باروها از دیرباز کاربردهای بسیاری داشته است. یک قضیۀ بنیادی در هندسه موسوم به»قضیۀ همپیرامونی«میگوید در بین همۀ شکلهای هندسی بسته با محیط ثابت

Διαβάστε περισσότερα

ندرک درگ ندرک درگ شور

ندرک درگ ندرک درگ شور ٥ عددهای تقریبی درس او ل: تقریب زدن گردکردن در کالس چهارم شما با تقریب زدن آشنا شده اید. عددهای زیر را با تقریب دهگان به نزدیک ترین عدد مانند نمونه تقریب بزنید. عدد جواب را در خانه مربوطه بنویسید. 780

Διαβάστε περισσότερα

مود لصف یسدنه یاه لیدبت

مود لصف یسدنه یاه لیدبت فصل دوم 2 تبدیلهای هندسی 1 درس او ل تبدیل های هندسی در بسیاری از مناظر زندگی روزمره نظیر طراحی پارچه نقش فرش کاشی کاری گچ بری و... شکل های مختلف طبق الگویی خاص تکرار می شوند. در این فصل وضعیت های مختلفی

Διαβάστε περισσότερα

جلسه دوم سوم چهارم: مقدمه اي بر نظریه میدان

جلسه دوم سوم چهارم: مقدمه اي بر نظریه میدان هو الحق دانشکده ي مهندسی کامپیوتر کدگذاري شبکه Coding) (Network سه شنبه 21 اسفند 1393 جلسه دوم سوم چهارم: مقدمه اي بر نظریه میدان استاد: مهدي جعفري نگارنده: علیرضا حیدري خزاي ی در این نوشته مقدمه اي بر

Διαβάστε περισσότερα

جلسه 16 نظریه اطلاعات کوانتمی 1 ترم پاییز

جلسه 16 نظریه اطلاعات کوانتمی 1 ترم پاییز نظریه اطلاعات کوانتمی ترم پاییز 39-39 مدرسین: ابوالفتح بیگی و امین زاده گوهري نویسنده: محم دحسن آرام جلسه 6 تا اینجا با دو دیدگاه مختلف و دو عامل اصلی براي تعریف و استفاده از ماتریس چگالی جهت معرفی حالت

Διαβάστε περισσότερα

نظریه زبان ها و ماشین ها

نظریه زبان ها و ماشین ها نظریه زبان ها و ماشین ها Theory of Languages & Automatas سید سجاد ائم ی زمستان 94 به نام خدا پیش گفتار جزوه پیش رو جهت استفاده دانشجویان عزیز در درس نظریه زبانها و ماشینها تهیه شده است. در این جزوه با

Διαβάστε περισσότερα

Delaunay Triangulations محیا بهلولی پاییز 93

Delaunay Triangulations محیا بهلولی پاییز 93 محیا بهلولی پاییز 93 1 Introduction در فصل های قبلی نقشه های زمین را به طور ضمنی بدون برجستگی در نظر گرفتیم. واقعیت این گونه نیست. 2 Introduction :Terrain یک سطح دوبعدی در فضای سه بعدی با یک ویژگی خاص

Διαβάστε περισσότερα

به نام خدا. الف( توضیح دهید چرا از این تکنیک استفاده میشود چرا تحلیل را روی کل سیگنال x[n] انجام نمیدهیم

به نام خدا. الف( توضیح دهید چرا از این تکنیک استفاده میشود چرا تحلیل را روی کل سیگنال x[n] انجام نمیدهیم پردازش گفتار به نام خدا نیمسال اول 59-59 دکتر صامتی تمرین سری سوم پیشبینی خطی و کدینگ شکلموج دانشکده مهندسی کامپیوتر زمان تحویل: 32 آبان 4259 تمرینهای تئوری: سوال 1. می دانیم که قبل از انجام تحلیل پیشبینی

Διαβάστε περισσότερα

آموزش SPSS مقدماتی و پیشرفته مدیریت آمار و فناوری اطالعات -

آموزش SPSS مقدماتی و پیشرفته مدیریت آمار و فناوری اطالعات - آموزش SPSS مقدماتی و پیشرفته تهیه و تنظیم: فرزانه صانعی مدیریت آمار و فناوری اطالعات - مهرماه 96 بخش سوم: مراحل تحلیل آماری تحلیل داده ها به روش پارامتری بررسی نرمال بودن توزیع داده ها قضیه حد مرکزی جدول

Διαβάστε περισσότερα

هدف از این آزمایش آشنایی با رفتار فرکانسی مدارهاي مرتبه اول نحوه تأثیر مقادیر عناصر در این رفتار مشاهده پاسخ دامنه

هدف از این آزمایش آشنایی با رفتار فرکانسی مدارهاي مرتبه اول نحوه تأثیر مقادیر عناصر در این رفتار مشاهده پاسخ دامنه آزما ی ش شش م: پا س خ فرکا نس ی مدا رات مرتبه اول هدف از این آزمایش آشنایی با رفتار فرکانسی مدارهاي مرتبه اول نحوه تأثیر مقادیر عناصر در این رفتار مشاهده پاسخ دامنه و پاسخ فاز بررسی رفتار فیلتري آنها بدست

Διαβάστε περισσότερα

فصل سوم جریان های الکتریکی و مدارهای جریان مستقیم جریان الکتریکی

فصل سوم جریان های الکتریکی و مدارهای جریان مستقیم جریان الکتریکی فصل سوم جریان های الکتریکی و مدارهای جریان مستقیم جریان الکتریکی در رساناها مانند یک سیم مسی الکترون های آزاد وجود دارند که با سرعت های متفاوت بطور کاتوره ای)بی نظم(در حال حرکت هستند بطوریکه بار خالص گذرنده

Διαβάστε περισσότερα

عنوان: رمزگذاري جستجوپذیر متقارن پویا

عنوان: رمزگذاري جستجوپذیر متقارن پویا دانشگاه صنعتی شریف دانشکده مهندسی برق گزارش درس ریاضیات رمزنگاري عنوان: رمزگذاري جستجوپذیر متقارن پویا استاد درس: مهندس نگارنده: ز 94 دي ماه 1394 1 5 نماد گذاري و تعریف مسي له 1 6 رمزگذاري جستجوپذیر متقارن

Διαβάστε περισσότερα

محاسبات کوانتمی 1 علم ساخت و استفاده از کامپیوتري است که بر پایه ي اصول مکانیک کوانتم قرار گرفته است.

محاسبات کوانتمی 1 علم ساخت و استفاده از کامپیوتري است که بر پایه ي اصول مکانیک کوانتم قرار گرفته است. محاسبات کوانتمی (22671) ترم بهار 1390-1391 مدرس: سلمان ابوالفتح بیگی نویسنده: سلمان ابوالفتح بیگی جلسه 1 محاسبات کوانتمی 1 علم ساخت و استفاده از کامپیوتري است که بر پایه ي اصول مکانیک کوانتم قرار گرفته

Διαβάστε περισσότερα

فصل دهم: همبستگی و رگرسیون

فصل دهم: همبستگی و رگرسیون فصل دهم: همبستگی و رگرسیون مطالب این فصل: )r ( کوواریانس ضریب همبستگی رگرسیون ضریب تعیین یا ضریب تشخیص خطای معیار برآور ( )S XY انواع ضرایب همبستگی برای بررسی رابطه بین متغیرهای کمی و کیفی 8 در بسیاری

Διαβάστε περισσότερα

فصل چهارم تعیین موقعیت و امتدادهای مبنا

فصل چهارم تعیین موقعیت و امتدادهای مبنا فصل چهارم تعیین موقعیت و امتدادهای مبنا هدف های رفتاری پس از آموزش و مطالعه این فصل از فراگیرنده انتظار می رود بتواند: 1 راهکار کلی مربوط به ترسیم یک امتداد در یک سیستم مختصات دو بعدی و اندازه گیری ژیزمان

Διαβάστε περισσότερα

فهرست جزوه ی فصل دوم مدارهای الکتریکی ( بردارها(

فهرست جزوه ی فصل دوم مدارهای الکتریکی ( بردارها( فهرست جزوه ی فصل دوم مدارهای الکتریکی ( بردارها( رفتار عناصر L, R وC در مدارات جریان متناوب......................................... بردار و کمیت برداری.............................................................

Διαβάστε περισσότερα

جزوه کارگاه برنامه نویسی

جزوه کارگاه برنامه نویسی جزوه کارگاه برنامه نویسی شامل: توضیح و حل برخی تمرینات آخر فصل کتاب الگوریتم و فلوچارت ایرج صادقی visual گریزی به نرم افزار stadio 2012 تهیه و تنظیم : محمد ربانی 1) مقدمه ای بر نحوه برنامه نویسی: دیدگاه

Διαβάστε περισσότερα

مثلث بندی دلونی فصل 9 مژگان صالحی- دی 92 استاد راهنما: جناب آقای دکتر محمد فرشی

مثلث بندی دلونی فصل 9 مژگان صالحی- دی 92 استاد راهنما: جناب آقای دکتر محمد فرشی مثلث بندی دلونی فصل 9 مژگان صالحی- دی 92 استاد راهنما: جناب آقای دکتر محمد فرشی 1 روش اول گراف دوگان دیاگرام ورونوی : دیاگرام ورونوی مثلث بندی وجوهی که مثلث نیستند 2 : روش دوم )الگوریتم تصادفی افزایشی(

Διαβάστε περισσότερα

آشنایی با پدیده ماره (moiré)

آشنایی با پدیده ماره (moiré) فلا) ب) آشنایی با پدیده ماره (moiré) توری جذبی- هرگاه روی ورقه شفافی چون طلق تعداد زیادی نوارهای خطی کدر هم پهنا به موازات یکدیگر و به فاصله های مساوی از هم رسم کنیم یک توری خطی جذبی به وجود می آید شکل

Διαβάστε περισσότερα

خالصه درس: نویسنده:مینا سلیمان گندمی و هاجر کشاورز امید ریاضی شرطی. استقالل متغیر های تصادفی پیوسته x و y استقالل و امید ریاضی

خالصه درس: نویسنده:مینا سلیمان گندمی و هاجر کشاورز امید ریاضی شرطی. استقالل متغیر های تصادفی پیوسته x و y استقالل و امید ریاضی به نام خدا آمار و احتمال مهندسی هفته 21 نیمسال اول ۴9-۴9 مدرس: دکتر پرورش ۴9/24/49 نویسنده:مینا سلیمان گندمی و هاجر کشاورز خالصه درس: امید ریاضی شرطی استقالل متغیر های تصادفی پیوسته x و y استقالل و امید

Διαβάστε περισσότερα

ارزیابی بهره وری متقاطع DEA بر پایه بهبود پارتو

ارزیابی بهره وری متقاطع DEA بر پایه بهبود پارتو چکیده ارزیابی بهره وری متقاطع DEA بر پایه بهبود پارتو جی.وو جونفی.چو جیاس ن سان کینگ یوآن ژو ارزیابی بهره وری متقاطع به عنوان یک ابزار گسترده برای تحلیل پوششی داده ها (DEA) دارای کاربرد گسترده ای در ارزیابی

Διαβάστε περισσότερα

زمین شناسی ساختاری.فصل پنجم.محاسبه ضخامت و عمق الیه

زمین شناسی ساختاری.فصل پنجم.محاسبه ضخامت و عمق الیه پن ج م فص ل محاسبه ضخامت و عم ق الهی زمین شناسی ساختاری.کارشناسی زمین شناسی.بخش زمین شناسی دانشکده علوم.دانشگاه شهید باهنر کرمان.استاد درس:دکتر شهرام شفیعی بافتی 1 تعاریف ضخامت - فاصله عمودی بین دو صفحه

Διαβάστε περισσότερα

3 لصف یربج یاه ترابع و ایوگ یاه ناوت

3 لصف یربج یاه ترابع و ایوگ یاه ناوت فصل توان های گویا و عبارت های جبری 8 نگاه کلی به فصل هدفهای این فصل را میتوان به اختصار چنین بیان کرد: همانگونه که توان اعداد را در آغاز برای توانهای طبیعی عددهای ٢ و ٣ تعریف میکنیم و سپس این مفهوم را

Διαβάστε περισσότερα

مینامند یا میگویند α یک صفر تابع

مینامند یا میگویند α یک صفر تابع 1 1-1 مقدمه حل بسیاری از مسائل اجتماعی اقتصادی علمی منجر به حل معادله ای به شکل ) ( می شد. منظر از حل این معادله یافتن عدد یا اعدادی است که مقدار تابع به ازای آنها صفر شد. اگر (α) آنگاه α را ریشه معادله

Διαβάστε περισσότερα

فصل سوم جبر بول هدف های رفتاری: در پایان این فصل از فراگیرنده انتظار می رود که :

فصل سوم جبر بول هدف های رفتاری: در پایان این فصل از فراگیرنده انتظار می رود که : فصل سوم جبر بول هدف کلی: شناخت جبر بول و اتحادهای اساسی آن توابع بولی به شکل مجموع حاصل ضرب ها و حاصل ضرب جمع ها پیاده سازی توابع منطقی توسط دروازه های منطقی پایه و نقشة کارنو هدف های رفتاری: در پایان

Διαβάστε περισσότερα

برابری کار نیروی برآیند و تغییرات انرژی جنبشی( را بدست آورید. ماتریس ممان اینرسی s I A

برابری کار نیروی برآیند و تغییرات انرژی جنبشی( را بدست آورید. ماتریس ممان اینرسی s I A مبحث بیست و سوم)مباحث اندازه حرکت وضربه قانون بقای اندازه حرکت انرژی جنبشی و قانون برابری کار نیروی برآیند و تغییرات انرژی جنبشی( تکلیف از مبحث ماتریس ممان اینرسی( را بدست آورید. ماتریس ممان اینرسی s I

Διαβάστε περισσότερα

فصل چهارم : مولتی ویبراتورهای ترانزیستوری مقدمه: فیدبک مثبت

فصل چهارم : مولتی ویبراتورهای ترانزیستوری مقدمه: فیدبک مثبت جزوه تکنیک پالس فصل چهارم: مولتی ویبراتورهای ترانزیستوری فصل چهارم : مولتی ویبراتورهای ترانزیستوری مقدمه: فیدبک مثبت در تقویت کننده ها از فیدبک منفی استفاده می نمودیم تا بهره خیلی باال نرفته و سیستم پایدار

Διαβάστε περισσότερα

6- روش های گرادیان مبنا< سر فصل مطالب

6- روش های گرادیان مبنا< سر فصل مطالب 1 بنام خدا بهینه سازی شبیه سازی Simulation Optimization Lecture 6 روش های بهینه سازی شبیه سازی گرادیان مبنا Gradient-based Simulation Optimization methods 6- روش های گرادیان مبنا< سر فصل مطالب 2 شماره

Διαβάστε περισσότερα

عوامل جلوگیری کننده از موازی سازی عبارتند از : 1.هزینه I/O 2.هماهنگی/رقابت

عوامل جلوگیری کننده از موازی سازی عبارتند از : 1.هزینه I/O 2.هماهنگی/رقابت عوامل جلوگیری کننده از موازی سازی عبارتند از :.هزینه I/O.هماهنگی/رقابت ممکن است یک برنامه sequential بهتر از یک برنامه موازی باشد بطور مثال یک عدد 000 رقمی به توان یک عدد طوالنی اینکه الگوریتم را چگونه

Διαβάστε περισσότερα

چکیده مقدمه کلید واژه ها:

چکیده مقدمه کلید واژه ها: چکیده طی دهه های گذشته سازمان های بسیاری در اقسا نقاط جهان سیستم برنامه ریزی منابع سازمانی ERP را اتخاذ کرده اند. در باره ی منافع حسابداری اتخاذ سیستم های سازمانی تحقیقات کمی در مقیاس جهانی انجام شده است.

Διαβάστε περισσότερα

جلسه 28. فرض کنید که m نسخه مستقل یک حالت محض دلخواه

جلسه 28. فرض کنید که m نسخه مستقل یک حالت محض دلخواه نظریه اطلاعات کوانتمی 1 ترم پاییز 1392-1391 مدرسین: ابوالفتح بیگی و امین زاده گوهري نویسنده: مرتضی نوشاد جلسه 28 1 تقطیر و ترقیق درهم تنیدگی ψ m بین آذر و بابک به اشتراك گذاشته شده است. آذر و AB فرض کنید

Διαβάστε περισσότερα

تئوری رفتار مصرف کننده : می گیریم. فرض اول: فرض دوم: فرض سوم: فرض چهارم: برای بیان تئوری رفتار مصرف کننده ابتدا چهار فرض زیر را در نظر

تئوری رفتار مصرف کننده : می گیریم. فرض اول: فرض دوم: فرض سوم: فرض چهارم: برای بیان تئوری رفتار مصرف کننده ابتدا چهار فرض زیر را در نظر تئوری رفتار مصرف کننده : می گیریم برای بیان تئوری رفتار مصرف کننده ابتدا چهار فرض زیر را در نظر فرض اول: مصرف کننده یک مصرف کننده منطقی است یعنی دارای رفتار عقالیی می باشد به عبارت دیگر از مصرف کاالها

Διαβάστε περισσότερα

به نام ستاره آفرین قضیه ویریال جنبشی کل ذرات یک سیستم پایدار مقید به نیرو های پایستار را به متوسط انرژی پتانسیل کل شان

به نام ستاره آفرین قضیه ویریال جنبشی کل ذرات یک سیستم پایدار مقید به نیرو های پایستار را به متوسط انرژی پتانسیل کل شان به نام ستاره آفرین قضیه ویریال درود بر ملت نجومی! در این درس نامه می خواهیم یکی از قضیه های معروف اخترفیزیک و مکانیک یعنی قضیه ی شریفه ی ویریال را به دست آوریم. به طور خالصه قضیه ی ویریال متوسط انرژی جنبشی

Διαβάστε περισσότερα

به نام حضرت دوست. Downloaded from: درسنامه

به نام حضرت دوست. Downloaded from:  درسنامه به نام حضرت دوست درسنامه کروی هندسه گردآوری: و تهی ه معتمدی ارسالن اصالح: سی د و بازبینی امیر سادات موسوی سالم دوستان همان طور که می دانیم نجوم کروی یکی از بخش های مهم المپیاد نجوم است. این علم شامل دو

Διαβάστε περισσότερα

راهنمای کاربری موتور بنزینی )سیکل اتو(

راهنمای کاربری موتور بنزینی )سیکل اتو( راهنمای کاربری موتور بنزینی )سیکل اتو( هدف آزمایش : شناخت و بررسی عملکرد موتور بنزینی تئوری آزمایش: موتورهای احتراق داخلی امروزه به طور وسیع برای ایجاد قدرت بکار می روند. ژنراتورهای کوچک پمپ های مخلوط

Διαβάστε περισσότερα

فصل ششم: ترکیبات درس اول: شمارش اصل جمع و اصل ضرب فعالیت قیمه هویج سیب پرتقال قورمه «سورۀ نحل»

فصل ششم: ترکیبات درس اول: شمارش اصل جمع و اصل ضرب فعالیت قیمه هویج سیب پرتقال قورمه «سورۀ نحل» کد 11 فصل 6 فصل ششم: ترکیبات و إ ن ت ع د وا ن ع م ة الل ه ل ت ح صو ه ا و اگر بخواهید نمی توانید نعمت های خدا را بشمارید. «سورۀ نحل» درس اول: شمارش شاید شمارش درنظر برخی یک مهارت با اهمیت ریاضی نباشد و

Διαβάστε περισσότερα

مبانی برنامه نویسی با #C

مبانی برنامه نویسی با #C مبانی برنامه نویسی با #C 0 Welcome to C# Beginning Programming with the Visual Studio 2013 Environment Writing Your First Program Using Namespaces Creating a Graphical Application 1 Working with Variables,

Διαβάστε περισσότερα

فصل سوم : عناصر سوئیچ

فصل سوم : عناصر سوئیچ فصل سوم : عناصر سوئیچ رله الکترومکانیکی: یک آهنربای الکتریکی است که اگر به آن ولتاژ بدهیم مدار را قطع و وصل می کند. الف: دیود بعنوان سوئیچ دیود واقعی: V D I D = I S (1 e η V T ) دیود ایده آل: در درس از

Διαβάστε περισσότερα

فصل اول هدف های رفتاری: پس از پایان این فصل از هنرجو انتظار می رود: 5 روش های اجرای دستور را توضیح دهد. 6 نوارهای ابزار را توصیف کند.

فصل اول هدف های رفتاری: پس از پایان این فصل از هنرجو انتظار می رود: 5 روش های اجرای دستور را توضیح دهد. 6 نوارهای ابزار را توصیف کند. فصل اول آشنایی با نرم افزار اتوکد هدف های رفتاری: پس از پایان این فصل از هنرجو انتظار می رود: 1 قابلیت های نرم افزار اتوکد را بیان کند. 2 نرم افزار اتوکد 2010 را روی رایانه نصب کند. 3 محیط گرافیکی نرم

Διαβάστε περισσότερα

یدنب هشوخ یاه متیروگلا

یدنب هشوخ یاه متیروگلا تحلیل خوشه ای مقدمه در این قسمت ابتدا چند تعریف بیان می کنیم و در ادامه به جزئیات این تعاریف و کاربردهای تحلیل خوشه ای در علوم مختلف می پردازیم و نیز با مشکالتی که در تحلیل خوشه ای مواجه هستیم اشاره ای

Διαβάστε περισσότερα