Pro nastavení správných parametrů použitých algortimů v generátoru a pro ověření správného fungování, bylo s přihlédnutím na požadavky vytvořeno několik testů. 
\benum
\item test na určení velikosti populace genetického algoritmu
\item test, který zjišťuje jak ovlivňuje nastavená testovatelnost obvodu jeho nedetekovatelné poruchy a resyntézu.
\item test na zjištění, jak ovlivňuje velikost generovaného obvodu jeho nedetekovatelné poruchy a schopnost resyntézy.
\item porovnání výsledku testovatelnosti obvodů z množiny ISCAS s vygenerovanými obvody podobných parametrů
\eenum

\section{Nastavení testů}

Pokud není v testech uvedeno jinak, tak všechny testy probíhali se standartně nastavenými parametry generátoru. 
Probíhali na stroji s konfigurací : Pentium Core2-duo 2Ghz, 2GB RAM, Microsoft Windows XP Professional.\\[7mm]

{\bf Testovatelnost}

Ke zjišťování reálné testovatelnosti byl použit nástroj Atalanta vytvořena na Technické univeritě ve Virginii. Konkrétně upravený model Atalanta-M 1.1 panem Ing. Fišerem. Podrobný popis, návod a možnost stažení najdete v \cite{ATL}.

V testech jsme tímto programem v jeho automatickém módu zjišťovali kolik se v obvodě nachází celkem poruch --- označujeme "faults", kolik poruch je zaručeně nedetekovatelných --- "r\_faults" a kolik poruch se detekovalo --- "d\_faults".

Dále jsme se zkusili v jeho simulačním módu otestovat reálnou testovatelnost. Pomocí funkce generátoru náhodných vektorů, jsme vygenerovali pevný počet vstupních vektorů. A přes simulaci jsme zjišťovali kolik poruch tato metoda neobjeví, oproti automatickému módu. Detekované poruchy náhodnými vektory jsem označil "RPDF". Sloupeček označený "nr\_faults" označuje poruchy obvodu, které nebyly určeny jako redundantní. Je to vlastně kolonka "faults"-"r\_faults".  \\[7mm]

{\bf Resyntéza obvodu}

K resyntéze obvodu byl použit nástroj SIS. Možnost stažení i s podrobným návodem je v~\cite{SIS} resp. v~\cite{VLSI}. Zde bylo poměrně těžké určit a vypočítat hodnotu, která by podávala vypovídající hodnotu o možnosti minimalizaci obvodu. Proto jsem zavedl hodnotu "influence", které pro každý výstup obvodu znamená, na kolika vstupech obvodu je závislý. Pokud má obvod více výstupů celková "influence" se vypočítá jako průměr každého výstupu. Toto číslo má vypovídat o schopnosti generovat obvody, které budou citlivé na vstup a tímpádem lépe testovatelné.

Výpočet "influence" jsem prováděl programem SIS 1.2. Minimalizace obvodu probíhala pomocí dodávaného skriptu "script.rugged" a výsledek byl uložen v PLA tabulce. Tu jsem potom načetl vytvořeným skriptem a celkem jednoduše, podle definice tabulky, zjistil na kolik vstupů je každý výstup citlivý.
 
\section{Test č.1}

Tento test je jen jeden z vybraných testů, podle kterých se vylepšovalo nastavení parametrů genetického algoritmu. Zaměřuje se na velikost populace a má za úkol zjistit jak musí být populace velká, aby byl program nejefektivnější. Tento test byl proveden generátorem, ve kterém se ještě do nově vznikající generace nevkládali nově vytvořená triviální řešení. 
 
\subsection{Nastavení}

Rozhodl jsem se velikost populace zkoumat na problému, který bude obsahovat skoro všechny optimalizační kritéria a bude rozumně velký. Velikost populace jsme postupně nastavili na hodnoty $10$, $30$, $50$, $70$, $90$, $120$. Výsledky jsme průměrovali z minimálně 10-ti měření. Podrobné naastavení parametrů generátoru uvádí tabulka~\ref{tab:t1param}

\begin{table}[h]
\begin{center}
\begin{tabular}{|c|l|}
\hline
\bf{Parametr} & \bf{hodnota} \\
\hline
počet vstupů & $10$\\
\hline
počet výstupů & $1$\\
\hline
počet hradel & $100$ \\
\hline
testovatelnost & $0.1$ s váhou $5$ \\
\hline
řiditelnost & $0.7$ \\
\hline
maximální větvení & $4$ \\
\hline
počet úrovní & $25$ \\
\hline
maximální fan-in & AND,NAND,OR,NOR --- 4 \\
\hline
kontrola počtu hradel & ANO \\
\hline
konec algoritmu & pevně po $500$ generacích\\
\hline

