图解A*算法

来源:互联网 发布:期货软件的不足 编辑:程序博客网 时间:2024/05/21 20:26

首先根据数据生成一张地图

1

 

2

 

3

 

4

5

6

7

 

8

 

9格挡

10

11

12

13起点

13

15格挡

16终点

17

18

19

20

21格挡

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

OpenList = {}      CloseList = {}

 

 

 

 

 

 

F =G+H    G:从起点到该点的代价值

                       H:从该点到终点的启发式探索值

1

 

2

 

3

 

4

5

6

7F=50    13

G=10   H=40

8

 

9格挡

10

11

12

13起点

 

14F=30   13

G=10   H=20

15格挡

16终点

17

18

19 F=50   13

G=10  H=40

20

 

21格挡

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

OpenList = {7,14,19}       CloseList = {13}

 

1

 

2

 

3

 

4

5

6

7F=50    13

G=10   H=40

8 F=50    14

G=20   H=30

9格挡

10

11

12

13起点

 

14F=30   13

G=10   H=20

15格挡

16终点

17

18

19 F=50   13

G=10  H=40

20F=50   14

G=20   H=30

21格挡

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

OpenList = {7,19,8,20}       CloseList = {13,14}

 

 

 

 

 

 

 

 

1

 

2

 

3

 

4

5

6

7F=50    13

G=10   H=40

8 F=50    14

G=20   H=30

9格挡

10

11

12

13起点

 

14F=30   13

G=10   H=20

15格挡

16终点

17

18

19 F=50   13

G=10  H=40

20F=50   14

G=20   H=30

21格挡

22

23

24

25

26 F=70   20

G=30  H=40

27

28

29

30

31

32

33

34

35

36

OpenList = {7,19,8,26}       CloseList = {13,14,20}

 

 

 

1

 

2 F=70    8

G=30  H=40

3

 

4

5

6

7F=50    13

G=10   H=40

8 F=50    14

G=20   H=30

9格挡

10

11

12

13起点

 

14F=30   13

G=10   H=20

15格挡

16终点

17

18

19 F=50   13

G=10  H=40

20F=50   14

G=20   H=30

21格挡

22

23

24

25

26 F=70   20

G=30  H=40

27

28

29

30

31

32

33

34

35

36

OpenList = {7,19,26,2}       CloseList = {13,14,20,8}

 

 

 

 

1

 

2 F=70    8

G=30  H=40

3

 

4

5

6

7F=50    13

G=10   H=40

8 F=50    14

G=20   H=30

9格挡

10

11

12

13起点

 

14F=30   13

G=10   H=20

15格挡

16终点

17

18

19 F=50   13

G=10  H=40

20F=50   14

G=20   H=30

21格挡

22

23

24

25 F=70   19

G=20   H=50

26 F=70   20

G=30  H=40

27

28

29

30

31

32

33

34

35

36

OpenList = {7,26,2,25}      

CloseList = {13,14,20,8,19}

 

 

1 F=70     7

G=20   H=50

2 F=70    8

G=30  H=40

3

 

4

5

6

7F=50    13

G=10   H=40

8 F=50    14

G=20   H=30

9格挡

10

11

12

13起点

 

14F=30   13

G=10   H=20

15格挡

16终点

17

18

19 F=50   13

G=10  H=40

20F=50   14

G=20   H=30

21格挡

22

23

24

25 F=70   19

G=20   H=50

26 F=70   20

G=30  H=40

27

28

29

30

31

32

33

34

35

36

OpenList = {26,2,25,1}      

CloseList = {13,14,20,8,19,7}

 

 

 

 

1 F=70     7

G=20   H=50

2 F=70    8

G=30  H=40

3

 

4

5

6

7F=50    13

G=10   H=40

8 F=50    14

G=20   H=30

9格挡

10

11

12

13起点

 

14F=30   13

G=10   H=20

15格挡

16终点

17

18

19 F=50   13

G=10  H=40

20F=50   14

G=20   H=30

21格挡

22

23

24

25 F=70   19

G=20   H=50

26 F=70   20

G=30  H=40

27

28

29

30

31

32

33

34

35

36

OpenList = {26,2,25}      

CloseList = {13,14,20,8,19,7,1}

 

1 F=70     7

G=20   H=50

2 F=70    8

G=30  H=40

3

 

4

5

6

7F=50    13

G=10   H=40

8 F=50    14

G=20   H=30

9格挡

10

11

12

13起点

 

14F=30   13

G=10   H=20

15格挡

16终点

17

18

19 F=50   13

G=10  H=40

20F=50   14

G=20   H=30

21格挡

22

23

24

25 F=70   19

G=20   H=50

26 F=70   20

G=30  H=40

27

28

29

30

31 F=90   25

G=30  H=60

32

33

34

35

36

OpenList = {26,2,31}      

CloseList = {13,14,20,8,19,7,1,25}

 

 

 

 

1 F=70     7

G=20   H=50

2 F=70    8

G=30  H=40

3 F=70    2

G=40  H=30

