17.05.2015 Views

A Hardware Implementation of Genetic Algorithm for Extraction of ...

A Hardware Implementation of Genetic Algorithm for Extraction of ...

A Hardware Implementation of Genetic Algorithm for Extraction of ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

, No. CAS2000-131, DSP2000-189, CS2000-151, pp. 29-36, March, 2001.<br />

FPGA <br />

<br />

<br />

980-8579 05<br />

(<strong>Genetic</strong> <strong>Algorithm</strong>: GA) GA<br />

(GAP) GA <br />

GA GAP GA<br />

GA GA <br />

GAP GA <br />

GAP <br />

350 GA <br />

<br />

, , FPGA, GA <br />

A <strong>Hardware</strong> <strong>Implementation</strong> <strong>of</strong> <strong>Genetic</strong> <strong>Algorithm</strong> <strong>for</strong> <strong>Extraction</strong> <strong>of</strong> Disconnected<br />

Closed Loops Using FPGAs<br />

Ryoichi KOBAYASHI, Masahide ABE and Masayuki KAWAMATA<br />

Department <strong>of</strong> Electronic Engineering,<br />

Graduate School <strong>of</strong> Engineering, Tohoku University<br />

Aoba-yama 05, Sendai, 980-8579, Japan<br />

Abstract This paper proposes the <strong>Genetic</strong> <strong>Algorithm</strong> Processor (GAP) specified <strong>for</strong> the disconnected closedloop<br />

extraction problem, and evaluates its per<strong>for</strong>mance. This extraction problem is one <strong>of</strong> the typical GA applications<br />

in which the fitness evaluation requires considerably computation time and the length <strong>of</strong> chromosomes is<br />

variable. The GAP is suitable <strong>for</strong> such a GA application. This paper also constitutes the distributed parallel GA<br />

that reduces the computation time and improves the per<strong>for</strong>mance <strong>of</strong> a search. Experimental results show that the<br />

execution speed <strong>of</strong> a GAP is more than 350 times faster than the s<strong>of</strong>tware-based GA. Experimental results also<br />

show that the speed <strong>of</strong> computation is approximately proportional to the number <strong>of</strong> GAPs.<br />

Key words<br />

extraction <strong>of</strong> disconnected closed loops, genetic algorithm, FPGA, GA hardware


, No. CAS2000-131, DSP2000-189, CS2000-151, pp. 29-36, March, 2001.<br />

1 <br />

(<strong>Genetic</strong> <strong>Algorithm</strong>: GA) <br />

<br />

1975 Holland GA <br />

<br />

GA <br />

<br />

<br />

GA<br />

[1–4]GA<br />

GA <br />

<br />

<br />

<br />

<br />

<br />

GA <br />

<br />

GA <br />

GA <br />

<br />

(1) GA <br />

<br />

(2) <br />

(3) <br />

GA <br />

[5–7] GA <br />

(GA Processor: GAP) FPGA<br />

GAP <br />

GA <br />

GA <br />

GA <br />

<br />

GAP <br />

GA GA <br />

<br />

<br />

2 GA <br />

3 <br />

4 GAP FPGA <br />

<br />

5 GA <br />

6 <br />

<br />

2 GA<br />

2.1 <br />

GA <br />

<br />

<br />

<br />

<br />

GA <br />

<br />

Step 1. <br />

<br />

Step 2. <br />

<br />

Step 3. 2 <br />

<br />

Step 4. <br />

<br />

Step 5. <br />

<br />

Step 6. <br />

Step 2 <br />

2.2 <br />

<br />

<br />

2 <br />

<br />

2 <br />

1 <br />

2 <br />

2 2 <br />

GA <br />

[5–7]<br />

[5] <br />

<br />

<br />

[5] <br />

<br />

<br />

<br />

GA


, No. CAS2000-131, DSP2000-189, CS2000-151, pp. 29-36, March, 2001.<br />

3<br />

2<br />

4<br />

O<br />

x o<br />

, y )<br />