\end{tabular}
\end{center}
\caption{Test č.1 - nastavení parametrů}
\label{tab:t1param}
\end{table}

\subsection{Naměřené výsledky}

V tabulce~\ref{tab:t1vysl} jsou průměrně dosažené hodnoty fitness funkce po pevně zadaném počtu 500ti generací.

\begin{table}[h]
\begin{center}
\begin{tabular}{|c|l|}
\hline
\bf{Velikost populace} & \bf{průměrná fitness} \\
\hline
$10$ & $7.187$\\
\hline
$30$ & $7.368$\\
\hline
$50$ & $7.421$\\
\hline
$70$ & $7.441$\\
\hline
$90$ & $7.458$\\
\hline
$120$ & $7.440$\\
\hline
\end{tabular}
\end{center}
\caption{Test č.1 - výsledky}
\label{tab:t1vysl}
\end{table}

Na obrázku~\ref{fig:t1.1} uvádím průběh fitness v náhodně vybraných výsledcích --- vždy jeden pro jednu velikost populace.

\begin{figure}[h!]
\begin{center}
\includegraphics[width=13cm]{test1}
\caption{Test č.1 - Průběh fitness funkce pro různá nastavení velikosti populace}
\label{fig:t1.1}
\end{center}
\end{figure}

\subsection{Vyhodnocení}

Jak je vidět, generátor zhruba od velikosti populace 70 generuje srovnatelné výsledky, jak v kvalitě, tak v průběhu konvergence. Tuto hodnotu jsem ještě náhodně otestoval na jiných zadáních a experimentálně ji tím ověřil. Poněvadž jsem později do generátoru přidával funkci, která do nové populace vkládá nové jedince, tak jsem do finálního generátoru zvolil pro velikost populace pevnou hodnotu 80.

\section{Test č.2}

Tento test se snažil otestovat funkci genetického algoritmu co se týká optimalizace obvodu na zadanou testovatelnost. 

\subsection{Nastavení a metodika testu}

Generoval jsem 3 druhy obvodů, každý po 50ti vzorcích.  
\benum
\item druh --- Testovatelnost = $0$
\item druh --- Testovatelnost = $0.1$
\item druh --- Testovatelnost = $0.2$
\eenum
Ostatní nastavení přepínačů generátoru je uvedeno v tabulce~\ref{tab:t2param}.

\begin{table}[h!]
\begin{center}
\begin{tabular}{|c|l|}
\hline
-i $20$ & Počet vstupů --- 20\\
\hline
-o $2$ & Počet výstupů --- 2\\
\hline
-n $80$ & Počet hradel --- 80\\
\hline
-m $15$ $4$ & Maximální fan-in AND,NAND,OR,NOR --- 4\\
\hline
-w $16$ $16$ & Váha testovatelnosti zvýšena na 16ti násobek\\
\hline
-cg & Zapnuta kontrola správného počtu hradel\\
\hline
-G $2000$ & Po 2000 generacích ukonči generování.\\
\hline
-g $500$ & Nebo pokud za posledních 500 generací\\
& se nejsilnější jedinec nezměnil\\
\hline
\end{tabular}
\end{center}
\caption{Test č.2 - Parametry generátoru}
\label{tab:t2param}
\end{table}

Toto nastavení bylo zvoleno po předběžných testech, aby se snažilo simulovat reálné obvody. Přepínač na kontrolu hradel spolu se zvýšenou váhou testovatelnosti, je kvůli zamezení zvýhodňování dobře testovatelných hradel (XOR,XNOR,NOT) v průběhu optimalizace, na úkor ostatních. Tento nepříjemný efekt popíši v závěru celé práce.

\subsection{Naměřené výsledky}

