26.3.2006

Trochu cvičen? v bashi

Filed under: Unix — nax @ 17:04

Dnes mak??m na druh?m ??kolu na p??edm?t PAA. V podstat? se jedn?? o to vymyslet n?jakou heuristiku na ??e??en? NP ??pln?ho probl?mu. A pak to zm???it a napsat o tom zpr??vu. Tu heuristiku moc rozeb?rat nebudu, ale chci si sem poznamenat jak jsem si zautomatizoval zb?r v??sled??. Jist?, mohl bych to vyzob??vat p??es schr??nku a d??vat do excelu, ale hold jsem unix???? a tak na to jdu p??es roury a r??zn? Text Processing Commands.

Konkr?tn? jsem m?l bin??rku kter?? vrac? n?co takov?ho:

14-4-5-0-4  8 8936

Pot??eboval jsem nam???it 3 probl?my a pro ka?d?? v pr??m?ru 5 podprobl?m?? a u ka?d?ho jsem dostal 2 r??zn? v??sledky (s heuristikou a bez n?). Bohu?el ten p??edp??ipraven?? template co je na str??nk??ch p??edm?tu nem?l ud?lan? nač?t??n? hodnot ze vstupu (jinak by se to dalo je??t? v?ce zautomatizovat), ale hodnoty, kter? se poč?taly byly zadr??tovan? p???mo uvnit??. No nic, začal jsem t?m, ?e jsem si ud?lal copy&paste v??ech zad??n? a pomoc? jednoduch?ho regul??rn?ho v??razu jsem z toho ud?lal tohle:

unsigned full_buckets[MAXBCKTS]  = {14,4,5,0,4};

Pak jsem postupn? odkomentov??val jednotliv? ????dky a ud?lal si tak bin??rky pro jednotliv? zad??n?. Ty jsem pak pustil v jedn? d??vce v??echny:

for binarka in bin/*1.*
    do $binarka >> vysledky/BFS_2.txt
done
for binarka in bin/*2.*
    do $binarka >> vysledky/BFS_2.txt
done
for binarka in bin/*3.*
    do $binarka >> vysledky/BFS_3.txt
done

Jen dod??m ?e jednotliv? bin??rky se menovali kyble1.1, kyble1.2 atd. Zat?mco tohle p???u tak to prohled??v??n? do ?????ky b???. Obdobn? sem to ud?lal pro heuristiku, ale ta b??? v?dy jen asi sekundu, tak?e tam to nen? takov?? probl?m ud?lat p???mo ručn?. Jen?e teď je??t? jak to dostat do jedn? tabulky, kde na jednom ????dku budou v??sledky jak z heuristiky tak z BFS? Jednodu??e – pr??v? pomoc? t?ch shellov??ch utilit:

paste BFS_1.txt heur_1.txt | \
expand | \
tr --squeeze-repeats ' ' | \
cut -f 1,2,3,5,6 -d ' '

Utilita na prvn?m ????dku prost? vyp???e v?dy ????dek prvn?ho a vedle n?j (tedy ne pod n?j) vyp???e ????dek druh?ho souboru. Expand na druh?m ????dku jen z tabul??tor?? ud?l?? mezery a v?ce mezer za sebou jsou pomoc? tr na t??et?m ????dku p??elo?eny na jednu jedinou. To je pot??eba pro cut, kter?? u? prost? jen vyp???e určit? sloupce, p??ičem? delimiter je mezera.

Comments are closed.

Powered by WordPress