{"id":139,"date":"2006-03-26T17:04:01","date_gmt":"2006-03-26T16:04:01","guid":{"rendered":"http:\/\/www.nax.cz\/2006\/03\/26\/trochu-cviceni-v-bashi\/"},"modified":"2006-03-26T17:04:01","modified_gmt":"2006-03-26T16:04:01","slug":"trochu-cviceni-v-bashi","status":"publish","type":"post","link":"https:\/\/nax.cz\/?p=139","title":{"rendered":"Trochu cvi\u00c4\u008den\u0102\u00ad v bashi"},"content":{"rendered":"<p>Dnes mak\u0102\u0104m na druh\u0102\u0160m \u0102\u015fkolu na p\u0139\u0099edm\u00c4\u009bt PAA. V podstat\u00c4\u009b se jedn\u0102\u0104 o to vymyslet n\u00c4\u009bjakou heuristiku na \u0139\u0099e\u0139\u0104en\u0102\u00ad NP \u0102\u015fpln\u0102\u0160ho probl\u0102\u0160mu. A pak to zm\u00c4\u009b\u0139\u0099it a napsat o tom zpr\u0102\u0104vu. Tu heuristiku moc rozeb\u0102\u00adrat nebudu, ale chci si sem poznamenat jak jsem si zautomatizoval zb\u00c4\u009br v\u0102\u02ddsled\u0139\u017b. Jist\u00c4\u009b, mohl bych to vyzob\u0102\u0104vat p\u0139\u0099es schr\u0102\u0104nku a d\u0102\u0104vat do excelu, ale hold jsem unix\u0102\u0104\u0139\u0099 a tak na to jdu p\u0139\u0099es roury a r\u0139\u017bzn\u0102\u0160 <a href=\"http:\/\/db.ilug-bom.org.in\/Documentation\/abs-guide\/textproc.html\">Text Processing Commands<\/a>.<\/p>\n<p>Konkr\u0102\u0160tn\u00c4\u009b jsem m\u00c4\u009bl bin\u0102\u0104rku kter\u0102\u0104 vrac\u0102\u00ad n\u00c4\u009bco takov\u0102\u0160ho:<\/p>\n<pre>14-4-5-0-4  8 8936<\/pre>\n<p>Pot\u0139\u0099eboval jsem nam\u00c4\u009b\u0139\u0099it 3 probl\u0102\u0160my a pro ka\u0139\u017ed\u0102\u02dd v pr\u0139\u017bm\u00c4\u009bru 5 podprobl\u0102\u0160m\u0139\u017b a u ka\u0139\u017ed\u0102\u0160ho jsem dostal 2 r\u0139\u017bzn\u0102\u0160 v\u0102\u02ddsledky (s heuristikou a bez n\u0102\u00ad). Bohu\u0139\u017eel ten p\u0139\u0099edp\u0139\u0099ipraven\u0102\u02dd template co je na str\u0102\u0104nk\u0102\u0104ch p\u0139\u0099edm\u00c4\u009btu nem\u00c4\u009bl ud\u00c4\u009blan\u0102\u0160 na\u00c4\u008d\u0102\u00adt\u0102\u0104n\u0102\u00ad hodnot ze vstupu (jinak by se to dalo je\u0139\u0104t\u00c4\u009b v\u0102\u00adce zautomatizovat), ale hodnoty, kter\u0102\u0160 se po\u00c4\u008d\u0102\u00adtaly byly zadr\u0102\u0104tovan\u0102\u0160 p\u0139\u0099\u0102\u00admo uvnit\u0139\u0099. No nic, za\u00c4\u008dal jsem t\u0102\u00adm, \u0139\u017ee jsem si ud\u00c4\u009blal copy&#038;paste v\u0139\u0104ech zad\u0102\u0104n\u0102\u00ad a pomoc\u0102\u00ad jednoduch\u0102\u0160ho regul\u0102\u0104rn\u0102\u00adho v\u0102\u02ddrazu jsem z toho ud\u00c4\u009blal tohle:<\/p>\n<pre lang=\"c\">\nunsigned full_buckets[MAXBCKTS]  = {14,4,5,0,4};\n<\/pre>\n<p>Pak jsem postupn\u00c4\u009b odkomentov\u0102\u0104val jednotliv\u0102\u0160 \u0139\u0099\u0102\u0104dky a ud\u00c4\u009blal si tak bin\u0102\u0104rky pro jednotliv\u0102\u0160 zad\u0102\u0104n\u0102\u00ad. Ty jsem pak pustil v jedn\u0102\u0160 d\u0102\u0104vce v\u0139\u0104echny:<\/p>\n<pre lang=\"bash\">\nfor binarka in bin\/*1.*\n    do $binarka >> vysledky\/BFS_2.txt\ndone\nfor binarka in bin\/*2.*\n    do $binarka >> vysledky\/BFS_2.txt\ndone\nfor binarka in bin\/*3.*\n    do $binarka >> vysledky\/BFS_3.txt\ndone\n<\/pre>\n<p>Jen dod\u0102\u0104m \u0139\u017ee jednotliv\u0102\u0160 bin\u0102\u0104rky se menovali kyble1.1, kyble1.2 atd. Zat\u0102\u00admco tohle p\u0102\u00ad\u0139\u0104u tak to prohled\u0102\u0104v\u0102\u0104n\u0102\u00ad do \u0139\u0104\u0102\u00ad\u0139\u0099ky b\u00c4\u009b\u0139\u017e\u0102\u00ad. Obdobn\u00c4\u009b sem to ud\u00c4\u009blal pro heuristiku, ale ta b\u00c4\u009b\u0139\u017e\u0102\u00ad v\u0139\u017edy jen asi sekundu, tak\u0139\u017ee tam to nen\u0102\u00ad takov\u0102\u02dd probl\u0102\u0160m ud\u00c4\u009blat p\u0139\u0099\u0102\u00admo ru\u00c4\u008dn\u00c4\u009b. Jen\u0139\u017ee te\u00c4\u008f je\u0139\u0104t\u00c4\u009b jak to dostat do jedn\u0102\u0160 tabulky, kde na jednom \u0139\u0099\u0102\u0104dku budou v\u0102\u02ddsledky jak z heuristiky tak z BFS? Jednodu\u0139\u0104e &#8211; pr\u0102\u0104v\u00c4\u009b pomoc\u0102\u00ad t\u00c4\u009bch shellov\u0102\u02ddch utilit:<\/p>\n<pre lang=\"bash\">\npaste BFS_1.txt heur_1.txt | \\\nexpand | \\\ntr --squeeze-repeats ' ' | \\\ncut -f 1,2,3,5,6 -d ' '\n<\/pre>\n<p>Utilita na prvn\u0102\u00adm \u0139\u0099\u0102\u0104dku prost\u00c4\u009b vyp\u0102\u00ad\u0139\u0104e v\u0139\u017edy \u0139\u0099\u0102\u0104dek prvn\u0102\u00adho a vedle n\u00c4\u009bj (tedy ne pod n\u00c4\u009bj) vyp\u0102\u00ad\u0139\u0104e \u0139\u0099\u0102\u0104dek druh\u0102\u0160ho souboru. Expand na druh\u0102\u0160m \u0139\u0099\u0102\u0104dku jen z tabul\u0102\u0104tor\u0139\u017b ud\u00c4\u009bl\u0102\u0104 mezery a v\u0102\u00adce mezer za sebou jsou pomoc\u0102\u00ad tr na t\u0139\u0099et\u0102\u00adm \u0139\u0099\u0102\u0104dku p\u0139\u0099elo\u0139\u017eeny na jednu jedinou. To je pot\u0139\u0099eba pro cut, kter\u0102\u02dd u\u0139\u017e prost\u00c4\u009b jen vyp\u0102\u00ad\u0139\u0104e ur\u00c4\u008dit\u0102\u0160 sloupce, p\u0139\u0099i\u00c4\u008dem\u0139\u017e delimiter je mezera.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dnes mak\u0102\u0104m na druh\u0102\u0160m \u0102\u015fkolu na p\u0139\u0099edm\u00c4\u009bt PAA. V podstat\u00c4\u009b se jedn\u0102\u0104 o to vymyslet n\u00c4\u009bjakou heuristiku na \u0139\u0099e\u0139\u0104en\u0102\u00ad NP \u0102\u015fpln\u0102\u0160ho probl\u0102\u0160mu. A pak to zm\u00c4\u009b\u0139\u0099it a napsat o tom zpr\u0102\u0104vu. Tu heuristiku moc rozeb\u0102\u00adrat nebudu, ale chci si sem poznamenat jak jsem si zautomatizoval zb\u00c4\u009br v\u0102\u02ddsled\u0139\u017b. Jist\u00c4\u009b, mohl bych to vyzob\u0102\u0104vat p\u0139\u0099es schr\u0102\u0104nku a d\u0102\u0104vat do excelu, ale hold jsem unix\u0102\u0104\u0139\u0099 a tak na to jdu p\u0139\u0099es roury a r\u0139\u017bzn\u0102\u0160 Text Processing Commands.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19],"tags":[],"class_list":["post-139","post","type-post","status-publish","format-standard","hentry","category-unix"],"_links":{"self":[{"href":"https:\/\/nax.cz\/index.php?rest_route=\/wp\/v2\/posts\/139","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nax.cz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nax.cz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nax.cz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nax.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=139"}],"version-history":[{"count":0,"href":"https:\/\/nax.cz\/index.php?rest_route=\/wp\/v2\/posts\/139\/revisions"}],"wp:attachment":[{"href":"https:\/\/nax.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=139"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nax.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=139"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nax.cz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}