V~tabulce~\ref{tab:t2vysl} sloupeček "test" označuje testovatelnost obvodu, "faults" označuje celkový počet poruch obvodu, "r\_faults" vyjadřuje počet redundandtních poruch - nedetekovatelných, "ratio" je podíl $\frac{faults}{r\_faults}$ a zhruba vyjadřuje jak moc je obvod redundantní. "max ratio" označuje maximální "ratio" ze všech průměrovaných hodnot. Sloupeček "influence" označuje na kolika vstupech je závislý výstup obvodu. Poněvadž byli generovány dvouvýstupové obvody, je tato hodnota počítána jako průměr z obou dvou. Všechny tyto hodnoty jsou zprůměrovány z 50ti vzorků.

\begin{table}[h]
\begin{center}
\begin{tabular}{|c||l|l|l|l|l|}
\hline
\bf{test} & \bf{faults} & \bf{r\_faults} & \bf{ratio} & \bf{max ratio} & \bf{influence} \\
\hline
$0.1$ & $293$ & $126$ & $0,43$ & $0,87$ & $10,57$\\
\hline
$0.1$ & $256$ & $102$ & $0,40$ & $0,80$ & $11,43$\\
\hline
$0.2$ & $256$ & $87$ & $0,34$ & $0,59$ & $12,58$\\
\hline
\end{tabular}
\end{center}
\caption{Test č.2 - Výsledky měření}
\label{tab:t2vysl}
\end{table}

V~grafu~\ref{fig:t2.1} uvádím nezprůměrované rozložení výskytu hodnoty "influence" pro testovatelnost rovnu 0. Pro zbylé 2 testovatelnosti jsou v grafu~\ref{fig:t2.2} resp. v~grafu~\ref{fig:t2.3}.

\begin{figure}[p!]
\begin{center}
\includegraphics[width=8cm]{test2_1}
\caption{Test č.2 - Četnost "influence" - testovatelnost 0 }
\label{fig:t2.1}
\end{center}
\end{figure}

\begin{figure}[p!]
\begin{center}
\includegraphics[width=8cm]{test2_2}
\caption{Test č.2 - Četnost "influence" - testovatelnost 0.1 }
\label{fig:t2.2}
\end{center}
\end{figure}

\begin{figure}[p!]
\begin{center}
\includegraphics[width=8cm]{test2_3}
\caption{Test č.2 - Četnost "influence" - testovatelnost 0.2 }
\label{fig:t2.3}
\end{center}
\end{figure}

Graf~\ref{fig:t2.4} ukazuje přibližnou lineární závislost mezi redundancí obvodu, vyjadřenou pomocí poměru počtu poruch v obvodě a počtu nedetekovatelných poruch, a hodnotou, která vyjadřuje závislost výstupu na počtu vstupů. V grafu jsou uvedeny naráz všechny hodnoty z měření. Průměrován je akorát vliv vstupů na více výstupů v rámci jednoho obvodu. 

\begin{figure}[h!]
\begin{center}
\includegraphics[width=10cm]{test2_4}
\caption{Test č.2 - Závislost "influence" na "ratiu" obvodu }
\label{fig:t2.4}
\end{center}
\end{figure}

\subsection{Vyhodnocení}

Částečně se potvrdilo, že reálná testovatelnost obvodu a s tím spojená jeho redundance, je ovlivněna volbou vstupního parametru "testovatelnost", avšak nikterak výrazně. Z grafů četností je vidět, že při generování obvodů s nastavenou alespoň nějakou testovatelností, dochází k mnohem méně případům, že výstup není citlivý na žádný vstup. Dá se říci, že citlivost obvodu stoupá s testovatelností, avšak rozptyl výsledných hodnot v rámci jednoho nastavení je tak veliký, že se nemůžeme na nastavený vstupní parametr nikterak spolehnout.

V~grafu~\ref{fig:t2.4} se nám ukázala jistá závislost redundance obvodu s citlivostí výstupu, což je logické. Pokud nebude výstup citlivý ani na jednu vstupní proměnou, nebude možné žádným vstupním vektorem otestovat většinu možných poruch v obvodě --- budou všechny redundantní.   


\section{Test č.3}

Tento test je zaměřen na kontrolu redundancí v obvodě a na možnost resytnézy v závislosti na počtu hradel v obvodu.

\subsection{Nastavení}

Tento test měl nastaveny pevné parametry podle tabulky~\ref{tab:t2param}. Měnili jsme parametr počet hradel a to v těchto krocích $30$, $80$, $150$, $250$, $400$ a $600$. Tím jsme vlastně odškálovali jakousi "mohutnost" obvodu. Všechny obvody jsme vygenerovali ve 20-ti verzích a dosažené výsledky jsme průměrovali.