(<br />

o<br />

5<br />

1<br />

1<br />

0<br />

6<br />

0<br />

1: <br />

3: <br />

2<br />

1<br />

3<br />

0<br />

4<br />

5<br />

6<br />

2: <br />

<br />

<br />

<br />

<br />

<br />

2.2.1 <br />

3 <br />

O(x o ,y o ) <br />

<br />

O O<br />

x O <br />

θ <br />

<br />

2.2.2 <br />

4 <br />

2.2.1 <br />

<br />

1 <br />

4: <br />

0 <br />

<br />

M M 4 <br />

0, 1, 3, 5, 6 <br />

<br />

2.2.3 <br />

<br />

[5] <br />

<br />

[5] <br />

2.2.4 <br />

[5] <br />

<br />

<br />

D = 1 N<br />

N−1<br />

∑<br />

i=0<br />

d i (1)<br />

N d i <br />

( 4 )


, No. CAS2000-131, DSP2000-189, CS2000-151, pp. 29-36, March, 2001.<br />

2<br />

3<br />

4<br />

d 1<br />

1<br />

5<br />

d 0<br />

0<br />

6<br />

5: <br />

D <br />

<br />

1: GAP <br />

2 n (n =1, 2, 3, ···, 11)<br />

36, 37, ···, 512<br />

16 <br />

0, 1, ···, 4095<br />

0/255, 1/255, ···, 255/255<br />

<br />

<br />

0/255, 1/255, ···, 255/255<br />

0/8191, 1/8191, ···, 255/8191<br />

<br />

<br />

1, 2, ···,16<br />

GA<br />

GA<br />

2 <br />

256 256<br />

3 GA <br />

3.1 <br />

GAP( 1 ) <br />

GA <br />

<br />

GA GA<br />

<br />

<br />

GA <br />

GA <br />

<br />

<br />

() <br />

() <br />

<br />

<br />

GAP GA <br />

<br />

1 GAP <br />

GAP 2 <br />

GA <br />

<br />

GA <br />

GA <br />

<br />

6 GAP <br />

GA <br />

<br />

GAP <br />

<br />

6: GAP <br />

3.2 <br />

<br />

<br />

<br />

3.3 GA <br />

3.3.1 <br />

GA <br />

<br />

<br />

GAP


, No. CAS2000-131, DSP2000-189, CS2000-151, pp. 29-36, March, 2001.<br />

Pc<br />

><br />

reg<br />

MUX<br />

MUX<br />

7: <br />

<br />

4 <br />

2, 6, 5, 6 <br />

<br />

<br />

Step 1 <br />

(<br />

)<br />

Step 2 <br />

<br />

<br />

<br />

<br />

3.3.2 <br />

<br />

16 <br />

<br />

1 <br />

<br />

<br />

3.3.3 <br />

7 <br />

P c <br />

P c <br />

GAP 1 <br />

0 1 50%<br />

<br />

3.3.4 <br />

8 1 <br />

<br />

P m <br />

8: <br />

P m <br />

P m <br />

3.3.5 <br />

2 (1) <br />

d i <br />

GA <br />

GAP <br />

<br />

<br />

<br />

<br />

3.3.6 <br />

<br />

<br />

<br />

<br />

3.4 <br />

<br />

<br />

<br />

GA <br />

GAP <br />

<br />

<br />

3.5 (RNG)<br />

GAP <br />

[8] 46 <br />

<br />

<br />

Rule90 : s(i) + = s(i − 1) ⊕ s(i + 1) (2)


, No. CAS2000-131, DSP2000-189, CS2000-151, pp. 29-36, March, 2001.<br />

Rule150 : s(i) + = s(i − 1) ⊕ s(i) ⊕ s(i + 1) (3)<br />

<br />

<br />

0 <br />

<br />

<br />

3.6 <br />

1 <br />

<br />

2: <br />

16 32 64 128<br />

Slice 1070 1269 1288 1319<br />

BRAM 5 6 10 18<br />

[ns] 24.53 24.47 26.22 27.65<br />

[MHz] 40.78 40.87 38.14 36.17<br />

(S<strong>of</strong>t)[s] 13.8 29.7 62.6 130.0<br />

(Hard)[s] 0.040 0.079 0.168 0.354<br />

S<strong>of</strong>t/Hard 346 376 372 367<br />

4 <br />

4.1 <br />

(HDL) <br />

Verilog-HDL <br />

2,438 Avant!<br />

Polaris Synplicity<br />

Synplify <br />

Xilinx <br />

Xilinx Virtex XCV1000-<br />

6 <br />

4.2 <br />

GAP Virtex XCV1000-6 <br />

2 <br />

GA 800 <br />

(Pentium II 400MHzC<br />

) <br />

<br />

Slice BRAM <br />

Xilinx <br />

Slice FPGA <br />

BRAM <br />

S<strong>of</strong>t/Hard <br />

GAP <br />

GAP <br />

<br />

350 <br />

<br />

5 GAP <br />

5.1 <br />

GAP GA [9] <br />

<br />

GA <br />

GA<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

9: Ring GA<br />

<br />

<br />

<br />

<br />

<br />

<br />

10: 8 GA<br />

GA <br />

9 <br />

GA (1)<br />

GAP1 (2) GAP <br />

<br />

<br />

GA


, No. CAS2000-131, DSP2000-189, CS2000-151, pp. 29-36, March, 2001.<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

11: 8 GA<br />

14: <br />

<br />

<br />

<br />

<br />

<br />

<br />

2 <br />

(1) <br />

<br />

<br />

<br />

<br />

<br />

<br />

12: <br />

<br />

(2) <br />

<br />

<br />

<br />

<br />

5.2 <br />

3 (128 ) <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

GAP <br />

800 <br />

() <br />

<br />

14 <br />

8 8 <br />

GAP <br />

1 <br />

<br />

13: <br />

10 8 <br />

11 8 <br />

<br />

12 13 <br />

5.3 <br />

3 <br />

GA


, No. CAS2000-131, DSP2000-189, CS2000-151, pp. 29-36, March, 2001.<br />

3: GA <br />

1 2 4 8<br />

Slice 1319 2566 5050 9832<br />

BRAM 18 19 21 25<br />

[ns] 27.645 28.111 27.815 25.782<br />

[MHz] 36.173 35.573 35.952 38.787<br />

[s] 0.3540 0.1804 0.0897 0.0420<br />

1.0000 1.9616 3.9470 8.4383<br />

<br />

[1] S. D. Scott and S. Seth, “HGA: A hardware-based<br />

genetic algorithm,” Proc. ACM/SIGDA, 3rd Int’l<br />

Symposium on FPGA, pp. 53–59, 1995.<br />

[2] B. C. H. Turton and T. Arslan, “A parallel genetic<br />

VLSI architecture <strong>for</strong> combinatorial real-time<br />

application - disc scheduling,” Proc. <strong>Genetic</strong> <strong>Algorithm</strong>s<br />

in Engineering Systems : Innovations and<br />

Applications, pp. 493–500, 1995.<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

[3] , , , , , , “<br />

<br />

,” , vol. 35, no. 11,<br />

pp. 1496–1504, 1999.<br />

[4] , , , , , , “<br />

LSI <br />

,” , vol. 41, no. 6,<br />

pp. 1766–1775, June 2000.<br />

[5] , “ GA <br />

,” , vol. 26, no. 5,<br />

pp. 591–598, 1997.<br />

<br />

<br />

<br />

15: <br />

15 () 1, 2 <br />

4, 8 <br />

<br />

6 <br />

GA <br />

GA (1)<br />

(2) (3) <br />

GA <br />

GAP<br />

1 <br />

<br />

<br />

GAP <br />

350 <br />

GA <br />

GAP <br />

GA <br />

<br />

[6] , , , “<br />

<br />

,” 15 <br />

, pp. 563–568, 2000.<br />

[7] M. Abe, T. Shimada and M. Kawamata, “<strong>Extraction</strong><br />

<strong>of</strong> outlines with acute-angle corners using<br />

genetic algorithm based on factors <strong>for</strong> perceptive<br />

grouping,” Proceedings <strong>of</strong> IEEE International<br />

Symposium on Intelligent Signal Processing and<br />

Communication Systems, pp. 557–560, Dec. 1999.<br />

[8] P. D. Hortensius, H. C. Card and R. D. McLeod,<br />

“Parallel random number generation <strong>for</strong> VLSI using<br />

cellular automata,” IEEE Trans. Comput,<br />

vol. 38, pp. 1466–1473, Oct. 1989.<br />

[9] R. Tanese, “Distributed genetic agorithms,” Proceedings<br />

<strong>of</strong> the Third International Conference on<br />

<strong>Genetic</strong> <strong>Algorithm</strong>s, pp. 434–439, June 1989.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!