1
-
2
1
#!/usr/bin/awk -f
3
2
#* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
4
3
#* *
@@ -464,6 +463,7 @@ BEGIN {
464
463
printconfs = 0 ;
465
464
printgap = 0 ; # if timeout, then print absolute gap at termination in time column, if gap is finite
466
465
printsoltimes = ! short && printsoltimes; # short deactivates the detailed solution times output
466
+ setnamelen = 50 ; # display length of test sets
467
467
infinity = 1e+20 ;
468
468
timegeomshift = 1.0 ;
469
469
nodegeomshift = 100.0 ;
@@ -793,24 +793,24 @@ END {
793
793
{
794
794
if ( printsoltimes && printconfs == 0 )
795
795
{
796
- if ( length (sname) <= 58 )
797
- printf (" %58s |" , sname);
796
+ if ( length (sname) <= 59 )
797
+ printf (" %59s |" , sname);
798
798
else
799
- printf (" *%57s |" , substr (sname, length (sname)- 58 ));
799
+ printf (" *%58s |" , substr (sname, length (sname) - 57 ));
800
800
}
801
801
else if ( printsoltimes == 0 && printconfs )
802
802
{
803
- if ( length (sname) <= 55 )
804
- printf (" %55s |" , sname);
803
+ if ( length (sname) <= 56 )
804
+ printf (" %56s |" , sname);
805
805
else
806
- printf (" *%54s |" , substr (sname, length (sname)- 54 ));
806
+ printf (" *%55s |" , substr (sname, length (sname) - 54 ));
807
807
}
808
808
else
809
809
{
810
- if ( length (sname) <= 39 )
811
- printf (" %39s |" , sname)
810
+ if ( length (sname) <= 40 )
811
+ printf (" %40s |" , sname)
812
812
else
813
- printf (" *%38s |" , substr (sname, length (sname)- 39 ));
813
+ printf (" *%39s |" , substr (sname, length (sname) - 38 ));
814
814
}
815
815
}
816
816
else
@@ -820,28 +820,28 @@ END {
820
820
if ( length (sname) <= 19 )
821
821
printf (" %19s |" , sname);
822
822
else
823
- printf (" *%16s |" , substr (sname, length (sname)- 17 ));
823
+ printf (" *%18s |" , substr (sname, length (sname) - 17 ));
824
824
}
825
825
else if ( printsoltimes && printconfs == 0 )
826
826
{
827
827
if ( length (sname) <= 47 )
828
828
printf (" %47s |" , sname);
829
829
else
830
- printf (" *%46s |" , substr (sname, length (sname)- 47 ));
830
+ printf (" *%46s |" , substr (sname, length (sname) - 45 ));
831
831
}
832
832
else if ( printsoltimes == 0 && printconfs )
833
833
{
834
834
if ( length (sname) <= 48 )
835
835
printf (" %48s |" , sname);
836
836
else
837
- printf (" *%47s |" , substr (sname, length (sname)- 48 ));
837
+ printf (" *%47s |" , substr (sname, length (sname) - 46 ));
838
838
}
839
839
else
840
840
{
841
841
if ( length (sname) <= 33 )
842
- printf (" %31s |" , sname);
842
+ printf (" %33s |" , sname);
843
843
else
844
- printf (" *%30s |" , substr (sname, length (sname)- 31 ));
844
+ printf (" *%32s |" , substr (sname, length (sname) - 31 ));
845
845
}
846
846
}
847
847
}
@@ -1697,20 +1697,28 @@ END {
1697
1697
{
1698
1698
s = printorder[ o] ;
1699
1699
1700
- parse_time(ref_array,solver_array,time,o, printorder,probidx,problistlen);
1700
+ parse_time(ref_array, solver_array, time, o, printorder, probidx, problistlen);
1701
1701
n = filter(ref_array, solver_array, problistlen, 0.01 , 0.01 );
1702
1702
factorize(ref_array, solver_array, n, timelimit[ s] )
1703
1703
1704
- z = wilcoxon(ref_array, solver_array, n, timelimit[ s] );
1705
- printf (" z %8.4f" ,z);
1706
- z_to_p(z);
1704
+ # do not print test if number of items is less than 20, because the test is not reliable there
1705
+ if ( n > 20 )
1706
+ {
1707
+ z = wilcoxon(ref_array, solver_array, n, timelimit[ s] );
1708
+ printf (" z %8.4f" , z);
1709
+ z_to_p(z);
1710
+ }
1711
+ else
1712
+ {
1713
+ printf (" %8s" , " " );
1714
+ printf (" -- (N = %2d <= 20)" , n);
1715
+ }
1707
1716
1708
1717
if ( printconfs )
1709
1718
printf (" %18s" , " " );
1710
1719
}
1711
1720
printf (" \n " );
1712
1721
1713
-
1714
1722
# compute and print result for Wilcoxon signed rank test for time to first solution w.r.t. reference setting
1715
1723
if ( printsoltimes )
1716
1724
{
@@ -1724,13 +1732,22 @@ END {
1724
1732
{
1725
1733
s = printorder[ o] ;
1726
1734
1727
- parse_time(ref_array,solver_array,timetofirst,o, printorder,probidx,problistlen);
1735
+ parse_time(ref_array, solver_array, timetofirst, o, printorder, probidx, problistlen);
1728
1736
n = filter(ref_array, solver_array, problistlen, 0.01 , 0.01 );
1729
1737
factorize(ref_array, solver_array, n, timelimit[ s] )
1730
1738
1731
- z = wilcoxon(ref_array, solver_array, n, timelimit[ s] );
1732
- printf (" z %8.4f" ,z);
1733
- z_to_p(z);
1739
+ # do not print test if number of items is less than 20, because the test is not reliable there
1740
+ if ( n > 20 )
1741
+ {
1742
+ z = wilcoxon(ref_array, solver_array, n, timelimit[ s] );
1743
+ printf (" z %8.4f" , z);
1744
+ z_to_p(z);
1745
+ }
1746
+ else
1747
+ {
1748
+ printf (" %8s" , " " );
1749
+ printf (" -- (N = %2d <= 20)" , n);
1750
+ }
1734
1751
1735
1752
if ( printconfs )
1736
1753
printf (" %18s" , " " );
@@ -1751,9 +1768,18 @@ END {
1751
1768
n = filter(ref_array, solver_array, problistlen, 0.01 , 0.01 );
1752
1769
factorize(ref_array, solver_array, n, infinity)
1753
1770
1754
- z = wilcoxon(ref_array, solver_array, n, infinity);
1755
- printf (" z %8.4f" ,z);
1756
- z_to_p(z);
1771
+ # do not print test if number of items is less than 20, because the test is not reliable there
1772
+ if ( n > 20 )
1773
+ {
1774
+ z = wilcoxon(ref_array, solver_array, n, infinity);
1775
+ printf (" z %8.4f" , z);
1776
+ z_to_p(z);
1777
+ }
1778
+ else
1779
+ {
1780
+ printf (" %8s" , " " );
1781
+ printf (" -- (N = %2d <= 20)" , n);
1782
+ }
1757
1783
1758
1784
if ( printconfs )
1759
1785
printf (" %18s" , " " );
@@ -1768,13 +1794,22 @@ END {
1768
1794
{
1769
1795
s = printorder[ o] ;
1770
1796
1771
- parse_time(ref_array,solver_array,confs,o, printorder,probidx,problistlen);
1797
+ parse_time(ref_array, solver_array, confs, o, printorder, probidx, problistlen);
1772
1798
n = filter(ref_array, solver_array, problistlen, 0.01 , 0.01 );
1773
1799
factorize(ref_array, solver_array, n, timelimit[ s] )
1774
1800
1775
- z = wilcoxon(ref_array, solver_array, n, timelimit[ s] );
1776
- printf (" z %8.4f" , z );
1777
- z_to_p(z);
1801
+ # do not print test if number of items is less than 20, because the test is not reliable there
1802
+ if ( n > 20 )
1803
+ {
1804
+ z = wilcoxon(ref_array, solver_array, n, timelimit[ s] );
1805
+ printf (" z %8.4f" , z);
1806
+ z_to_p(z);
1807
+ }
1808
+ else
1809
+ {
1810
+ printf (" %8s" , " " );
1811
+ printf (" -- (N = %2d <= 20)" , n);
1812
+ }
1778
1813
1779
1814
if ( printconfs )
1780
1815
printf (" %18s" , " " );
@@ -1881,8 +1916,8 @@ END {
1881
1916
1882
1917
header = (cat == - 1 ? " optimal" : (cat == 0 ? " all" : (cat == 1 ? " diff" : (cat == 2 ? " equal" : " timeout" ))));
1883
1918
printf (" \n " );
1884
- printf (" %-7s proc eval fail time solv wins bett wors bobj wobj feas gnodes shnodes gnodesQ shnodesQ gtime shtime gtimeQ shtimeQ score\n " ,
1885
- header);
1919
+ printf (" %-*s proc eval fail time solv wins bett wors bobj wobj feas gnodes shnodes gnodesQ shnodesQ gtime shtime gtimeQ shtimeQ score\n " ,
1920
+ setnamelen, header);
1886
1921
1887
1922
for ( o = 0 ; o < nsolver; ++ o )
1888
1923
{
@@ -1897,11 +1932,13 @@ END {
1897
1932
}
1898
1933
if ( (o > 0 || cat == 0 || cat == - 1 ) && nevalprobs[ s,cat] > 0 )
1899
1934
{
1900
- if ( length (sname) <= 50 )
1901
- printf (" %-50s %4d %4d %4d %4d %4d %4d" , sname, nprocessedprobs[ s,cat] , nevalprobs[ s,cat] , nfails[ s,cat] ,
1935
+ if ( length (sname) <= setnamelen )
1936
+ printf (" %-*s %4d %4d %4d %4d %4d %4d" , setnamelen, sname,
1937
+ nprocessedprobs[ s,cat] , nevalprobs[ s,cat] , nfails[ s,cat] ,
1902
1938
ntimeouts[ s,cat] , nsolved[ s,cat] , wins[ s,cat] );
1903
1939
else
1904
- printf (" *%-49s %4d %4d %4d %4d %4d %4d" , substr (sname, length (sname)- 48 ), nprocessedprobs[ s,cat] , nevalprobs[ s,cat] , nfails[ s,cat] ,
1940
+ printf (" *%-*s %4d %4d %4d %4d %4d %4d" , setnamelen - 1 , substr (sname, length (sname) - setnamelen + 2 ),
1941
+ nprocessedprobs[ s,cat] , nevalprobs[ s,cat] , nfails[ s,cat] ,
1905
1942
ntimeouts[ s,cat] , nsolved[ s,cat] , wins[ s,cat] );
1906
1943
1907
1944
printf (" %4d %4d" , better[ s,cat] , worse[ s,cat] );
@@ -1915,7 +1952,7 @@ END {
1915
1952
}
1916
1953
if ( cat == 0 )
1917
1954
{
1918
- printf (" %-50s %4d %4d %4d %4s" , " optimal auto settings" , bestnfails, bestntimeouts, bestnsolved, " " );
1955
+ printf (" %-*s %4d %4d %4d %4s" , setnamelen , " optimal auto settings" , bestnfails, bestntimeouts, bestnsolved, " " );
1919
1956
printf (" %4d %4s" , bestbetter, " " );
1920
1957
printf (" %4d %4s %4d %9d %9d %9.2f %9.2f %7.1f %7.1f %7.2f %7.2f %7s\n " ,
1921
1958
bestbetterobj, " " , bestfeasibles,
@@ -1928,7 +1965,8 @@ END {
1928
1965
# output the all optimal case
1929
1966
header = " all optimal" ;
1930
1967
printf (" \n " );
1931
- printf (" %-11s proc eval fail time solv wins bett wors bobj wobj feas gnodes shnodes gnodesQ shnodesQ gtime shtime gtimeQ shtimeQ score\n " , header);
1968
+ printf (" %-*s proc eval fail time solv wins bett wors bobj wobj feas gnodes shnodes gnodesQ shnodesQ gtime shtime gtimeQ shtimeQ score\n " ,
1969
+ setnamelen, header);
1932
1970
cat = - 1 ;
1933
1971
for ( o = 0 ; o < nsolver; ++ o )
1934
1972
{
@@ -1943,11 +1981,12 @@ END {
1943
1981
}
1944
1982
if ( (o > 0 || cat == 0 || cat == - 1 ) && nevalprobs[ s,cat] > 0 )
1945
1983
{
1946
- if ( length (sname) <= 50 )
1947
- printf (" %-50s %4d %4d %4d %4d %4d %4d" , sname, nprocessedprobs[ s,cat] , nevalprobs[ s,cat] , nfails[ s,cat] ,
1984
+ if ( length (sname) <= setnamelen )
1985
+ printf (" %-*s %4d %4d %4d %4d %4d %4d" , setnamelen , sname, nprocessedprobs[ s,cat] , nevalprobs[ s,cat] , nfails[ s,cat] ,
1948
1986
ntimeouts[ s,cat] , nsolved[ s,cat] , wins[ s,cat] );
1949
1987
else
1950
- printf (" *%-49s %4d %4d %4d %4d %4d %4d" , substr (sname, length (sname)- 48 ), nprocessedprobs[ s,cat] , nevalprobs[ s,cat] , nfails[ s,cat] ,
1988
+ printf (" *%-*s %4d %4d %4d %4d %4d %4d" , setnamelen - 1 , substr (sname, length (sname) - setnamelen + 2 ),
1989
+ nprocessedprobs[ s,cat] , nevalprobs[ s,cat] , nfails[ s,cat] ,
1951
1990
ntimeouts[ s,cat] , nsolved[ s,cat] , wins[ s,cat] );
1952
1991
printf (" %4d %4d" , better[ s,cat] , worse[ s,cat] );
1953
1992
printf (" %4d %4d %4d %9d %9d %9.2f %9.2f %7.1f %7.1f %7.2f %7.2f %7.2f\n " ,
@@ -1960,7 +1999,7 @@ END {
1960
1999
}
1961
2000
if ( cat == 0 )
1962
2001
{
1963
- printf (" %-50s %4d %4d %4d %4s" , " optimal auto settings" , bestnfails, bestntimeouts, bestnsolved, " " );
2002
+ printf (" %-*s %4d %4d %4d %4s" , setnamelen , " optimal auto settings" , bestnfails, bestntimeouts, bestnsolved, " " );
1964
2003
printf (" %4d %4s" , bestbetter, " " );
1965
2004
printf (" %4d %4s %4d %9d %9d %9.2f %9.2f %7.1f %7.1f %7.2f %7.2f %7s\n " ,
1966
2005
bestbetterobj, " " , bestfeasibles,
0 commit comments