\begin{table}[!ht]
\begin{center}
\begin{tabular}{|c|l|}
\hline
-i $20$ & Počet vstupů --- 20\\
\hline
-o $1$ & Počet výstupů --- 1\\
\hline
-m $15$ $4$ & Maximální fan-in AND,NAND,OR,NOR --- 4\\
\hline
-w $16$ $5$ & Váha testovatelnosti zvýšena na 5ti násobek\\
\hline
-tt $0.1$ & Testovatelnost obvodu nastavena na 0.1\\
\hline
-tc $0.7$ & Řiditelnost obvodu nastavena na 0.7\\
\hline
-cg & Zapnuta kontrola správného počtu hradel\\
\hline
-G $1000$ & Po 2000 generacích ukonči generování.\\
\hline
-g $400$ & Nebo pokud za posledních 500 generací\\
& se nejsilnější jedinec nezměnil\\
\hline
\end{tabular}
\end{center}
\caption{Test č.3 - Parametry generátoru}
\label{tab:t3param}
\end{table}

Zde musím podotknout, že zvolenou testabilitu dosahovali akorát obvody do 150 hradel. Větší obvody už se hranici 0.1 ani nepřiblížili. To je způsobeno tím, že pro větší obvod je složité pozorovatelnost propagovat přes hradla dále do obvodu. Z toho plynulo, že vlastně obvody nad 150 hradel se generovali s co největší testovatelností. Zajímavé bylo že řiditelnost 0.7 dosáhli úspěšně všechny obvody. Menší obvody ji měli spíše tendenci překračovat.

Zároveň jsme vygenerovali v 5-ti vzorcích jejich 10-ti výstupové varianty. Na nich jsme zkoumali rozdílnou shopnost resytnézy obvodu.

\subsection{Naměřené výsledky}

V tabluce~\ref{tab:t3vysl} uvádím výsledky měření vzorků s jedním výstupem. Sloupeček označený "range of ratio" Udává minimalní --- maximální "ratio" vyskytující se v testovaných vzorcích. V tabulce~\ref{tab:t3vysl2} je rozepsána citlivost nebo-li "influence" výstupů v každém vzorku.


\begin{table}[!ht]
\begin{center}
\begin{tabular}{|c||l|l|l|l|l|}
\hline
\bf{počet hradel} & \bf{faults} & \bf{r\_faults} & \bf{range of ratio} & \bf{ratio} & \bf{influence} \\
\hline
$30$ & $105$ & $23$ & $0,01$ --- $0,92$ & $0,22$ & $15,15$\\
\hline
$80$ & $273$ & $120$ & $0,18$ --- $0,78$ & $0,44$ & $14,90$\\
\hline
$150$ & $484$ & $204$ & $0,19$ --- $0,76$ & $0,42$ & $18,75$\\
\hline
$250$ & $801$ & $464$ & $0,27$ --- $0,97$ & $0,58$ & $17,85$\\
\hline
$400$ & $1256$ & $657$ & $0,27$ --- $0,86$ & $0,52$ & $18,00$\\
\hline
$600$ & $1861$ & $1022$ & $0,39$ --- $0,76$ & $0,55$ & $20,00$\\
\hline
\end{tabular}
\end{center}
\caption{Test č.3 - Naměřené výsledky - 1 výstup}
\label{tab:t3vysl}
\end{table}


\begin{sidewaystable}[!p]
\begin{center}
\begin{tabular}{|c||l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|}
\hline
\bf{počet hradel} &\bf{1.} &\bf{2.} &\bf{3.} &\bf{4.} &\bf{5.} &\bf{6.} &\bf{7.} &\bf{8.} &\bf{9.} &\bf{10.} &\bf{11.} &\bf{12.} &\bf{13.} &\bf{14.} &\bf{15.} &\bf{16.} &\bf{17.} &\bf{18.} &\bf{19.} &\bf{20.}\\
\hline
$30$ & $18$ & $20$ & $13$ & $18$ & $18$ & $16$ & $17$ & $19$ & $13$ & $14$ & $11$ & $12$ & $18$ & $17$ & $11$ & $17$ & $17$ & $18$ & $16$ & $0$\\
\hline
$80$ & $17$ & $16$ & $18$ & $17$ & $20$ & $18$ & $9$ & $10$ & $9$ & $12$ & $8$ & $14$ & $20$ & $20$ & $20$ & $19$ & $7$ & $9$ & $20$ & $15$\\
\hline
$150$ & $20$ & $20$ & $20$ & $20$ & $20$ & $15$ & $19$ & $18$ & $19$ & $20$ & $17$ & $19$ & $19$ & $20$ & $18$ & $12$ & $20$ & $20$ & $20$ & $19$\\
\hline
$250$ & $20$ & $18$ & $18$ & $20$ & $18$ & $20$ & $0$ & $20$ & $18$ & $14$ & $20$ & $19$ & $17$ & $17$ & $20$ & $19$ & $20$ & $19$ & $20$ & $20$\\
\hline
$400$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $0$ & $20$ & $0$ & $20$ & $20$\\
\hline
$600$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$ & $20$\\
\hline
\end{tabular}
\end{center}
\caption{Test č.3 - Citlivost výstupu v jednotlivých vzorcích - 1 výstup}
\label{tab:t3vysl2}
\end{sidewaystable}


