36PAA - Batoh 1

Zad�n�

Definice probl�mu

Implementace

�lohu jsem implementoval v Jazyce C# jako konzolovou aplikaci. Data na��t� ze standardn�ho vstup a v�sledky vypisuje na stdandardn� v�stup. �e�en� jsem rozd�lil do 4 t��d.

Parametry programu

Nam��en� hodnoty a v�sledky

M��il jsem na NTB s procesorem Centino 1.4GHz, nastaven� max Performance p�i nap�jen� z adapt�ru. Pou�it� OS: Windows XP SP2 s .net Framework 2.

Tabulka v�sledk� m��en�

Proto�e rozli�en� ��ta�e (Environment.TickCount) je 16 ms, je nutn� instance spo��tat v�cekr�t a v�sledn� �as z�skat vyd�len�m po�tem opakov�n�. Pro m��en� �asov� slo�itosti hrub� s�ly jsem experiment�ln� nastavoval po�et opakovan� od 100 000 (pro n = 4) do 1 (pro n = 30). Pro m��en� heuristiky jsem nastavil 100 000 opakov�n� pro ka�dou instanci probl�mu.

nhrub� s�la [ms]heuristika [ms]IDmax. chybyprum. zhor�en�max. chyba
40,00750,007190372,17%36,36%
100,0440,01590801,73%11,48%
151,2290,02191261,32%8,54%
2036,8650,02791651,14%8,43%
22136,7360,03092371,05%7,23%
251140,040,03492830,96%3,68%
274803,90,03693380,90%10,60%
3038723,10,04193800,85%5,51%

Graf: �asov� z�vislost

�asov� slo�itost

Graf: Z�vislost pr�m�rn� chyby na velikosti instance

Z�vislost pr�m�rn� chyby na velikosti instance

Graf: Z�vislost maxim�ln� chyby na velikosti instance

Z�vislost maxim�ln� chyby na velikosti instance

Z�v�r

�e�en� hrubou silou d�v� sice nejlep�� mo�n� �e�en�, ale dan� za prohled�n� cel�ho stavov�ho prostoru je ne�nosn� (exponenci�ln�) �asov� slo�itost. P�ekvapuj�c� jsou pom�rn� dobr� v�sledky jednoduch� heuristiky. �asov� z�vislost je line�rn� (obsahuje velkou multiplikativn� konstantu, tak�e pro mal� n se neprojev� slo�itost �azen� n.log(n)) a dosahuje pr�m�rn� chyby v nejhor��m p��pad� 2,17% pro zadan� instance. Z grafu je dob�e patrn�, �e pr�m�rn� relativn� chyba s velikost� instance kles�.