From 004187541ccd6638fd6f6d7fefd0a8f525c15b81 Mon Sep 17 00:00:00 2001 From: Choi lab Date: Tue, 12 May 2026 11:07:13 +0900 Subject: [PATCH] first commit --- .gitignore | 359 ++++++++++++++++++++++++++++++++++++ Makefile.txt | 10 + README.md | 0 check.dat | 12 ++ compile.bat | 1 + elete1.dat | 101 ++++++++++ elete1.pdf | Bin 0 -> 20228 bytes elete1s.dat | 101 ++++++++++ elete1s.pdf | Bin 0 -> 20146 bytes elete2.dat | 101 ++++++++++ elete2.pdf | Bin 0 -> 20135 bytes em0.01.dat | Bin 0 -> 576 bytes em0.05.dat | Bin 0 -> 574 bytes em0.20.dat | Bin 0 -> 572 bytes em0.50.dat | Bin 0 -> 574 bytes generation.plt | 20 ++ only_mutation1.dat | 101 ++++++++++ only_mutation1.pdf | Bin 0 -> 20165 bytes output.dat | Bin 0 -> 576 bytes tm0.01.dat | Bin 0 -> 574 bytes tm0.05.dat | Bin 0 -> 574 bytes tm0.20.dat | Bin 0 -> 576 bytes tm0.50.dat | Bin 0 -> 576 bytes tour1.dat | 101 ++++++++++ tour1.pdf | Bin 0 -> 20298 bytes tour2.dat | 101 ++++++++++ tour2.pdf | Bin 0 -> 20217 bytes tsp.c | 135 ++++++++++++++ tsp.h | 88 +++++++++ tsp_jikken.c | 158 ++++++++++++++++ tsp_private.c | 132 +++++++++++++ tsp_private.h | 26 +++ tsp_public.c | 159 ++++++++++++++++ tsp_public.h | 33 ++++ 出力ファイル一覧.md | 60 ++++++ 35 files changed, 1799 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile.txt create mode 100644 README.md create mode 100644 check.dat create mode 100644 compile.bat create mode 100644 elete1.dat create mode 100644 elete1.pdf create mode 100644 elete1s.dat create mode 100644 elete1s.pdf create mode 100644 elete2.dat create mode 100644 elete2.pdf create mode 100644 em0.01.dat create mode 100644 em0.05.dat create mode 100644 em0.20.dat create mode 100644 em0.50.dat create mode 100644 generation.plt create mode 100644 only_mutation1.dat create mode 100644 only_mutation1.pdf create mode 100644 output.dat create mode 100644 tm0.01.dat create mode 100644 tm0.05.dat create mode 100644 tm0.20.dat create mode 100644 tm0.50.dat create mode 100644 tour1.dat create mode 100644 tour1.pdf create mode 100644 tour2.dat create mode 100644 tour2.pdf create mode 100644 tsp.c create mode 100644 tsp.h create mode 100644 tsp_jikken.c create mode 100644 tsp_private.c create mode 100644 tsp_private.h create mode 100644 tsp_public.c create mode 100644 tsp_public.h create mode 100644 出力ファイル一覧.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4ed587c --- /dev/null +++ b/.gitignore @@ -0,0 +1,359 @@ +# ---> C +# Prerequisites +*.d + +# Object files +*.o +*.ko +*.obj +*.elf + +# Linker output +*.ilk +*.map +*.exp + +# Precompiled Headers +*.gch +*.pch + +# Libraries +*.lib +*.a +*.la +*.lo + +# Shared objects (inc. Windows DLLs) +*.dll +*.so +*.so.* +*.dylib + +# Executables +*.exe +*.out +*.app +*.i*86 +*.x86_64 +*.hex + +# Debug files +*.dSYM/ +*.su +*.idb +*.pdb + +# Kernel Module Compile Results +*.mod* +*.cmd +.tmp_versions/ +modules.order +Module.symvers +Mkfile.old +dkms.conf + +# ---> TeX +## Core latex/pdflatex auxiliary files: +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc +*.fmt +*.fot +*.cb +*.cb2 +.*.lb + +## Intermediate documents: +*.dvi +*.xdv +*-converted-to.* +# these rules might exclude image files for figures etc. +# *.ps +# *.eps +# *.pdf + +## Generated if empty string is given at "Please type another file name for output:" +.pdf + +## Bibliography auxiliary files (bibtex/biblatex/biber): +*.bbl +*.bcf +*.blg +*-blx.aux +*-blx.bib +*.run.xml + +## Build tool auxiliary files: +*.fdb_latexmk +*.synctex +*.synctex(busy) +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync + +## Build tool directories for auxiliary files +# latexrun +latex.out/ + +## Auxiliary and intermediate files from other packages: +# algorithms +*.alg +*.loa + +# achemso +acs-*.bib + +# amsthm +*.thm + +# beamer +*.nav +*.pre +*.snm +*.vrb + +# changes +*.soc + +# comment +*.cut + +# cprotect +*.cpt + +# elsarticle (documentclass of Elsevier journals) +*.spl + +# endnotes +*.ent + +# fixme +*.lox + +# feynmf/feynmp +*.mf +*.mp +*.t[1-9] +*.t[1-9][0-9] +*.tfm + +#(r)(e)ledmac/(r)(e)ledpar +*.end +*.?end +*.[1-9] +*.[1-9][0-9] +*.[1-9][0-9][0-9] +*.[1-9]R +*.[1-9][0-9]R +*.[1-9][0-9][0-9]R +*.eledsec[1-9] +*.eledsec[1-9]R +*.eledsec[1-9][0-9] +*.eledsec[1-9][0-9]R +*.eledsec[1-9][0-9][0-9] +*.eledsec[1-9][0-9][0-9]R + +# glossaries +*.acn +*.acr +*.glg +*.glo +*.gls +*.glsdefs +*.lzo +*.lzs +*.slg +*.slo +*.sls + +# uncomment this for glossaries-extra (will ignore makeindex's style files!) +# *.ist + +# gnuplot +*.gnuplot +*.table + +# gnuplottex +*-gnuplottex-* + +# gregoriotex +*.gaux +*.glog +*.gtex + +# htlatex +*.4ct +*.4tc +*.idv +*.lg +*.trc +*.xref + +# hyperref +*.brf + +# knitr +*-concordance.tex +# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files +# *.tikz +*-tikzDictionary + +# listings +*.lol + +# luatexja-ruby +*.ltjruby + +# makeidx +*.idx +*.ilg +*.ind + +# minitoc +*.maf +*.mlf +*.mlt +*.mtc[0-9]* +*.slf[0-9]* +*.slt[0-9]* +*.stc[0-9]* + +# minted +_minted* +*.pyg + +# morewrites +*.mw + +# newpax +*.newpax + +# nomencl +*.nlg +*.nlo +*.nls + +# pax +*.pax + +# pdfpcnotes +*.pdfpc + +# sagetex +*.sagetex.sage +*.sagetex.py +*.sagetex.scmd + +# scrwfile +*.wrt + +# svg +svg-inkscape/ + +# sympy +*.sout +*.sympy +sympy-plots-for-*.tex/ + +# pdfcomment +*.upa +*.upb + +# pythontex +*.pytxcode +pythontex-files-*/ + +# tcolorbox +*.listing + +# thmtools +*.loe + +# TikZ & PGF +*.dpth +*.md5 +*.auxlock + +# titletoc +*.ptc + +# todonotes +*.tdo + +# vhistory +*.hst +*.ver + +# easy-todo +*.lod + +# xcolor +*.xcp + +# xmpincl +*.xmpi + +# xindy +*.xdy + +# xypic precompiled matrices and outlines +*.xyc +*.xyd + +# endfloat +*.ttt +*.fff + +# Latexian +TSWLatexianTemp* + +## Editors: +# WinEdt +*.bak +*.sav + +# Texpad +.texpadtmp + +# LyX +*.lyx~ + +# Kile +*.backup + +# gummi +.*.swp + +# KBibTeX +*~[0-9]* + +# TeXnicCenter +*.tps + +# auto folder when using emacs and auctex +./auto/* +*.el + +# expex forward references with \gathertags +*-tags.tex + +# standalone packages +*.sta + +# Makeindex log files +*.lpz + +# xwatermark package +*.xwm + +# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib +# option is specified. Footnotes are the stored in a file with suffix Notes.bib. +# Uncomment the next line to have this generated file ignored. +#*Notes.bib + +# vscode +.vscode/ \ No newline at end of file diff --git a/Makefile.txt b/Makefile.txt new file mode 100644 index 0000000..db2b3ce --- /dev/null +++ b/Makefile.txt @@ -0,0 +1,10 @@ +tsp : tsp.o tsp_jikken.o tsp_public.o tsp_private.o + gcc -Wall -o tsp tsp.o tsp_jikken.o tsp_public.o tsp_private.o -lm +tsp.o : tsp.c tsp.h + gcc -Wall -c tsp.c +tsp_jikken.o : tsp_jikken.c tsp.h + gcc -Wall -c tsp_jikken.c +tsp_public.o : tsp_public.c tsp.h tsp_public.h + gcc -Wall -c tsp_public.c +tsp_private.o : tsp_private.c tsp.h tsp_private.h + gcc -Wall -c tsp_private.c diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/check.dat b/check.dat new file mode 100644 index 0000000..ad5dc88 --- /dev/null +++ b/check.dat @@ -0,0 +1,12 @@ +#最短経路:0->9->1->2->5->3->4->6->7->8->0 +#最短経路長:35.63 +1 1 +6 0 +9 3 +9 8 +6 9 +7 5 +3 8 +0 9 +3 5 +4 2 diff --git a/compile.bat b/compile.bat new file mode 100644 index 0000000..2e69a8d --- /dev/null +++ b/compile.bat @@ -0,0 +1 @@ +gcc -Wall -lm tsp_jikken.c tsp_private.c tsp_public.c tsp.c -o tsp ; .\tsp \ No newline at end of file diff --git a/elete1.dat b/elete1.dat new file mode 100644 index 0000000..aa5bbb3 --- /dev/null +++ b/elete1.dat @@ -0,0 +1,101 @@ +# min avg max +41.5433, 56.2432, 70.8706 +41.5433, 52.9489, 64.8914 +41.5433, 50.2838, 70.5527 +41.0052, 47.7829, 65.7395 +41.0052, 44.9366, 63.8423 +39.2571, 43.9278, 64.3337 +39.2571, 43.7881, 63.8423 +39.2571, 42.2862, 59.5177 +39.2571, 42.0238, 54.3256 +39.2571, 42.1568, 63.0851 +36.464, 41.0749, 55.4945 +36.464, 41.1484, 66.1776 +36.464, 41.033, 62.1425 +36.464, 40.9938, 61.0389 +36.464, 40.4489, 56.0738 +36.464, 39.4724, 59.4337 +36.464, 39.2671, 58.8699 +36.464, 39.2704, 63.4688 +36.464, 38.1143, 53.2453 +36.464, 38.1057, 54.5408 +36.464, 37.7785, 53.2453 +36.464, 38.3985, 55.7743 +36.464, 37.9681, 52.3717 +35.6263, 37.8255, 55.7743 +35.6263, 38.7252, 63.4688 +35.6263, 39.0195, 63.4688 +35.6263, 37.8999, 62.4187 +35.6263, 37.9282, 55.7743 +35.6263, 37.4584, 53.0499 +35.6263, 37.4682, 52.3717 +35.6263, 37.2831, 50.3336 +35.6263, 36.7048, 50.3336 +35.6263, 37.561, 53.379 +35.6263, 37.7709, 53.379 +35.6263, 37.7804, 54.5408 +35.6263, 37.3412, 52.249 +35.6263, 36.5371, 53.379 +35.6263, 36.4896, 52.249 +35.6263, 37.4936, 61.626 +35.6263, 37.1807, 56.1744 +35.6263, 37.0677, 53.379 +35.6263, 36.6893, 51.7813 +35.6263, 37.1117, 54.5408 +35.6263, 36.7602, 50.3476 +35.6263, 37.0735, 56.2887 +35.6263, 36.877, 53.1389 +35.6263, 36.6941, 54.5408 +35.6263, 37.5088, 54.5408 +35.6263, 37.1173, 54.5408 +35.6263, 36.7332, 54.2678 +35.6263, 37.0174, 54.5408 +35.6263, 37.4219, 54.2678 +35.6263, 37.5632, 56.1744 +35.6263, 37.2171, 56.1744 +35.6263, 36.767, 54.5408 +35.6263, 37.8285, 56.1744 +35.6263, 37.0538, 54.5408 +35.6263, 36.4177, 52.6936 +35.6263, 36.9115, 51.7813 +35.6263, 37.3024, 56.1744 +35.6263, 36.7944, 47.2004 +35.6263, 37.5562, 53.379 +35.6263, 36.6323, 54.5408 +35.6263, 36.5994, 52.249 +35.6263, 37.1367, 53.379 +35.6263, 37.266, 54.3197 +35.6263, 37.5201, 53.379 +35.6263, 37.1902, 53.1389 +35.6263, 37.3239, 53.379 +35.6263, 36.5938, 53.2453 +35.6263, 36.602, 53.1389 +35.6263, 37.452, 56.1744 +35.6263, 36.9308, 56.1744 +35.6263, 36.7664, 54.5408 +35.6263, 37.0498, 54.5408 +35.6263, 37.4853, 54.5408 +35.6263, 36.9586, 53.1389 +35.6263, 36.9626, 56.1744 +35.6263, 36.9608, 54.2678 +35.6263, 36.242, 50.3336 +35.6263, 38.5092, 54.5408 +35.6263, 37.2976, 58.2788 +35.6263, 37.5366, 54.2678 +35.6263, 37.2887, 54.2258 +35.6263, 37.3455, 52.4206 +35.6263, 37.8723, 53.379 +35.6263, 37.3919, 53.2453 +35.6263, 37.351, 54.2678 +35.6263, 38.4408, 56.5808 +35.6263, 37.5935, 56.1744 +35.6263, 37.8466, 53.379 +35.6263, 37.4899, 52.6936 +35.6263, 36.936, 62.5186 +35.6263, 36.9946, 53.379 +35.6263, 36.9064, 54.9852 +35.6263, 36.7193, 49.9268 +35.6263, 36.5643, 54.2678 +35.6263, 38.0012, 54.5408 +35.6263, 37.5631, 54.2678 +35.6263, 37.3921, 56.1744 diff --git a/elete1.pdf b/elete1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..65a40c54e958802334dbe3ffaf25bf435add4b12 GIT binary patch literal 20228 zcmaI71B_@vv#2|>$DY|^+qP}nwr$(CZQHhO+qP%!{?9$<=Dxg_x6)};)moLVN;+S! zbQ8-7iBQwiutE|yU)Ov>GU3tT*&0|ta&h6&N*UXjI+@`y{}U-d;^E=ZikMqD89V%I zt@NFYg^Uetjf^3Acpx2}9E|m?A>Fcy)hA=HTM@QjRi7N1;HO^=(*gJafHc_Bv-g7G zCk-(PiB*D#a&r}9Z5l*dJGWi&%uLi$s|>O!R>&VZ)(>_yLveSG-*IzGc1b52dcU22 zZUVD&f4J2T7r%7FdPjeEOI{g)8-EcTeKG>dA3NV)*Y7djA&BwQPE1r8zdx8h|3*ie zBXG_7=KA_+EPUX2K$~+cB1D8cSMFyL(_Y2ttC8Oa>*xF&oBuo>Dh>Z~c-l%7C&M6i zS33KAF?qi}YJR3X@&0gePrXbZ+AiwiaPmM-fyQyOIxr2VB0wc;{V`lFFtc*H8l*>4 zrYh7j5(^(bUgX9p{8b5m zzY^5MFGQRQuii{XfQkJX20eltUwuy~MJEJsuq zBMpQ^(e`J!LNIU5Y%SP;j!Mo72A40MfrNl^qE+r_l@B3nJjeB@v3@Nc(nxd^!^?)G zmFY~5m6hWMEvpjN-?301b*8_rubtToz%(q)?K3V}6&VZhaIJ3aO`%;LM#DPf`E%HW zxuV&G$wSSBetvhV{DT5VL$jv8@Y90@I{@bZ2a;AV5xHOOG!_pW7@5m~Y>Ih@N9|QV zF2Wq&1=q<7Bp4fcl+EhuiMdpa$aVnzuPckia(arutKg_=-kQ8U^zev`t|O%II7t&C z+0E5l7V*NR&)FL!5+_AW{@U8PrA)rvO2*j)J&Nm#32f->27WJUKQYrwQr2EQJ#!U@ z=#VHy>S);3dVV`nG>qWBCU7eJx}rnC*vL}d1y;P8^b{$(gK6Q(+~+zIM`3_u*cCZD zzmcJZnsba8VDSo~(9P9q*Yj51b1MY07Qd0|I6Z-;;$VfNkOs?mc2)+bCXI!9_H!U3 z1^Bd5>aQAH=NY_gM~r0Ijr9@ma&)==GI<4#>LrrQ!_^GV45?)nF7B?99mulqXha1h zO@2pfJfae7Nr>`k*@&3}2Y>T+_(dyi zYlv~S3wS#Nh>yhx^j={q5RZ)K;kqlxX~O zX5=$}C>!>3LYqfm6y0qPw8^n{o%IWx%x zQSspx4fi!vGfVoN)N(_pAcK=xdsEO7G*pil5&8VrTNJr^awG`fH<3fFLyYinVE<>@ zRmOp+Dbq+!x03oUHN9P8C5%-G&^?BC{`wL0bUZQ=VKu4|d4_&ki9bOcLJVOughb;Y zk}r^@@FB(V99hhwvF#}(%no%-NS#D~Wm=9ij8JnejLOc08-nOPyEw?t1;+(&SxpsY zxUxAeOdqmeWK0k`OA)KiWV|XYabc8XB=PMpyBJ)PUgE)F1l~iZNehTh z)Lu5dYk!WZC5aERrv{&(t08g2rf_7-SPdp1)u;lfJTJ>(=@@(Mcw(xrCCgA4q?kqG ze8DamZy70~%2dfd#c@e$4~;gOqvUNuvr5TqfXLIzs>cJCSb9R9MBf8tD8f)x9*iy7 zKQ_$*9FGVw+-pyoRftY9!q{iSm28t)(k*Qf8@6)bit2LMeM*=bBw}|%yzzSIZxxNO z-3i5wKj5;#!eWIOd|yXVh^g=%Jx6i?{;ESLxC*-@@jXK*xJ3YKOoJ=9KH^d4VblW- zzLhaTJ<%N}?XUoY#kG>XR{BO)ElGG`Fo_fn`fe54EOdydH>?UNb9|pEr5i#UQF#=S zD)>x&cn1iBM8r{-dl8p)R4Q>i04Qm3s6#YSu>4+~qs@~`!a@vsKk4kgu^+*vEN~QX zjs&VWcVuv<$*1O+Scl7m~4Czvc; z8S3aHLNWeFYes`B?oTTVt$)tzU$oXWC3�ySL%nFi#-TmA-BYwj&+cT`=e^Nq+;r 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 L6%}(^3!(o27_MNV literal 0 HcmV?d00001 diff --git a/em0.01.dat b/em0.01.dat new file mode 100644 index 0000000000000000000000000000000000000000..ae1a4d3b360f03028e78833cf4778234c9751be2 GIT binary patch literal 576 zcmZ{h%?iRW5QOI}_zr?s39U*0u3o&T2ki@p6cx0B*4I~OciU4eg(kE6Wp+3De&(2= z#uHZ@al?XYi#Ix|j~-I0?tq3=gA=nma(9ic7%8SzpP#y{ee@baV7CHJ`DD zbP`5r=|MU%@06#6HWhmZ&gYo5DdnutrvA}^bj43zrsOJgG17_kJ={skd4;wqVsFnb W94p%`$h1ORrI@zY$@}-Hdin=kFgv*b literal 0 HcmV?d00001 diff --git a/em0.05.dat b/em0.05.dat new file mode 100644 index 0000000000000000000000000000000000000000..2c79f9e7b997870fcabb10c91e7f77c6bed24f86 GIT binary patch literal 574 zcmZ{h%?iRm420(__zr?sDRsN{=jz3adeFXrNKrv6XnlQklB}StrO@W*V=_r!&oM@* zal;8aoH1dx!UG+%jCnY-;fwnFF(ckwg=t-Q|ePY^fQUz@nXqyz% KzyHQlRkYs}h&#Uk literal 0 HcmV?d00001 diff --git a/em0.20.dat b/em0.20.dat new file mode 100644 index 0000000000000000000000000000000000000000..6d38926bebf119b345289be56cf7882d285e2566 GIT binary patch literal 572 zcma)&%?iRm420(__zr?sk#_sHy?XJY9<(nYQdH0iT3=tCBo+l*>M65ouq1gf^cx=ah6pZ@DjI6x!al(cj(;9sjvWq~1vf u9do*Dl4;*=w0ryaaO!L?`)J1*a-;9uLmYD0RUxC$_CLSgw)N+?Go@cwe>*q; literal 0 HcmV?d00001 diff --git a/em0.50.dat b/em0.50.dat new file mode 100644 index 0000000000000000000000000000000000000000..c0db96b09e3ae72ce8ac634cf42d010b7079bec8 GIT binary patch literal 574 zcma)&y$ZrW5QL`|dV?njS6D?Is?}i3D&6Re0RHP~#x!sbx%3acV&{^}_;Kb=HeCk2(=w>E0xZy5R`7P;sT=5srO literal 0 HcmV?d00001 diff --git a/generation.plt b/generation.plt new file mode 100644 index 0000000..0abc89b --- /dev/null +++ b/generation.plt @@ -0,0 +1,20 @@ +# 出力設定 +set terminal pdfcairo size 4in,3in font "Arial,12" +set output 'path_length_plot.pdf' + +set xlabel "generation" +set ylabel "path length" +set grid + +set xrange [0:100] +set yrange [0:80] + +set xtics 10 +set ytics 10 + +# データのプロット +# $0 は行番号(0から開始)を意味します +# 1列目:min, 2列目:avg, 3列目:max を想定 +plot 'output.dat' using 0:1 with lines title "Min", \ + '' using 0:2 with lines title "Avg", \ + '' using 0:3 with lines title "Max" diff --git a/only_mutation1.dat b/only_mutation1.dat new file mode 100644 index 0000000..4e6a392 --- /dev/null +++ b/only_mutation1.dat @@ -0,0 +1,101 @@ +# min avg max +45.5294, 61.9471, 75.2243 +45.5294, 61.5091, 75.2243 +45.5294, 61.1737, 75.5987 +45.5294, 61.2738, 75.5987 +45.5294, 61.4409, 75.5987 +45.5294, 61.7753, 75.5987 +45.5294, 61.5801, 75.5987 +50.8268, 61.4698, 75.5987 +48.4798, 61.4566, 75.5987 +46.5928, 61.5124, 75.5987 +46.5928, 61.3973, 75.5987 +46.5928, 61.5501, 75.5987 +46.5928, 61.5765, 74.1443 +46.5928, 61.5375, 74.1443 +46.5928, 61.3549, 74.1443 +46.5928, 61.0363, 74.1443 +49.2101, 61.1487, 73.9208 +48.5416, 61.2421, 73.9208 +48.5416, 61.2129, 73.2847 +49.2101, 61.1352, 72.831 +49.2101, 61.1545, 72.831 +49.2101, 61.374, 72.831 +49.2101, 61.1901, 72.831 +48.3827, 61.2704, 72.831 +48.3809, 61.2082, 72.831 +48.3809, 61.3082, 72.9551 +48.3809, 61.1667, 73.1866 +48.3809, 60.9059, 73.1866 +48.3809, 61.0146, 75.9349 +48.3809, 60.5673, 75.9349 +48.3809, 60.9728, 77.3301 +48.3809, 60.9296, 77.3301 +44.9001, 60.8398, 77.3301 +44.9001, 60.8155, 77.3301 +47.1546, 60.882, 77.3301 +48.4079, 60.9876, 77.3301 +48.4079, 60.9486, 72.831 +48.4079, 60.956, 73.9764 +48.4079, 60.955, 73.9764 +48.4079, 60.9306, 74.2388 +48.4079, 60.8439, 74.2388 +48.4079, 60.5127, 74.2388 +48.4079, 60.5748, 74.2388 +47.5294, 60.8237, 74.2388 +47.5294, 60.8721, 73.2931 +47.5294, 60.9409, 73.2931 +46.9184, 60.6378, 76.3645 +48.0827, 60.6986, 76.3645 +48.0249, 60.888, 76.3645 +48.0827, 60.9865, 76.3645 +48.0827, 60.741, 76.3645 +48.0827, 60.8003, 76.3645 +48.0827, 60.8745, 76.3645 +48.0827, 61.2306, 76.3645 +48.0827, 61.4272, 76.3645 +48.0827, 61.2962, 76.3645 +49.6497, 61.3978, 76.3645 +49.6497, 61.7179, 76.3645 +49.6497, 61.6371, 76.3645 +49.5208, 61.6281, 76.3645 +50.6103, 61.7684, 76.3645 +50.2895, 61.7677, 76.3645 +50.2895, 61.6216, 76.3645 +49.4399, 61.3769, 76.3645 +46.4688, 61.3879, 76.3645 +46.4688, 61.523, 76.3645 +46.4688, 62.007, 76.3645 +46.4688, 61.9853, 76.6304 +49.4399, 61.5991, 76.6304 +48.9993, 61.7025, 76.6304 +48.9993, 61.5724, 76.6304 +47.389, 61.6693, 76.6304 +47.389, 61.9294, 76.6304 +47.389, 61.9432, 72.3788 +47.389, 61.7124, 73.1473 +47.389, 61.2305, 73.1473 +47.389, 61.4225, 73.1473 +47.389, 61.4459, 73.1473 +47.389, 61.5575, 76.2133 +47.389, 61.6647, 76.2133 +47.2868, 61.6941, 76.2133 +47.2868, 61.469, 76.2133 +47.2868, 61.9245, 73.8426 +47.2868, 62.2466, 73.8426 +50.6103, 62.4955, 73.8426 +50.6103, 62.6961, 73.8426 +49.7479, 62.5457, 73.7954 +49.7479, 62.8831, 73.9072 +50.6103, 62.8054, 73.9072 +50.6103, 62.8534, 73.7954 +48.5602, 62.9654, 73.7954 +48.5602, 62.9501, 75.6723 +46.9305, 62.8084, 75.6723 +46.9305, 62.767, 75.6723 +46.9305, 63.0662, 77.3139 +45.757, 63.2588, 77.3139 +43.6158, 62.8181, 77.3139 +43.6158, 62.8254, 77.3139 +43.6158, 63.0695, 77.3139 +43.6158, 62.9746, 77.3139 diff --git a/only_mutation1.pdf b/only_mutation1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..129aa9f873cebf8d4010f8ca01532b9ea76ed30b GIT binary patch literal 20165 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 literal 0 HcmV?d00001 diff --git a/output.dat b/output.dat new file mode 100644 index 0000000000000000000000000000000000000000..e4c5cbdcc0a56515314cbeb117ae8efe6735f7a1 GIT binary patch literal 576 zcmZ{gy$*sv5QL{T@f}QTjp65jyVk}=EtD59hNy{RqWJpi?A{3l&~US}-_73g{md~# zi6^c&;)VsQE#7EYHS`{+u~%Jb?|_O_g%i6wa(8uCbY65eJZqe(F6ytfE}8NtrkEho zUW6r8tUA%JK~67gJqMvZF+^viQ#ieAVU_ktL$r8~ylfa#Nw%+s=$Lfg(z((`@Am1G zZ|-Qztt2}ep$!t!amaR5LgyoN8vcpjQYxW~5!!IJWc%4RY-va7lyny8gr{WtN&PJi Jb33{S**{OJJEH&q literal 0 HcmV?d00001 diff --git a/tm0.01.dat b/tm0.01.dat new file mode 100644 index 0000000000000000000000000000000000000000..b514c98091a6a47eed8c63425cf2f5e918434e13 GIT binary patch literal 574 zcmZ{gy$ZrW5QL`|dd zzXWr33+(R-sdR32jb8+S5nqpmZQFw9{!wJEoX3hqe-$tnY1^B7svnL&!aicn7-FD;P;#M%kRshK@dm;ST>s7o~l+k8>q-xaP0amUN*P Hb9%oQ?9V%d literal 0 HcmV?d00001 diff --git a/tm0.20.dat b/tm0.20.dat new file mode 100644 index 0000000000000000000000000000000000000000..0e1237fa93cfec78964ce8146173419be1cdd346 GIT binary patch literal 576 zcmaix%?iRW5QOI}_zr?sDa~J7uU@>U2ki@p6cx0B*4I}jn+QELlpKWTI}WANbZ1!RD%<mFk!uA{#y*wS9#=ITxdfFtt6}^j?SCO_!+SjuvCGTP< zEq{D89Zrw|7QOKqv@1vmd*|J|9y| zP~eIacBn9;TH%g{s-bs5jg8c$^tLETmDsbpCU+KhPUl8v$#;zdtE2b}(FLcxi7`e9 zr57SV>}w^CrVfxmi&E@aIvPZ4PrFHNvlH2u`%Ow_yG?EMcM^?MXw#9zFk`?c@wp?R q7-3;&795gS^iBaLgC}%(}`MGJDWKEYpo5O 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 W0rcPi?xwgcQ5z$os%mUyBJwY}BEG%= literal 0 HcmV?d00001 diff --git a/tour2.dat b/tour2.dat new file mode 100644 index 0000000..90c6ec2 --- /dev/null +++ b/tour2.dat @@ -0,0 +1,101 @@ +# min avg max +48.4051, 52.518, 66.0019 +47.9389, 49.1244, 63.1711 +47.8462, 48.8651, 59.8477 +40.7055, 48.2732, 54.5167 +40.7055, 47.3942, 54.4387 +40.7055, 43.9889, 56.9097 +40.7055, 42.4347, 55.4715 +40.7055, 41.6844, 54.1293 +40.7055, 41.7646, 55.2381 +40.7055, 41.7323, 55.4715 +40.7055, 41.6488, 55.4715 +40.7055, 41.4085, 52.5794 +40.7055, 41.8962, 52.1481 +40.7055, 41.6391, 54.1293 +40.7055, 42.2353, 55.2381 +40.7055, 41.8956, 55.2381 +40.7055, 41.4927, 52.1177 +40.7055, 41.6299, 55.4715 +40.7055, 42.1978, 55.2381 +40.7055, 42.0644, 55.2381 +40.7055, 42.1517, 55.4715 +40.7055, 41.963, 55.4715 +40.7055, 41.8481, 51.8485 +40.7055, 42.3403, 55.2381 +40.7055, 41.9751, 55.4715 +40.7055, 41.9968, 55.2381 +40.7055, 41.7708, 52.5313 +40.7055, 41.9835, 55.4715 +40.7055, 41.6743, 51.8485 +40.7055, 42.1242, 55.2381 +40.7055, 41.435, 52.5313 +40.7055, 41.1915, 52.2249 +40.7055, 42.0759, 52.5313 +40.7055, 41.6181, 52.5313 +40.7055, 41.558, 55.2381 +40.7055, 42.0292, 55.4715 +40.7055, 42.0138, 55.2381 +40.7055, 41.6111, 55.2381 +40.7055, 41.9351, 55.4715 +40.7055, 42.0643, 55.4715 +40.7055, 41.4954, 54.1293 +40.7055, 41.9374, 55.4715 +40.7055, 42.4952, 52.5794 +40.7055, 41.8668, 55.4715 +40.7055, 42.0516, 55.4715 +40.7055, 41.8136, 55.4715 +40.7055, 42.0586, 55.4715 +40.7055, 41.7465, 51.1446 +40.7055, 41.7004, 55.4715 +40.7055, 42.1399, 55.4715 +40.7055, 41.807, 52.1481 +40.7055, 41.3854, 52.5794 +40.7055, 42.3651, 52.5313 +40.7055, 41.8922, 54.1293 +40.7055, 41.2659, 51.8515 +40.7055, 42.3622, 55.4715 +40.7055, 41.9063, 52.5794 +40.7055, 41.9301, 55.4715 +40.7055, 41.9443, 55.4715 +40.7055, 41.5227, 55.4715 +40.7055, 41.778, 55.4715 +40.7055, 42.0409, 52.5313 +40.7055, 41.5331, 51.3631 +40.7055, 41.8774, 55.4715 +40.7055, 41.9248, 54.1293 +40.7055, 41.8726, 55.4715 +40.7055, 42.662, 55.4715 +40.7055, 42.4377, 55.2381 +40.7055, 42.0995, 52.5794 +40.7055, 42, 52.2249 +40.7055, 42.3283, 55.4715 +40.7055, 41.8004, 55.2381 +40.7055, 42.2284, 52.1481 +40.7055, 42.2798, 55.4715 +40.7055, 41.8208, 55.2381 +40.7055, 41.997, 52.1481 +40.7055, 41.8609, 54.1293 +40.7055, 42.0222, 55.4715 +40.7055, 41.853, 52.1481 +40.7055, 41.6148, 55.4715 +40.7055, 42.11, 55.4715 +40.7055, 41.712, 54.1293 +40.7055, 42.1994, 55.4715 +40.7055, 42.2112, 52.5794 +40.7055, 41.9974, 55.4715 +40.7055, 42.0251, 52.1481 +40.7055, 41.5503, 52.1177 +40.7055, 41.8666, 55.2381 +40.7055, 41.7091, 52.2249 +40.7055, 42.1531, 55.4715 +40.7055, 41.7287, 55.4715 +40.7055, 41.7526, 54.1293 +40.7055, 41.8032, 55.4715 +40.7055, 41.653, 55.2381 +40.7055, 41.9801, 54.1293 +40.7055, 42.1707, 55.2381 +40.7055, 41.5366, 51.8515 +40.7055, 41.8065, 52.1481 +40.7055, 42.1649, 55.4715 +40.7055, 41.3337, 55.4715 diff --git a/tour2.pdf b/tour2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b3601c180efe9b8e39789918a0b0f2bad51685b1 GIT binary patch literal 20217 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 literal 0 HcmV?d00001 diff --git a/tsp.c b/tsp.c new file mode 100644 index 0000000..c0b2cbb --- /dev/null +++ b/tsp.c @@ -0,0 +1,135 @@ +#include +#include +#include +#include +#include "tsp.h" + +#define PRINT_GENE NO /* 遺伝子を表示(本来はオプションで指示するもの) */ +#define PRINT_PROCESS NO /* 途中経過を表示(本来はオプションで指示するもの) */ + +void print_usage(char *command) /* 使用方法を表示する関数 */ +{ + fprintf(stderr, "Usage: %s \n", command); +} + +void print_data(Gene_set gene_group[GENE_NUM]) /* データの表示 */ +{ + double best, sum, worst; + int i; + + sum = 0; + best = worst = gene_group[0].length; + for(i = 0; i < GENE_NUM; i++) { + sum += gene_group[i].length; /* 平均を出すため合計を求める */ + if (best > gene_group[i].length) { + best = gene_group[i].length; /* 最良値 */ + } + if (worst < gene_group[i].length) { + worst = gene_group[i].length; /* 最悪値 */ + } + } + //printf("best = %g, ave = %g, worst = %g\n", best, sum/GENE_NUM, worst); + printf("%g, %g, %g\n", best, sum/GENE_NUM, worst); +} + +int main(int argc, char *argv[]) +{ + int i; /* カウンタ用 */ + Position city[CITY_NUM]; /* 都市座標 */ + Gene_set gene_group[GENE_NUM]; /* 遺伝子集団 */ + FILE *fp; /* 座標用ファイル */ + char string[BUFSIZ]; /* ファイル入力用バッファ */ + + srand((unsigned int)time(NULL)); /* rand() の種 */ + + /* コマンド引数処理 */ + if (argc > 2) { /* コマンド引数が多すぎる */ + print_usage(argv[0]); /* 使用方法を表示 */ + exit(1); /* 終了 */ + } + /* コマンド引数が無い時 */ + else if (argc == 1) { + print_usage(argv[0]); /* 使用方法を表示 */ + exit(1); /* 終了 */ + } +#if 0 + else if (argc == 1) { + initial_city(city); /* ランダムに都市を生成 */ + fprintf(stderr, "RANDOM COORDINATES ARE USED!!\n"); + } +#endif + /* コマンド引数が 1つ */ + /* ファイルから都市座標を読みこみ */ + else if(argc == 2) { + if((fp = fopen(argv[1], "r")) == NULL) { + /* ファイルオープン失敗 */ + fprintf(stderr, "%s: %s can not be found\n", argv[0], argv[1]); + exit(1); + } + for(i = 0; (i < CITY_NUM) && (fgets(string, BUFSIZ, fp) != NULL);) { /* ファイルの終わりか都市数が設定に達するまで */ + if((string[0] == '#')||(string[0] == '\n')) { + /* コメント行および空行 */ + continue; /* 何も処理しない */ + } + /* データ読み込み */ + sscanf(string, "%d %d", &(city[i].x), &(city[i].y)); + i++; /* 読みこんだ都市数を増やす */ + } + fclose(fp); + } + + printf("# Trial, MutationRate, SelectNum, BestLength, GenToBest\n"); + for (int aaa = 0; aaa < 10; aaa++) + { + + + /* 各種データの初期化 */ + initial_gene(gene_group); /* 遺伝子集団の生成 */ + initial_fitness(gene_group, city); /* 初期適合度の計算 */ + + /* 初期データの表示 */ + //print_city(city); +#if PRINT_GENE /* 1/2 */ + print_gene_group(gene_group); +#endif /* PRINT_GENE 1/2 */ + + // printf("INITIAL RESULT\n"); + // print_best_data(gene_group); + + double best = gene_group[0].length; + int bg = 0; + for(i = 0; i < GENERATION; i++) { + /* 選択 */ + selection(gene_group); /* この関数を実験で作成 */ + + /* 突然変異を起こす */ + mutation(gene_group); /* この関数を実験で作成 */ + + /* 適合度計算 */ + calculate_fitness(gene_group, city); + if (gene_group[0].length < best) + { + best = gene_group[0].length; + bg = i; + } + +#if PRINT_PROCESS + /* 進化中のデータ表示 */ + //printf("GENERATION %d\n", i); + //print_data(gene_group); + /* print_best_data(gene_group); */ +#endif /* PRINT_PROCESS */ + } + + printf("%d, %.2f, %d, %.2f, %d\n", aaa, MUTATION_RATIO, SELECT_NUM, best, bg); + + /* 進化終了時のデータ表示 */ + //printf("FINAL RESULT\n"); +#if PRINT_GENE /* 2/2 */ + print_gene_group(gene_group); +#endif /* PRINT_GENE 2/2 */ + //print_best_data(gene_group); + } + + return 0; +} diff --git a/tsp.h b/tsp.h new file mode 100644 index 0000000..821aac1 --- /dev/null +++ b/tsp.h @@ -0,0 +1,88 @@ +#ifndef TSP_H_INCLUDED +#define TSP_H_INCLUDED + +#define YES 1 +#define NO 0 +#define CITY_NUM 10 /* 都市数 */ +#define POSITION_MAX 10 /* 都市座標の最大値 */ + +/* 以下のパラメータを調節する */ +#define GENE_NUM 100 /* 個体数 */ +#define ELETE 1 /* エリート戦略用 */ +#define GENERATION 100 /* 進化世代数 */ +#define MUTATION_RATIO 0.05 /* 突然変異確率 */ +#define CROSSOVER_RATIO 0.3 /* 交叉確率 */ /* 本実験では不使用 */ +#define SELECT_NUM 2 /* トーナメント方式で選ぶ遺伝子の数 */ + +/****************/ +/* 構造体の定義 */ +/****************/ +/* 都市座標 */ +typedef struct position_tag { + int x; /* x座標 */ + int y; /* y座標 */ +} Position; + +/* 個体 */ +typedef struct gene_set_tag { + int gene[CITY_NUM]; /* 遺伝子 */ + double length; /* 経路長 */ + double fitness; /* 適合度 */ +} Gene_set; + +/********************************/ +/* 実験作成関数プロトタイプ宣言 */ +/********************************/ + +/* 比較関数 */ +int compare_fitness(const void *a, const void *b); + +/* 突然変異 */ +void mutation(Gene_set gene_group[GENE_NUM]); + +/* 選択 */ +void selection(Gene_set gene_group[GENE_NUM]); + +/* トーナメント方式 */ +void tournament(Gene_set gene_group[GENE_NUM]); + +/* エリート戦略 */ +void elete(Gene_set gene_group[GENE_NUM]); + +/* 遺伝子個体を複写 */ +void copy_gene_set(Gene_set *gene_set_to, Gene_set *gene_set_from); + +/* 全遺伝子個体を複写 */ +void copy_gene_group(Gene_set gene_group_to[GENE_NUM], Gene_set gene_group_from[GENE_NUM]); + +/****************************/ +/* 各関数のプロトタイプ宣言 */ +/* 実体は tsp_public.c 内 */ +/* main 関数内で使用 */ +/****************************/ + +/* 都市をランダムに設定 */ +void initial_city(Position city[CITY_NUM]); + +/* 遺伝子をランダムに設定 */ +void initial_gene(Gene_set gene_group[GENE_NUM]); + +/* 適応度の初期設定 */ +void initial_fitness(Gene_set *gene_ptr, Position city[CITY_NUM]); + +/* 適応度の計算 */ +void calculate_fitness(Gene_set *gene_ptr, Position city[CITY_NUM]); + +/* 都市の座標を表示 */ +void print_city(Position city[CITY_NUM]); + +/* 各個体のデータを表示 */ +void print_gene_group(Gene_set gene_group[GENE_NUM]); + +/* 最良解を表示 */ +void print_best_data(Gene_set gene_group[GENE_NUM]); + +/* 最良値、平均値、最悪値を表示 */ +void print_data(Gene_set gene_group[GENE_NUM]); + +#endif /* define TSP_H_INCLUDED */ diff --git a/tsp_jikken.c b/tsp_jikken.c new file mode 100644 index 0000000..671ba10 --- /dev/null +++ b/tsp_jikken.c @@ -0,0 +1,158 @@ +#include +#include +#include "tsp.h" + +#define ELETE_SELECTION NO /* エリート戦略で選択 */ + +/* 距離(または適合度)でソートするための比較関数 */ +int compare_fitness(const void *a, const void *b) { + Gene_set *ga = (Gene_set *)a; + Gene_set *gb = (Gene_set *)b; + // 適合度が良い(小さい)順に並べる + if (ga->fitness < gb->fitness) return -1; + if (ga->fitness > gb->fitness) return 1; + return 0; +} + +/* 遺伝子集団 gene_group の中で突然変異を起こす */ +void mutation(Gene_set gene_group[GENE_NUM]) +{ + int i, target; + + /* どの遺伝子を変異させるか */ +#if ELETE_SELECTION /* 1/2 */ + for (i = ELETE; i < GENE_NUM; i++ ) +#else + for (i = 0; i < GENE_NUM; i++ ) +#endif /* ELETE_SELECTION 1/2 */ + { + /* その遺伝子が突然変異対象に選ばれたら */ + if ((rand() / (double)RAND_MAX) < MUTATION_RATIO) + { + /* どの位置を変異させるか */ + target = rand() % CITY_NUM; + /* 残っている都市の数以内でランダムに選ぶ */ + gene_group[i].gene[target] = rand() % (CITY_NUM - target); + } + } +} + +/* 遺伝子集団 gene_group の中で選択を行う */ +void selection(Gene_set gene_group[GENE_NUM]) +{ +#if ELETE_SELECTION /* 2/2 */ + elete(gene_group); +#else + tournament(gene_group); +#endif /* ELETE_SELECTION 2/2 */ +} + +void tournament(Gene_set gene_group[GENE_NUM]) +{ + int i, j, k, l; + int min_fitness_index; + int random_gene_index[SELECT_NUM]; + Gene_set next_gene_group[GENE_NUM]; + + /* すべての候補がそろうまで */ + for (i = 0; i < GENE_NUM; i++) + { + for (j = 0; j < SELECT_NUM; j++) + { + /* 全遺伝子の中からランダムに被らないよう複数選ぶ */ + while (1) + { + k = rand() % GENE_NUM; + for (l = 0; l < j; l++) + { + if (k == random_gene_index[l]) + { + break; + } + } + /* 最後まで一致しなかったら採用 */ + if (l == j) break; + + } + random_gene_index[j] = k; + } + + min_fitness_index = random_gene_index[0]; + + /* 選んだ個体の中から適合度が最も良い(小さい)ものを選び,次の世代とする */ + for (j = 1; j < SELECT_NUM; j++) + { + if (gene_group[min_fitness_index].fitness > gene_group[random_gene_index[j]].fitness) + { + min_fitness_index = random_gene_index[j]; + } + } + copy_gene_set(&next_gene_group[i], &gene_group[min_fitness_index]); + } + copy_gene_group(gene_group, next_gene_group); +} + +void elete(Gene_set gene_group[GENE_NUM]) +{ + int i, j, k, l; + int min_fitness_index; + int random_gene_index[SELECT_NUM]; + Gene_set next_gene_group[GENE_NUM]; + + /* 全個体を適合度の良い順(小さい順)に並び替える */ + qsort(gene_group, GENE_NUM, sizeof(Gene_set), compare_fitness); + + /* 上位 ELETE 個を次世代にコピーする */ + for (i = 0; i < ELETE; i++) + { + copy_gene_set(&next_gene_group[i], &gene_group[i]); + } + + /* 残りの枠(ELETE ~ GENE_NUM)をトーナメント方式で埋める */ + for (i = ELETE; i < GENE_NUM; i++) { + for (j = 0; j < SELECT_NUM; j++) { + while (1) + { + k = rand() % GENE_NUM; + for (l = 0; l < j; l++) + { + if (k == random_gene_index[l]) break; + } + if (l == j) break; + } + random_gene_index[j] = k; + } + + min_fitness_index = random_gene_index[0]; + for (j = 1; j < SELECT_NUM; j++) + { + if (gene_group[min_fitness_index].fitness > gene_group[random_gene_index[j]].fitness) + { + min_fitness_index = random_gene_index[j]; + } + } + copy_gene_set(&next_gene_group[i], &gene_group[min_fitness_index]); + } + copy_gene_group(gene_group, next_gene_group); +} + +void copy_gene_set(Gene_set *gene_set_to, Gene_set *gene_set_from) +{ + int i; + for (i = 0; i < CITY_NUM; i++) + { + gene_set_to->gene[i] = gene_set_from->gene[i]; + } + + gene_set_to->length = gene_set_from->length; + gene_set_to->fitness = gene_set_from->fitness; +} + +void copy_gene_group(Gene_set gene_group_to[GENE_NUM], Gene_set gene_group_from[GENE_NUM]) +{ + int i; + for (i = 0; i < GENE_NUM; i++) + { + copy_gene_set(&gene_group_to[i], &gene_group_from[i]); + } +} diff --git a/tsp_private.c b/tsp_private.c new file mode 100644 index 0000000..4c03bbf --- /dev/null +++ b/tsp_private.c @@ -0,0 +1,132 @@ +#include +#include +#include +#include "tsp.h" +#include "tsp_private.h" + +/* 遺伝子型 g から表現型 p への変換 */ +/* g[] で与えた巡回表現の遺伝子型を都市の番号にして表現型 p[] に入れる */ +void gtype_to_ptype(int g[CITY_NUM], int p[CITY_NUM]) { + int i, j; + int count; + int check[CITY_NUM]; /* 既に表現型に現れたかどうか */ + + /* check[] の初期化 */ + for(i = 0; i < CITY_NUM; i++) { + check[i] = NO; + } + + for(i = 0; i < CITY_NUM; i++) { + /* i 番目の遺伝子を変換 */ + j = 0; /* 全都市のうち何番目か */ + count = 0; /* 残った都市のうち何番目か */ + do { + if(check[j] == NO) { /* 表現型に現れていない都市である */ + count++; + } + if(count > g[i]) { /* 遺伝子型に適合 */ + break; + } + j++; + } while(1); + p[i] = j; /* p 番目の遺伝子の都市番号は j */ + check[j] = YES; /* 表現型に現れたことをチェック */ + } +}; + +/* 都市間の距離を計算 */ +double distance(Position city1, Position city2) +{ + return sqrt((city1.x - city2.x)*(city1.x - city2.x) + + (city1.y - city2.y)*(city1.y - city2.y)); +}; + +/* 遺伝子の表す巡回路長の計算 */ +double path_length(Position city[CITY_NUM], int gene[CITY_NUM]) +{ + int i; + double sum = 0.0; + int route[CITY_NUM]; /* 巡回路の表現型 */ + + gtype_to_ptype(gene, route); /* 遺伝子型から表現型への変換 */ + + for(i = 0; i < CITY_NUM; i++) { + sum += distance(city[route[i%CITY_NUM]], city[route[(i+1)%CITY_NUM]]); + } + + return sum; +}; + +/* 遺伝子の表示 */ +void print_gene(int gene[CITY_NUM]) +{ + int i; + + printf("gene:"); + for(i = 0; i < CITY_NUM; i++) { + printf("%d.", gene[i]); + } + printf("\n"); +} + +/* 巡回路の表示 */ +void print_route(int route[CITY_NUM]) +{ + int i; + printf("route:"); + for(i = 0; i < CITY_NUM; i++) { + printf("%d->", route[i]); + } + printf("%d\n", route[0]); + +} + +/* 遺伝子集団の巡回路長の計算 */ +void calculate_length(Gene_set *gene_ptr, Position city[CITY_NUM]) { + int i; + for(i = 0; i < GENE_NUM; i++) { + (gene_ptr + i)->length = path_length(city, (gene_ptr + i)->gene); + } +} + +/* 遺伝子の複写 */ +void copy_gene(int gene_to[CITY_NUM], int gene_from[CITY_NUM]) +{ + int k; + + for(k = 0; k < CITY_NUM; k++) { + gene_to[k] = gene_from[k]; + } +} + +/* 遺伝子の入れ換え */ +void swap_gene_set(Gene_set gene_group[GENE_NUM], int i, int j) +{ + Gene_set gene_swap; + + gene_swap.fitness = gene_group[i].fitness; + gene_swap.length = gene_group[i].length; + copy_gene(gene_swap.gene, gene_group[i].gene); + + gene_group[i].fitness = gene_group[j].fitness; + gene_group[i].length = gene_group[j].length; + copy_gene(gene_group[i].gene, gene_group[j].gene); + + gene_group[j].fitness = gene_swap.fitness; + gene_group[j].length = gene_swap.length; + copy_gene(gene_group[j].gene, gene_swap.gene); +} + +/* 現時点の最適遺伝子の番号を得る */ +int get_best_gene(Gene_set gene_group[GENE_NUM]) +{ + int i, index = 0; + + for(i = 0; i < GENE_NUM; i++) { + if(gene_group[i].length < gene_group[index].length) { + index = i; + } + } + + return index; +} diff --git a/tsp_private.h b/tsp_private.h new file mode 100644 index 0000000..8339a88 --- /dev/null +++ b/tsp_private.h @@ -0,0 +1,26 @@ +#ifndef TSP_PRIVATE_H_INCLUDED +#define TSP_PRIVATE_H_INCLUDED +#include "tsp.h" + +/******************************/ +/* 各関数のプロトタイプ宣言 */ +/* 実体は tsp_private.c 内 */ +/* tsp_private.c 内でのみ使用 */ +/******************************/ + +/* 距離を計算 */ +double distance(Position city1, Position city2); + +/* 経路長を計算 */ +double path_length(Position city[CITY_NUM], int gene[CITY_NUM]); + +/* 遺伝子を複写 */ +void copy_gene(int gene_to[CITY_NUM], int gene_from[CITY_NUM]); + +/* 個体の交換 */ +void swap_gene_set(Gene_set gene_group[GENE_NUM], int i, int j); + +/* 最適解の遺伝子番号を得る */ +int get_best_gene(Gene_set gene_group[GENE_NUM]); + +#endif /* define TSP_PRIVATE_H_INCLUDED */ diff --git a/tsp_public.c b/tsp_public.c new file mode 100644 index 0000000..343f784 --- /dev/null +++ b/tsp_public.c @@ -0,0 +1,159 @@ +#include +#include +#include "tsp_public.h" + +/* 都市座標の初期化 */ +/* 配列 city[] にランダムに都市座標を設定 */ +void initial_city(Position city[CITY_NUM]) { + int i; + for(i = 0; i < CITY_NUM; i++) { + city[i].x = rand()%POSITION_MAX; + city[i].y = rand()%POSITION_MAX; + } +}; + +/* 遺伝子の初期化(ランダム) */ +/* 構造体 Gene_set 中の gene[] に遺伝子をランダムに設定 */ +void initial_gene(Gene_set gene_group[GENE_NUM]) { + int i, j; + for(i = 0; i < GENE_NUM; i++) { + for(j = 0; j < CITY_NUM; j++) { + /* 巡回表現を用いる */ + gene_group[i].gene[j] = rand()%(CITY_NUM - j); + } + } +} + +/* 適合度の初期化 */ +void initial_fitness(Gene_set *gene_ptr, Position city[CITY_NUM]) +{ + int i; /* カウンタ */ + /* スケーリングウィンドウ関連 */ + /* (スケーリングウィンドウ自体はstatic変数)*/ + double length_max; /* 経路長の最大値(スケーリングウィンドウ用)*/ + + /* 全遺伝子の経路長計算 */ + calculate_length(gene_ptr, city); + + for(i = 0; i < GENE_NUM; i++) { /* 経路長の最大値の計算 */ + if(i == 0) { + length_max = gene_ptr->length; + } + else if((gene_ptr + i)->length > length_max) { + length_max = (gene_ptr + i)->length; + } + } + + for(i = 0; i < WINDOW_SIZE; i++) { /* スケーリングウィンドウの設定 */ + /* 最初は全部同じ値にする */ + scaling_window[i] = length_max; + } + + for(i = 0; i < GENE_NUM; i++) { + /* 適合度は 経路長/スケーリングウィンドウ内の最大値 */ + (gene_ptr + i)->fitness = (gene_ptr + i)->length / length_max; + } + +} + +/* 適合度の計算 */ +void calculate_fitness(Gene_set *gene_ptr, Position city[CITY_NUM]) +{ + int i; + double length_max; + + /* 遺伝子集団の経路長を求める */ + calculate_length(gene_ptr, city); + + /* 現在の遺伝子集団の最大経路長を求める */ + for(i = 0; i < GENE_NUM; i++) { + if(i == 0) { + length_max = gene_ptr->length; + } + else if((gene_ptr + i)->length > length_max) { + length_max = (gene_ptr + i)->length; + } + } + + /* スケーリングウィンドウの更新 */ + for(i = 0; i < WINDOW_SIZE; i++) { + if (i < WINDOW_SIZE-1) { + scaling_window[i] = scaling_window[i+1]; + } + else { + scaling_window[i] = length_max; + } + } + + /* スケーリングウィンドウ中の最大経路長を求める */ + for(i = 0; i < WINDOW_SIZE; i++) { + if (scaling_window[i] > length_max) { + length_max = scaling_window[i]; + } + } + + /* 遺伝子集団の適合度を求める */ + for(i = 0; i < GENE_NUM; i++) { + (gene_ptr + i)->fitness = (gene_ptr + i)->length / length_max; + } + +} + +/* 都市座標の表示 */ +void print_city(Position city[CITY_NUM]) { + int i; + //printf("%d\n", CITY_NUM); + for(i = 0; i < CITY_NUM; i++) { + printf("city%03d %d %d\n", i, city[i].x, city[i].y); + } +} + + +/* 遺伝子のデータ表示 */ +void print_gene_group(Gene_set gene_group[GENE_NUM]) { + int i; + int route[CITY_NUM]; + + for(i = 0; i < GENE_NUM; i++) { + gtype_to_ptype(gene_group[i].gene, route); +// print_gene(gene_group[i].gene); /* 遺伝子型 */ + print_route(route); /* 表現型 */ + printf("length = %f (fitness = %f)\n", gene_group[i].length, gene_group[i].fitness); /* 経路長と適合度 */ + } +} + +/* 現時点の最良解の表示 */ +void print_best_data(Gene_set gene_group[GENE_NUM]) +{ + int route[CITY_NUM]; + int best_index; /* 最良解の遺伝子番号 */ + + best_index = get_best_gene(gene_group); + + //print_gene(gene_group[best_index].gene); /* 遺伝子表示 */ + gtype_to_ptype(gene_group[best_index].gene, route); + print_route(route); /* 巡回路表示 */ + printf("length = %f (fitness = %f)\n", gene_group[best_index].length, gene_group[best_index].fitness); /* 経路長・適合度表示 */ +} + +/* データの表示 */ +#if 0 +void print_data(Gene_set gene_group[GENE_NUM]) +{ + double best, sum, worst; + int i; + + sum = 0; + best = worst = gene_group[0].length; + for(i = 0; i < GENE_NUM; i++) { + sum += gene_group[i].length; /* 平均を出すため合計を求める */ + if (best > gene_group[i].length) { + best = gene_group[i].length; /* 最良値 */ + } + if (worst < gene_group[i].length) { + worst = gene_group[i].length; /* 最悪値 */ + } + } + printf("best = %g, ave = %g, worst = %g\n", best, sum/GENE_NUM, worst); +} +#endif diff --git a/tsp_public.h b/tsp_public.h new file mode 100644 index 0000000..dcbb9d9 --- /dev/null +++ b/tsp_public.h @@ -0,0 +1,33 @@ +#ifndef TSP_PUBLIC_H_INCLUDED +#define TSP_PUBLIC_H_INCLUDED + +#include "tsp.h" + +/***************/ +/* static 変数 */ +/***************/ +/* スケーリングウィンドウ */ +#define WINDOW_SIZE 5 /* スケーリングウィンドウサイズ */ +static double scaling_window[WINDOW_SIZE]; + +/****************************/ +/* 各関数のプロトタイプ宣言 */ +/* 実体は tsp_private.c 内 */ +/* tsp_public.c 内で使用 */ +/****************************/ + +/* 遺伝子型を表現型に変換 */ +void gtype_to_ptype(int g[CITY_NUM], int p[CITY_NUM]); + +/* 遺伝子を表示 */ +void print_gene(int gene[GENE_NUM]); + +/* 経路を表示 */ +void print_route(int route[CITY_NUM]); + +/* 各個体の経路長を計算 */ +void calculate_length(Gene_set *gene_ptr, Position city[CITY_NUM]); + +/* 最良の遺伝子番号を得る */ +int get_best_gene(Gene_set gene_group[GENE_NUM]); +#endif /* TSP_PUBLIC_H_INCLUDED */ diff --git a/出力ファイル一覧.md b/出力ファイル一覧.md new file mode 100644 index 0000000..dd829c7 --- /dev/null +++ b/出力ファイル一覧.md @@ -0,0 +1,60 @@ +# 出力一覧 + +## 収束曲線 + +### only_mutation1 + +- selection()をコメントアウト +- ELETE_SELECTION NO +- GENE_NUM 100 +- ELETE 1 +- GENERATION 100 +- MUTATION_RATIO 0.2 +- SELECT_NUM 2 + +### elete1 + +- ELETE_SELECTION YES +- GENE_NUM 100 +- ELETE 1 +- GENERATION 100 +- MUTATION_RATIO 0.2 +- SELECT_NUM 2 + +### elete1s + +elete1をtour1と同じような開始にしたバージョン + +- ELETE_SELECTION YES +- GENE_NUM 100 +- ELETE 1 +- GENERATION 100 +- MUTATION_RATIO 0.2 +- SELECT_NUM 2 + +### elete2 + +- ELETE_SELECTION YES +- GENE_NUM 100 +- ELETE 1 +- GENERATION 100 +- MUTATION_RATIO 0.2 +- SELECT_NUM 10 + +### tour1 + +- ELETE_SELECTION NO +- GENE_NUM 100 +- ELETE 1 +- GENERATION 100 +- MUTATION_RATIO 0.2 +- SELECT_NUM 2 + +### tour2 + +- ELETE_SELECTION NO +- GENE_NUM 100 +- ELETE 1 +- GENERATION 100 +- MUTATION_RATIO 0.2 +- SELECT_NUM 10