\begin{figure}[!p]
\begin{center}
\includegraphics[width=8cm]{test3_10_1}
\caption{Test č.3 - Četnost "influence" - 10 výstupů - 30 hradel}
\label{fig:t3.1}
\end{center}
\end{figure}

\begin{figure}[!p]
\begin{center}
\includegraphics[width=8cm]{test3_10_2}
\caption{Test č.3 - Četnost "influence" - 10 výstupů - 150 hradel}
\label{fig:t3.2}
\end{center}
\end{figure}

\begin{figure}[!p]
\begin{center}
\includegraphics[width=8cm]{test3_10_3}
\caption{Test č.3 - Četnost "influence" - 10 výstupů - 600 hradel}
\label{fig:t3.3}
\end{center}
\end{figure}

Obdobně uvádím tabulku~\ref{tab:t3vysl3}, ve které jsou výsledky 10-ti výstupových obvodů. V grafech~\ref{fig:t3.1}, \ref{fig:t3.2} a \ref{fig:t3.3} jsou uvedeny četnosti citlivostí všech výstupů ve všech vzorcích pro nastavení 30, 150 a 600 hradel.  


\begin{table}[!ht]
\begin{center}
\begin{tabular}{|c||l|l|l|l|}
\bf{počet hradel} & \bf{faults} & \bf{r\_faults} & \bf{ratio} & \bf{influence} \\
\hline
$30$ & $118$ & $18$ & $0,15$ & $4,58$\\
\hline
$80$ & $298$ & $60$ & $0,20$ & $6,88$\\
\hline
$150$ & $519$ & $137$ & $0,26$ & $7,70$\\
\hline
$250$ & $835$ & $265$ & $0,32$ & $10,48$\\
\hline
$400$ & $1328$ & $469$ & $0,35$ & $11,56$\\
\hline
$600$ & $1919$ & $655$ & $0,34$ & $12,76$\\
\hline
\end{tabular}
\end{center}
\caption{Test č.3 - Naměřené výsledky - 10 výstupů}
\label{tab:t3vysl3}
\end{table}

\subsection{Vyhodnocení}

Z testu je patrné, že velikost generovaného obvodu úzce souvisí s jeho testovatelností, případně s jeho resyntézou. Jsou zde vidět především obrovské rozptyly redundance genrovaných obvodů a spíše její konvergenci k 50-ti procentům se zvětšujícím se obvodem.
Zajimavý byl fakt, že rostla citlvost výstupů v obvodě s jeho velikostí a tím související rostoucí průměrnou redundancí. Je to opačný závěr, než-li v minulém testu a přisuzuji to již zmíněnému velikému rozptylu redundance a průměrování hodnot. Z tabulky~\ref{t3vysl2} je totiž patrné, že se při větších obvodech generovali již ve všech případech, buď obvody s plnou citlivostí a nebo s nulovou. Na závěr uvádím, že pozorovaná citlivost vícevýstupových hradel byla výrazněji citlivá na velikost. 






\section{Test č.4}

V tomto testu se zabývám porovnáním již hotového souboru kombinačních obvodů vhodných na testování --- ISCAS s obvody podobných parametrů vygenerovaný programem gennetwork. Kombinační obvody v ISCAS jsou reálné obvody. Převážně jde o řadiče, nebo obvody realizující nějakou kontrolu, ojediněle specializovaná sčítačka. Test měl za úkol zhodnotit, jestli lze generátorem generovat obvody, které se nějakým zůsobem podobojí reálným obvodům.

