Click here to load reader

فصل پنجم

  • Upload
    yoshe

  • View
    61

  • Download
    3

Embed Size (px)

DESCRIPTION

درس طراحی الگوریتم ها. فصل پنجم. راهبرد عقبگرد Backtracking approach. مدرس: سید محمد بیدکی. بهار 1392. هزارتوی شمشادی. اگر سعی کنید راه خود را در هزارتوی شمشادی بیابید، راهی ندارید جز دنبال کردن مسیری تا اینکه به بن بست برسید. در این حالت برمی گردید و راهی دیگر را امتحان می کنید. - PowerPoint PPT Presentation

Citation preview

Backtracking approach : 1392

- : - 2 . . .

/57 - : - 3 . .

. n . n nn . .

/57 ( ) - : - 4 ( preorder) . . .

/57 - : - 5 . . . . .

/57 (State Space) - : - 6 ( ) () . n n=4 . : 4444

/57 - : - 7 . .

/57 - : - 8

/57 - : - 9

. . ./57

n (n=4) - : - 10/57 n (n=4) - : - 11

/57 n - : - 12 . n . col(i) i . : col(i) = col(k) : |col(i)-col(k)| = |i-k|

/57 n - : - 13

/57 - : - 14 . :1 n 1 n2 2 ... nn n1+n+n2+n3++nn = (nn+1-1)/n-1 n=8 19173961 . . .1+n+n(n-1)+n(n-1)(n-2)+.+n! n=8 109601

/57 ... - : - 15 3 1: 2:

/57 - : - 16 n wi () W . n W .

/57 - : - 17 w1 w1 . . wi wi wi 0 .

/57 (n=3 W=6) - : - 18

/57 - : - 19 i wi+1 . weight i : weight + wi+1 > W . total : weight + total < W . weight = W . ./57 (n=4 W=13) - : - 20

/57 - : - 21

/57 - : - 22 W . ( : : ). . :

/57 - : - 23 weight i : weight W . : pi/wi . (bound). profit . bound totweight profit weight . bound totweight W . bound .

/57 ... - : - 24 i k W :

maxprofit . bound maxprofit i .

/57 - : - 25

/57

- : - 261) (0,0)Profit = 0$Weight = 0Maxprofit = 0$

totweight = 7Bound = 115$ : (weight maxprofit)/57 - : - 27

/57

- : - 282) (1,1)Profit = 40$Weight = 2Maxprofit = 0$ 40$

totweight = 7Bound = 115$ : (weight maxprofit)/57 - : - 29

/57

- : - 303) (2,1)Profit = 70$Weight = 7Maxprofit = 40$ 70$

totweight = 7Bound = 115$ : (weight maxprofit)/57 - : - 31

/57 - : - 324) (3,1)Profit = 120$Weight = 17 : (weight > 16)Maxprofit = 70$ (2,1)/57 - : - 33

/57 - : - 345) (3,2)Profit = 70$Weight = 7Maxprofit = 70$

totweight = 7 + 5 = 12Bound = 70+ 10 = 80$ : (weight maxprofit)/57 - : - 35

/57 - : - 366) (4,1)Profit = 80$Weight = 12Maxprofit = 70$ 80$ Bound = 80$ : (bound maxprofit) (3,2)/57 - : - 37

/57 - : - 387) (4,2)Profit = 70$Weight = 7Maxprofit = 80$ Bound = 70$ : (bound maxprofit) (1,1)/57 - : - 39

/57 - : - 408) (2,2)Profit = 40$Weight = 2Maxprofit = 80$totweight = 2 + 10 = 12Bound = 40$ + 50$ + (16-12) 2$ = 98$ : (weight maxprofit)/57 - : - 41

/57 - : - 429) (3,3)Profit = 90$Weight = 12Maxprofit = 80$ 90$totweight = 12Bound = 90$ + (16-12) 2$ = 98$ : (weight maxprofit)/57 - : - 43

/57 - : - 4410) (4,3)Profit = 100$Weight = 17Maxprofit = 90$ : (weight 16) maxprofit . (3,3)/57 - : - 45

/57 - : - 4611) (4,4)Profit = 90$Weight = 12Maxprofit = 90$ Bound = 90$ : (bound maxprofit) (2,2)

/57 - : - 47

/57 - : - 4812) (3,4)Profit = 40$Weight = 2Maxprofit = 90$totweight = 2 + 5 = 7Bound = 40$ + 10$ = 50$ : (bound maxprofit) (0,0)

/57 - : - 49

/57 - : - 5013) (1,2)Profit = 0$Weight = 0Maxprofit = 90$totweight = 0+ 5 + 10 = 15Bound = 0$ + 30$ + 50$ +(16-15) 2$ = 82$ : (bound maxprofit) (0,0) . .

/57 - : - 51

/57 - : - 52

/57 - : - 53

/57

- : - 54/57 - : - 55

/57 - : - 56 : O (minimum (2 , nW)) (2n) .

. . (1974) ./57 ( //) - : - 57 C++ C# Java . C++ C# Java .

. (GUI) ./57