4

5

6

7F=50    13

G=10   H=40

8 F=50    14

G=20   H=30

9格挡

10

11

12

13起点

 

14F=30   13

G=10   H=20

15格挡

16终点

17

18

19 F=50   13

G=10  H=40

20F=50   14

G=20   H=30

21格挡

22

23

24

25 F=70   19

G=20   H=50

26 F=70   20

G=30  H=40

27

28

29

30

31 F=90   25

G=30  H=60

32

33

34

35

36

OpenList = {26,31,3}      

CloseList = {13,14,20,8,19,7,1,25,2}

 

1 F=70     7

G=20   H=50

2 F=70    8

G=30  H=40

3 F=70    2

G=40  H=30

4 F=70    3

G=50  H=20

5

6

7F=50    13

G=10   H=40

8 F=50    14

G=20   H=30

9格挡

10

11

12

13起点

 

14F=30   13

G=10   H=20

15格挡

16终点

17

18

19 F=50   13

G=10  H=40

20F=50   14

G=20   H=30

21格挡

22

23

24

25 F=70   19

G=20   H=50

26 F=70   20

G=30  H=40

27

28

29

30

31 F=90   25

G=30  H=60

32

33

34

35

36

OpenList = {26,31,4}      

CloseList = {13,14,20,8,19,7,1,25,2,3}

 

 

 

 

 

1 F=70     7

G=20   H=50

2 F=70    8

G=30  H=40

3 F=70    2

G=40  H=30

4 F=70    3

G=50  H=20

5 F=90   4

G=60  H=30

6

7F=50    13

G=10   H=40

8 F=50    14

G=20   H=30

9格挡

10 F=70   4

G=60  H=10

11

12

13起点

 

14F=30   13

G=10   H=20

15格挡

16终点

17

18

19 F=50   13

G=10  H=40

20F=50   14

G=20   H=30

21格挡

22

23

24

25 F=70   19

G=20   H=50

26 F=70   20

G=30  H=40

27

28

29

30

31 F=90   25

G=30  H=60

32

33

34

35

36

OpenList = {26,31,5,10}      

CloseList = {13,14,20,8,19,7,1,25,2,3,4}

1 F=70     7

G=20   H=50

2 F=70    8

G=30  H=40

3 F=70    2

G=40  H=30

4 F=70    3

G=50  H=20

5 F=90   4

G=60  H=30

6

7F=50    13

G=10   H=40

8 F=50    14

G=20   H=30

9格挡

10 F=70   4

G=60  H=10

11 F=90   10

G=70  H=20

12

13起点

 

14F=30   13

G=10   H=20

15格挡

16终点  10

F=70G=70H=0

17

18

19 F=50   13

G=10  H=40

20F=50   14

G=20   H=30

21格挡

22

23

24

25 F=70   19

G=20   H=50

26 F=70   20

G=30  H=40

27

28

29

30

31 F=90   25

G=30  H=60

32

33

34

35

36

OpenList = {26,31,5, 11,16}      

CloseList = {13,14,20,8,19,7,1,25,2,3,4,10}

 

 

 

 

 

1 F=70     7

G=20   H=50

2 F=70    8

G=30  H=40

3 F=70    2

G=40  H=30

4 F=70    3

G=50  H=20

5 F=90   4

G=60  H=30

6

7F=50    13

G=10   H=40

8 F=50    14

G=20   H=30

9格挡

10 F=70   4

G=60  H=10

11 F=90   10

G=70  H=20

12

13起点

 

14F=30   13

G=10   H=20

15格挡

16终点  10

F=70G=70H=0

17

18

19 F=50   13

G=10  H=40

20F=50   14

G=20   H=30

21格挡

22

23

24

25 F=70   19

G=20   H=50

26 F=70   20

G=30  H=40

27

28

29

30

31 F=90   25

G=30  H=60

32

33

34

35

36

OpenList = {26,31,5, 11}      

CloseList = {13,14,20,8,19,7,1,25,2,3,4,10,16}

1 F=70     7

G=20   H=50

2 F=70    8

G=30  H=40

3 F=70    2

G=40  H=30

4 F=70    3

G=50  H=20

5 F=90   4

G=60  H=30

6

7F=50    13

G=10   H=40

8 F=50    14

G=20   H=30

9格挡

10 F=70   4

G=60  H=10

11 F=90   10

G=70  H=20

12

13起点

 

14F=30   13

G=10   H=20

15格挡

16终点  10

F=70G=70H=0

17

18

19 F=50   13

G=10  H=40

20F=50   14

G=20   H=30

21格挡

22

23

24

25 F=70   19

G=20   H=50

26 F=70   20

G=30  H=40

27

28

29

30

31 F=90   25

G=30  H=60

32

33

34

35

36

OpenList = {26,31,5, 11}      

CloseList = {13,14,20,8,19,7,1,25,2,3,4,10,16}

 

16->10->4->3->2->8->14->13

倒着输出:13->14->8->2->3->4->10->16

 

0 0
原创粉丝点击