- 147 Views
- Uploaded on
- Presentation posted in: General

程式語言

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

程式語言

- Repeat while any point (xi) is left to be assigned to a cluster
- Use Eq. (1) to get the potential of xi
- Find the point with the highest potential and choose it as the kth cluster center
- Form the kth cluster by assigning N points closest to the centroid (Euclidean distance)
- Remove the chosen N points

(1)

2

- $mean_x[1] = 1;$sdev_x[1] = 0.1;$mean_x[2] = -1;$sdev_x[2] = 0.15;$mean_x[3] = 1;$sdev_x[3] = 0.1;$mean_x[4] = -1;$sdev_x[4] = 0.15;$mean_y[1] = 1;$sdev_y[1] = 0.1;$mean_y[2] = 1;$sdev_y[2] = 0.15;$mean_y[3] = -1;$sdev_y[3] = 0.1;$mean_y[4] = -1;$sdev_y[4] = 0.15;

- @x=@y=();open OUTFILE, ">xy.txt" or die "Cannot open gene_list.txt!\n ($!)";for ($i=1;$i<=4;$i++){for ($j=1;$j<=80;$j++) {$x_tmp = gaussian_rand() * $sdev_x[$i] + $mean_x[$i];$y_tmp = gaussian_rand() * $sdev_y[$i] + $mean_y[$i]; printf(OUTFILE "%.2f \t %.2f \n", $x_tmp, $y_tmp); }}

- for ($j=1;$j<=20;$j++){$x_tmp = rand(2);$y_tmp = rand(2); printf(OUTFILE "%.2f \t %.2f \n", $x_tmp, $y_tmp);}

- Repeat while any point (xi) is left to be assigned to a cluster
- Use Eq. (1) to get the potential of xi
- Find the point with the highest potential and choose it as the kth cluster center
- Form the kth cluster by assigning N points closest to the centroid (Euclidean distance)
- Remove the chosen N points

(1)

7

- open (FILE1,“xy.txt”) || die “open error!” ; #FILE1¬Oradom dateopen FILE2, “>aixes.txt”or die “Cannot open gene_list.txt!\n ($!)”;@aa = <FILE1>;chomp (@aa);#用@x_one和y_one載random date的x,y
- for ($z=0; $z<=$#aa; $z++){ $bb = $aa[$z]; $bb =~ /(\S+)\s+(\S+)/; @x_one[$z] =$1; @y_one[$z] =$2;}

#計算出每點與各點的potient, 用@sum裝

- while ($n <4){ @sum = 0, $bb = 0 ;for ($i=0; $i<=$#x_one ;$i++) {for ($j=1; $j<=$#x_one; $j++) { $bb = exp ( -(($x_one[$i]-$x_one[$j])**2 + ($y_one[$i] - $y_one[$j])**2 ));
@sum[$i] += $bb; } }

- Repeat while any point (xi) is left to be assigned to a cluster
- Use Eq. (1) to get the potential of xi
- Find the point with the highest potential and choose it as the kth cluster center
- Form the kth cluster by assigning N points closest to the centroid (Euclidean distance)
- Remove the chosen N points

(1)

10

- Repeat while any point (xi) is left to be assigned to a cluster
- Use Eq. (1) to get the potential of xi
- Find the point with the highest potential and choose it as the kth cluster center
- Form the kth cluster by assigning N points closest to the centroid (Euclidean distance)
- Remove the chosen N points

(1)

11

比較各點的potient, 找出最高值為cluster center $mix = $sum[0], $num = 0;for($k=1; $k<=$#x_one ; $k++){if ( $sum[$k] > $mix ) { $mix = $sum[$k]; $num = $k ; }} print $x_one[$num]." , ".$y_one[$num]."\n";

printf(FILE2 "%s : %.2f , %.2f %s \n","cluster center", $x_one[$num], $y_one[$num], $m);

- Find cluster center!

- Repeat while any point (xi) is left to be assigned to a cluster
- Use Eq. (1) to get the potential of xi
- Find the point with the highest potential and choose it as the kth cluster center
- Form the kth cluster by assigning N points closest to the centroid (Euclidean distance)
- Remove the chosen N points

(1)

14

- Repeat while any point (xi) is left to be assigned to a cluster
- Use Eq. (1) to get the potential of xi
- Find the point with the highest potential and choose it as the kth cluster center
- Form the kth cluster by assigning N points closest to the centroid (Euclidean distance)
- Remove the chosen N points

(1)

15

- 計算出各點與center間的距離-@dis
@dis =();for ($c=0; $c<$#x_one;$c++) {

if ($c != $num) {$dis[$c] = ( ($x_one[$num] - $x_one[$c])**2 + ($y_one[$num] - $y_one[$c])**2 )**0.5 ;

}

}

- 比較各點之間的唔離大小-找出較小的距離-@sort @sort = (); @sort = sort {$a <=> $b} @dis ;

- 把cluster center附近的點
@del = ();for ($d=0; $d<=90;$d++) {for ($c=0; $c<=$#dis;$c++) {if ($sort[$d] == $dis[$c]) { print OUTFILE “$x_one[$c] \t $y_one[$c] \t $m \n”); @del[$d] = $c; } } }

- Repeat while any point (xi) is left to be assigned to a cluster
- Use Eq. (1) to get the potential of xi
- Find the point with the highest potential and choose it as the kth cluster center
- Form the kth cluster by assigning N points closest to the centroid (Euclidean distance)
- Remove the chosen N points

(1)

19

- Repeat while any point (xi) is left to be assigned to a cluster
- Use Eq. (1) to get the potential of xi
- Find the point with the highest potential and choose it as the kth cluster center
- Form the kth cluster by assigning N points closest to the centroid (Euclidean distance)
- Remove the chosen N points

(1)

20

- foreach (@del) { $x_one[$_] = shift; $y_one[$_] = shift; }for ($f=0, $g=0 ;$f<=$#x_one;$f++){if ($x_one[$f] != "" and $y_one[$f] != "") { $x_one[$g] = $x_one[$f] ; $y_one[$g] = $y_one[$f] ; $g++; }}

- for($e=0; $e<90; $e++){pop @x_one;pop @y_one;} $n++; $m++;}