Changeset 165


Ignore:
Timestamp:
Jul 27, 2010, 11:20:34 AM (14 years ago)
Author:
Rick van der Zwet
Message:

Some more corrections we are almost at the end

File:
1 edited

Legend:

Unmodified
Added
Removed
  • liacs/SCA2010/BDD/report.tex

    r164 r165  
    204204\end{equation}
    205205Om er weer een ``valide'' \emph{BDD} van te maken zullen deze bladeren vervangen
    206 worden door het uitgerekende blad. Door bijvoorbeeld voor de $\diamond$ operatie een
    207 \emph{EN} operatie te nemen, wordt de blad-rij in~\ref{bladeren} vervangen door de rij
    208 $\bot, \bot, \bot, \top$. Nu is het zaak het \emph{BDD} te vereenvoudigen, om zo
    209 duplicaat-bladeren te snoeien (\emph{pruning}).
     206worden door het uitgerekende blad. Als bijvoorbeeld de $\diamond$ operatie
     207bedoelt is voor een \emph{EN} operatie, wordt de blad-rij in~\ref{bladeren}
     208vervangen door de rij $\bot, \bot, \bot, \top$. Nu is het zaak het \emph{BDD}
     209te vereenvoudigen, om zo duplicaat-bladeren te snoeien (\emph{pruning}).
    210210
    211211De kracht van deze aanpak zit hem in de generieke $\diamond$
     
    213213het eind van de rit. De gegeneerde gesmolten \emph{BDD} is geldig voor alle.
    214214
    215 Kijkend naar de limieten moet geoordeeld worden kan hetzelfde altijd bereikt
    216 worden door in het slechte geval de \emph{BDD}s achter elkaar te plakken welke
    217 dan in dit geval $B(f)B(g)$ knopen oplevert. Voorbeeld~\ref{voorbeeldPlakken}
    218 is hier een geval van. In het meer algemene geval geldt meestal $B(f) + B(g)$.
    219 Deze grenzen worden in voorbeeld~\ref{voorbeeldSamenvoegen} aangescherpt.
     215Door de \emph{BDD}s achter elkaar te plakken kan met maximaal $B(f)B(g)$ knopen
     216een \emph{BDD} voor $f \diamond g$ gerealiseerd worden.
     217Hoofdstuk~\ref{voorbeeldPlakken} is hier een voorbeeld van. In het meer algemene
     218geval geldt meestal $B(f) + B(g)$ als bovengrens.  Deze grenzen worden in
     219Hoofdstuk~\ref{voorbeeldSamenvoegen} aangescherpt.
    220220
    221221Het smelten ligt aan de basis van de daadwerkelijke synthese. Een simpele
    222 variant kan gemaakt worden met algoritme $R$. Maak eerst een reeks van
    223 alle knopen $\alpha$ in $B(f)$ en $\alpha'$ in $B(g)$ met knoop $\alpha
    224 \diamond \alpha'$ in rij $\alpha$ en column $\alpha'$. Vervang de bladeren
    225 (\ref{bladeren}) door $\bot$ en $\top$. En voor algoritme $R$ uit op $f \diamond
    226 g$. Op het eerste gezicht lijkt algoritme $R$ er ongeveer $B(f)B(g)$ over te
    227 doen, maar doordat je onbereikbare knopen niet hoeft te evalueren zal je
    228 uitkomen op $B(f \diamond g)$.
    229 
    230 Deze 'truc' zorgt ervoor dat de tijd binnen de perken blijft, maar er is dan
    231 nog niets gezegd over de hoeveelheid geheugen er nodig is. Omdat er nu
     222impementatie kan gemaakt worden met algoritme $R$. (a) Maak eerst een reeks van
     223alle knopen $\alpha$ in $f$ en $\alpha'$ in $g$ met knoop $\alpha
     224\diamond \alpha'$ in rij $\alpha$ en column $\alpha'$. (b) Vervang de bladeren
     225(zie Formule~\ref{bladeren}) door $\bot$ en $\top$, en (c) voer het algoritme
     226$R$\footnote{Algoritme $R$ wordt niet in deze samenvatting behandeld; de
     227vak-website~\cite[SCA2010] heeft een referentie naar algoritme $R$
     228---\url{http://www.liacs.nl/~kosters/semcom/tomb.pdf}--- welke behandeld wordt
     229door Tom.} op $f \diamond g$. Op het eerste gezicht lijkt algoritme $R$ er ongeveer
     230$B(f)B(g)$ operaties over te doen, maar doordat je onbereikbare knopen niet
     231hoeft te evalueren zal je uitkomen op $B(f \diamond g)$.
     232
     233Deze ``truc'' zorgt ervoor dat de tijd binnen de perken blijft, maar er is dan
     234nog niets gezegd over de hoeveelheid geheugen die nodig is. Omdat er nu
    232235$B(f)B(g)$ knopen in geheugen gehouden moet wordt zal dit problemen opleveren
    233 bij kleine en grotere algoritmen. Om deze efficiëntie aan te pakken is
    234 algoritme $S$ \footnote{Algoritme $S$ wordt niet in deze samenvatting gehandeld
    235 de vak-website~\cite{SCA2010} heeft een verwijzing van de samenvatting van dit
    236 algoritme} ontworpen.
     236bij kleine en grotere bomen. Om deze effici\"{e}ntie aan te pakken is
     237algoritme $S$\footnote{Algoritme $S$ wordt niet in deze samenvatting behandeld;
     238het boek~\cite[p.~90-92]{DK2009} gaat hier echter uitvoerig op in.} ontworpen.
    237239
    238240
     
    241243\subsection{Product groei in synthese van \emph{BDD}}
    242244\label{voorbeeldSamenvoegen}
    243 Het volgende voorbeeld is een uitwerking van opgave 60~\cite[pg. 130]{DK2009}
    244 de offi\"{e}le uitwerking is te vinden op pagina 195~\cite{DK2009}
    245 
    246 Neem aan dat $f(x_{1},dots,x_{n})$ en $g(x_{1},dots,x_{n})$ de respectieve
    247 \emph{profielen} (\emph{profiles})~\cite[pg 101]{DK2009} $(b_{0},dots,b_{n})$ en
    248 $(b'_{0},dots,b_{n})$ hebben. En de respectieve \emph{quasi-profielen}
    249 (\emph{quasi-profiles})~\cite[pg 103]{DK2009} $(q_{0},dots,q_{n})$ en
    250 $(q'_{0},dots,q'_{n})$.  Om te laten zijn dat de gesmolten $f \diamond g$ het
    251 aantal knopen van $B(f \diamond g) \leq
     245Het volgende voorbeeld is een uitwerking van opgave 60~\cite[p.~130]{DK2009}
     246de offi\"{e}le uitwerking is te vinden op \cite[p~.195]{DK2009}
     247
     248Neem aan dat $f(x_{1},\dots,x_{n})$ en $g(x_{1},\dots,x_{n})$ de respectieve
     249\emph{profielen} (\emph{profiles})~\cite[p.~101]{DK2009} $(b_{0},\dots,b_{n})$ en
     250$(b'_{0},\dots,b_{n})$ hebben, en de respectieve \emph{quasi-profielen}
     251(\emph{quasi-profiles})~\cite[p.~103]{DK2009} $(q_{0},\dots,q_{n})$ en
     252$(q'_{0},\dots,q'_{n})$.  Om te laten zijn dat de gesmolten $f \diamond g$ het
     253aantal knopen $B(f \diamond g) \leq
    252254\sum^{n}_{j=0}(q_{j}b'_{j}+b_{j}q'_{j}-b_{j}b'_{j})$ bevat moet gekeken worden
    253 aan het aantal \emph{beads}~\cite[pg 72]{DK2009} dat mogelijkerwijs gemaakt
    254 kunnen worden van de functies $f$ en $g$. 
    255 
    256 Elke bead van de orde $n - j$ van het geordende paar $(f,g)$ zal binnen de
    257 standaard combinatie vallen de $b_{j}b_{j}'$ geordende beats van $(f,g)$.
    258 vallen of is er eentje uit een meer speciaal gegenereerde reeks van een
     255naar het aantal \emph{beads}~\cite[p.~72]{DK2009} dat mogelijkerwijs gemaakt
     256kan worden van de functies $f$ en $g$. 
     257
     258Hierbij geldt dan voor een willikeurige functie $n$ met als profiel
     259$(b_{0},\dots,b_{n})$ en quasi-profiel $(q_{0},\dots,q_{n})$ dat
     260$B(q_{0},\dots,q_{n}) \geq B(b_{0},\dots,b_{n})$. En tevens dan
     261$(b_{0},\dots,b_{n}) \subseteq (q_{0},\dots,q_{n})$. Hieruit volgt dat een
     262geen-bead zich bevindt in $(q_{0},\dots,q_{n}) \setminus (b_{0},\dots,b_{n})$.
     263
     264Elke bead \beta van de orde $n - j$ in het geordende paar $(f,g)$ zal zich
     265bevinden in een van de volgende groepen; (a) de standaard-combinatie van de
     266$b_{j}b_{j}'$ geordende beats van $(f,g)$ of (b) de gegenereerde reeks van een
    259267(bead,geen-bead) of (geen-bead, bead) $b_{j}(q_{j}' - b_{j}') + (q_{j} -
    260 b{j})b_{j}'$. Zie hierbij dat van een functie het $B(quasi-profiel) \geq
    261 B(profiel)$. En dat alle in het profiel altijd in het quasi-profiel zit. Er dus
    262 de geen-bead kan beschrijven als de rest van de quasi-profiel minus profiel.
     268b{j})b_{j}'$.
    263269
    264270Dit bij elkaar optellen levert op $b_{j}b_{j}' + b_{j}(q_{j}' - b_{j}') +
     
    271277de offi\"{e}le uitwerking is te vinden op pagina 195~\cite{DK2009}
    272278
    273 Laat $f(x_{1},dots,x_{n}) = M_{m}(x_{1} \oplus x_{2},x_{3} \oplus
    274 x_{4},dots,x_{2m-1} \oplus x_{2m};x_{2m+1},dots,x_{n})$ en $g(x_{1},dots,x_{n}) =
    275 M_{m}(x_{2} \oplus x_{3},dots,x_{2m-2} \oplus x_{2m-1},x_{2m};\overline
    276 x_{2m+1},dots,\overline x_{n})$ waar $n = 2m + 2^{m}$.
     279Laat $f(x_{1},\dots,x_{n}) = M_{m}(x_{1} \oplus x_{2},x_{3} \oplus
     280x_{4},\dots,x_{2m-1} \oplus x_{2m};x_{2m+1},\dots,x_{n})$ en $g(x_{1},\dots,x_{n}) =
     281M_{m}(x_{2} \oplus x_{3},\dots,x_{2m-2} \oplus x_{2m-1},x_{2m};\overline
     282x_{2m+1},\dots,\overline x_{n})$ waar $n = 2m + 2^{m}$.
    277283
    278284Dan is $B(f) = 2^{m+2}-1 \approx 4n$, $B(g) = 2^{m+1}-2^{m} \approx 3n$ en $B(g
     
    283289multiplexers~\cite[7.1.2-(31)]{DK2009-0} zijn voor welke de profielen zijn
    284290$(1,2,2,\dots,2^{m-1},2^{m-1},2^m,1,1,\dots,1.2)$ respectievelijk
    285 $(0,1,2,2,\dots,2^{m-1},2^{m-1},1,1,dots,1,2$. Dit optellen en afschatten wordt
     291$(0,1,2,2,\dots,2^{m-1},2^{m-1},1,1,\dots,1,2$. Dit optellen en afschatten wordt
    286292(zie ook~\cite[pg 82]{DK2009}) $B(f) = 2^{m+2} - 1 \approx 4n$ en $B(g) =
    2872932^{m+1} - 1 \approx 3n$ \\
Note: See TracChangeset for help on using the changeset viewer.