\subsection{Generování obvodů}
První problém byl, že nikde nebyly parametry těchto obvodů blíže specfikovány, tudíž jsme si je museli získat přímo ze souboru popisujícího daný obvod. Především šlo o počet všech typů hradel, kolik mají maximálně vstupů a další. Hradla BUF, které se v ISCAS vyskytují, gennetwork nepoužívá a proto tato hradla vypustil. Naopak v žádném zkoumaném obvodu ze souboru ISCAS nebylo hradlo XNOR, tak bylo nutné nastavit pravěpodobnost výskytu tohoto hradla na 0. Parametry, které jsem zjistil uvádím v tabulce~\ref{tab:t4iscas}. Všechny položky znamenají počet výskytů příslušného hradla, pokud se objevuje druhá hodnota v závorce, tak znamená jiný maximální fan-in příslušného hradla nežli standartní 2.

Obvody jsem generoval s optimalizačním kritériem nastaveným na počet, s pravděpodobnostmi a maximálními fan-iny hradel přesně podle tabulky~\ref{tab:t4iscas}. Zbytek parametrů generátoru bylo ponecháno standartně.

\begin{sidewaystable}[p!]
\begin{center}
\begin{tabular}{|c|l|l|l|l|l|l|l|l|l|}
\hline
\bf{název obvodu} & \bf{\# vstupů} & \bf{\# výstupů} & \bf{\# hradel} & \bf{\# AND} & \bf{\# NAND} & \bf{\# OR} & \bf{\# NOR} & \bf{\# XOR} & \bf{\# NOT} \\
\hline
$c17$ & $5$ & $2$ & $7$ & $0$ & $6$ & $1$ & $0$ & $0$ & $0$\\
\hline
$c432$ & $36$ & $7$ & $161$ & $4$ $(9)$ & $79$ $(4)$ & $1$ & $19$ & $18$ & $40$\\
\hline
$c499$ & $41$ & $32$ & $203$ & $56$ $(5)$ & $0$ & $3$ & $0$ & $104$ & $40$\\
\hline
$c880$ & $60$ & $26$ & $358$ & $117$ $(3)$ & $87$ $(4)$ & $30$ & $61$ & $0$ & $63$\\
\hline
$c1355$ & $41$ & $32$ & $515$ & $56$ $(4)$ & $416$ & $3$ $(4)$ & $0$ & $0$ & $40$\\
\hline
$c1908$ & $33$ & $25$ & $719$ & $63$ $(8)$ & $377$ $(8)$ & $1$ & $1$ & $0$ & $277$\\
\hline
$c2670$ & $233$ & $140$ & $998$ & $333$ $(5)$ & $254$ & $78$ $(5)$ & $12$ & $0$ & $321$\\
\hline
$c3540$ & $50$ & $22$ & $1447$ & $498$ $(4)$ & $298$ $(4)$ & $93$ $(4)$ & $68$ $(8)$ & $0$ & $490$\\
\hline
$c5315$ & $178$ & $123$ & $1995$ & $718$ $(8)$ & $454$ & $215$ $(5)$ & $27$ $(3)$ & $0$ & $581$\\
\hline
$c6288$ & $32$ & $32$ & $2417$ & $256$ & $0$ & $1$ & $2128$ & $0$ & $32$\\
\hline
$c7552$ & $207$ & $108$ & $2979$ & $776$ $(5)$ & $1028$ & $245$ $(5)$ & $54$ $(4)$ & $0$ & $876$\\
\hline
\end{tabular}
\end{center}
\caption{Test č.4 - Parametry obvodů ze souboru ISCAS}
\label{tab:t4iscas}
\end{sidewaystable}

Vygeneroval jsem zhruba 30 setů logických sítí s podobnými parametry jako kombinační část set ISCAS. Z těch jsem se snažil pomocí testů vybrat co nejvíce podobné obvody. Na závěr pak zhodnotit kvalitu těchto generovaných obvodů jako benchmarkového setu.

\subsection{Metodika testu}

Nově vygenerovanou sadu obvodů jsem porovnával s originálními obvody ISCAS v počtu redundantních poruch a reálné testovatelnosti. Metody jsou stejné jako píši v úvodu testů. Pro reálnou testovatelnost byl každý obvod testován 50$\times$ ATPG vždy s náhodným polynomem a seedem.

\subsection{Naměřené výsledky}

Tabulka~\ref{tab:t4vysl} má vždy v lichých řádkách uvedeny původní obvody ze souboru ISCAS. Hned pod ním jsou uvedeny výsledky měření nově vygenerovaného příslušného obvodu. V první části tabulky jsou výsledky atalanty v automatickém módu. V druhé jsou zprůměrované výsledky simulačního módu, kterým byl každý obvod 50 krát testován tisícem náhodných vektorů. Poslední sloupeček označuje podíl nalezených poruch k počtu poruch o kteých víme, že nejsou nedetekovatelné. Vyjadřuje to přibližně, jak moc jednoduše jde daný obvod testovat náhodnými vektory.

\begin{table}[h]
\begin{center}
\begin{tabular}{|c||l|l|l|l||l|l|l|}
\hline
\bf{name} & \bf{faults} & \bf{d\_faults} & \bf{r\_faults} & \bf{ratio} & \bf{nr\_faults} & \bf{RPDF} & $\frac{RPRDF}{nr\_faults}$\\
\hline
\hline
c17 & $22$ & $22$ & $0$ & $0,00$ & $22$ & $17$ & $0,79$\\
& $22$ & $21$ & $1$ & $0,05$ & $21$ & $15$ & $0,71$\\
\hline
c432 & $524$ & $520$ & $1$ & $0,00$ & $523$ & $496$ & $0,95$\\
& $494$ & $456$ & $38$ & $0,08$ & $456$ & $384$ & $0,84$\\
\hline
c499 & $758$ & $750$ & $8$ & $0,01$ & $750$ & $722$ & $0,96$\\
& $905$ & $891$ & $14$ & $0,02$ & $891$ & $844$ & $0,95$\\
\hline
c880 & $942$ & $942$ & $0$ & $0,00$ & $942$ & $896$ & $0,95$\\
& $1128$ & $977$ & $140$ & $0,12$ & $988$ & $710$ & $0,72$\\
\hline
c1355 & $1574$ & $1566$ & $8$ & $0,01$ & $1566$ & $1474$ & $0,94$\\
 & $1963$ & $1928$ & $29$ & $0,01$ & $1934$ & $1656$ & $0,86$\\
\hline
c1908 & $1879$ & $1870$ & $7$ & $0,00$ & $1872$ & $1204$ & $0,64$\\
 & $2561$ & $1284$ & $1180$ & $0,46$ & $1381$ & $868$ & $0,63$\\
\hline
c2670 & $2747$ & $2630$ & $86$ & $0,03$ & $2661$ & $2301$ & $0,86$\\
 & $3074$ & $2929$ & $144$ & $0,05$ & $2930$ & $2295$ & $0,78$\\
\hline
c3540 & $3428$ & $3291$ & $137$ & $0,04$ & $3291$ & $3206$ & $0,97$\\
 & $4214$ & $1343$ & $2683$ & $0,64$ & $1531$ & $757$ & $0,49$\\
\hline
c5315 & $5350$ & $5291$ & $59$ & $0,01$ & $5291$ & $5046$ & $0,95$\\
 & $6933$ & $4865$ & $1900$ & $0,27$ & $5033$ & $2670$ & $0,53$\\
\hline
c6288 & $7744$ & $7710$ & $34$ & $0,00$ & $7710$ & $7589$ & $0,98$\\
 & $7184$ & $7078$ & $22$ & $0,00$ & $7162$ & $6613$ & $0,92$\\
\hline
c7552 & $7550$ & $7418$ & $71$ & $0,01$ & $7479$ & $6716$ & $0,90$\\
& $8536$ & $7506$ & $924$ & $0,11$ & $7612$ & $4343$ & $0,57$\\
\hline
\end{tabular}
\end{center}
\caption{Test č.4 - Naměřené výsledky}
\label{tab:t4vysl}
\end{table}

\subsection{Vyhodnocení}

Celkem 7 z 11-ti generovaných obovodů, mohu prohlásit za podobné obvodům ze souboru ISCAS, podle testovaných parametrů. Nenašel jsem mezi nepodařenými obvody žádnou souvislot, která by indikovala, proč se je nepodařilo replikovat.
Poněvadž jsou obvody z ISCAS v reálu použivané a byly navrženy na nějakou konkrétní funkci, je velkým úspěchem, že jsme generátorem náhodných obvodů vygenerovali obvody (v rámci testovatelnsoti) podobné.   



 