diff --git a/fzd/abcgraph.jpg b/fzd/abcgraph.jpg new file mode 100644 index 0000000..46e8592 Binary files /dev/null and b/fzd/abcgraph.jpg differ diff --git a/fzd/fzd.tex b/fzd/fzd.tex index a2321e9..7080494 100644 --- a/fzd/fzd.tex +++ b/fzd/fzd.tex @@ -1,67 +1,47 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%\documentclass[reviewversion,strict]{twocolconf} - - -%\conferencename{EULER2005} - - -% \begin{document} - - -% \papertitle { Fast Zone Discrimination \thanks{Version 1.0 2004JUL31 -% {\tt twocolconf} class.}} -% { -% R P Clark\thanks{footnote}\\ -% \em Written as a by product of constraint editor production \\ -% \email{r.clark@energytechnologycontrol.com} \\ -%\and -%Second author \\ -%\em Affiliation \\ -%\em Affiliation \\ -%\email{x@any.tld}\\ -%\and -%Third author \\ -%\em Affiliation \\ -%\em Affiliation \\ -%\email{y@any.tld}\\ -%} - -%\headertitle{Enables an alternate running header, if applicable to current layout} - - -% \begin{abstract} - -% This paper concentrates on an algorithmic method for determining the -% available zones in an Euler Diagram. It introduces the concepts of pure -% and enclosing relations between contours and chains of pure intersections. -% By representing -% spider/constraint diagrams as directed graphs, this then develops rules and -% a recursive strategy -% determining the available zones, and by deduction, eliminating examining contour combinations that -% will not contain available zones. -% \end{abstract} - - \section{Introduction : Euler Diagram and Zones Available for use} +Euler diagrams consist of closed curves in the plane which are used to represent sets. +The spaitial ralationship between the curves defines the set theoretic relationships. +\begin{itemize} +\item Intersection - if the curves overlap +\item Sub-set - if a curve is enclosed by another +\item disjoint - if the curves are separate +\end{itemize} -\subsection{Defining Available Zones} - -An Euler diagram as opposed to a Venn diagram defines a universe of discourse. -In a Venn diagram all possible zones are visible and available -for placing of existential objects.% \cite{wiki}. -\par -An Euler diagram, by not having to make all possible zones available -restricts this and can place conjunctive constraints on the number combinations of -attributes that the diagram respesents. -\par -When performing logical reasoning on euler diagrams with added existential objects, -it is important to note which available zones do not have objects associated with them. -These represent cases where the user has left them undefined, or considers them to +A zone is defined as a region of the plane where a set of curves will enclose it +and another set is disjoint from it. +A Venn diagram is an Euler diagram where all possible zones are present. +Thus if we have a Venn diagram with $N$ countours it will have $2^N$ +zones. +% +An Euler diagram, does not have to make all possible zones available. +Thus we can make certain combinations of contours unavailable +by drawing the diagrams. Or in other words we can deliberately restrict +not only combinations of contours but also the number of available zones. +% +In Constraint Diagram and PLD's Euler diagrams are used +and objects are placed upon the available zones. +% +When performing logical reasoning on euler diagrams, +it is important to note which available zones do not have objects associated with them in order to flag the unhandled cases in the diagram. +These could represent cases where the user has left them undefined, or considers them to be a general case. Either way they need to be flagged as an ommission error or -collected. In order to do this a method of finding all available zones in an euler diagram is necessary. +collected. In order to do this a method of finding all available zones is necessary. +% +Also note that in a complicated diagram, a zone may, at first glance, appear available, but could be covered-up or obscured by +an enclosing contour. + +%The sizes or shapes of the curves are not important, the significance of the diagram is in how they overlap. +%The spatial relationships between the regions bounded by each curve (overlap, containment or neither) corresponds to set-theoretic relationships (intersection, subset and disjointness). +% +%Each Euler curve divides the plane into two regions or "zones": the interior, which symbolically represents the elements of the set, and the exterior, which represents all elements which are not members of the set. +%Curves which do not intersect represent disjoint sets. Two curves which intersect represent sets that have common elements; the zone inside both curves represents the set of elements common to both sets (the intersection of the sets). A curve which is contained completely within another represents a subset of it. +% +%Venn diagrams are a more restrictive form of Euler diagrams. +%A Venn diagram must contain all the possible zones of overlap between its curves, representing all combinations of inclusion/exclusion of its constituent sets, but in an Euler diagram some zones might be missing. +%Therefore there is only one Venn diagram representing the relationships between n sets, with 2n zones, but there may be many Euler diagrams. +%(An example is given below in the History section; in the top-right illustration the O and I diagrams are merely rotated; Venn stated that this difficulty in part led him to develop his diagrams). \par @@ -75,21 +55,38 @@ For a zone to be available for use it must \par + +Each zone can be defined by the contours that intersect to define it and the remaining +contours in the diagram. Thus for a diagram $ D $ consisting of a set of zones $ Z $ where the zones in the diagram $ Z_{n} $ are defined as a sets of intersection contours $ A_{n} $, and exclusion sets $ B_{n} $. -\subsubsection{Testing for Obscuration} -Obscuration is tested for by being able to subtract one shape from another -with a resultant shape only containg the remainder of the subtraction. -This is as defined in the Java Area classes \cite{javaarea} . -A zone obscured by other contours is one that forms the area of intersection +\subsubsection{Testing a Zone for Existance} + +The Java Area, Shape and Polygon classes, provide functions to +intersect, subtract and `exclusive or' Areas on the plane. They are thus +very useful in testing objects drawn under a Java environment. +% +To determine if a zone exists we can apply the intersection +functions to all the $A_{N}$ contours. If any Area remains +the zone exists. To check that the zone is available, we must +also ensure that it is not covered over by a contour in the $ B_{N}$ set. + +\subsubsection{Testing for Obscuration} +Firstly apply intersection to all the $A_{n}$ contours in the Zone. +We are then left with the area of intersection only. +% +From this we can subtract all the areas from the $B_{n}$ contours. +If the zone was obscured, or covered up the Area object will register that it has no area on the plane. +% +In other words, a zone obscured by other contours is one that forms the area of intersection of the set $ A_{n} $ and then having all the areas from set $ B_{n} $ subtracted from it no surface area left. - -Firstly let us define the meaning of availability in concrete area terms. +% +Firstly let us define the meaning of availability in concrete area termsi by means of an example diagram. In figure \ref{fig:ex1}, there is an Euler diagram with the following zones available. @@ -119,25 +116,39 @@ In figure \ref{fig:ex1}, there is an Euler diagram with the following zones avai Note $B \cap C$ and $ C $ are not available in this diagram because it is impossible to place objects on them. Objects could be placed on $ B \cap C \cap D $ and $ B \cap D $ however. +\begin{figure}[h] + \centering + \includegraphics[width=200pt,bb=0 0 315 217,keepaspectratio=true]{fzd/exampleareasubtraction1.jpg} + % exampleareasubtraction1.jpg: 438x301 pixel, 100dpi, 11.13x7.65 cm, bb=0 0 315 217 + \caption{Simple Euler Diagram} + \label{fig:ex1} +\end{figure} - - \begin{figure} - \vskip 4.2cm - \special{psfile=fzd/exampleareasubtraction1.eps hoffset=0 voffset=-10 hscale=60 vscale=60}\caption[Area Intersection]{ - Simple Euler Diagram - \label{fig:ex1}} - \end{figure} +% +% \begin{figure} +% \vskip 4.2cm +% \special{psfile=fzd/exampleareasubtraction1.eps hoffset=0 voffset=-10 hscale=60 vscale=60}\caption[Area Intersection]{ +% Simple Euler Diagram +% \label{fig:ex1}} +% \end{figure} Examining the intersection $ A \cap B $ the corresponding Area is shown in red in figure \ref{fig:ex2}. +\begin{figure}[h] + \centering + \includegraphics[width=200pt,bb=0 0 315 217,keepaspectratio=true]{fzd/exampleareasubtraction2.jpg} + % exampleareasubtraction2.jpg: 438x301 pixel, 100dpi, 11.13x7.65 cm, bb=0 0 315 217 + \caption{Area representation of intersection between A and B} + \label{fig:ex2} +\end{figure} - \begin{figure} - \vskip 4.2cm - \special{psfile=fzd/exampleareasubtraction2.eps hoffset=0 voffset=-10 hscale=60 vscale=60}\caption[Area Intersection]{ - Area representation of intersection between set A and B - \label{fig:ex2}} - \end{figure} +% \begin{figure} +% \vskip 4.2cm +% \special{psfile=fzd/exampleareasubtraction2.eps hoffset=0 voffset=-10 hscale=60 vscale=60}\caption[Area Intersection]{ +% Area representation of intersection between set A and B +% \label{fig:ex2}} +% \end{figure} The area to be subtracted is shown in blue in figure \ref{fig:ex3}. Note that here the intersection exists @@ -148,13 +159,20 @@ In figure \ref{fig:ex1}, there is an Euler diagram with the following zones avai areas comprised of the other contours $ C \cup D $ (in fact in this diagram only $ D $ is required to prove obscuration because $ C \subset D $ ). - -\begin{figure} -\vskip 4cm -\special{psfile=fzd/exampleareasubtraction3.eps hoffset=0 voffset=-10 hscale=60 vscale=60}\caption[Area Intersection]{ -Area representation of exclusion Zone to be subtracted -\label{fig:ex3}} +\begin{figure}[h] + \centering + \includegraphics[width=200pt,bb=0 0 315 217,keepaspectratio=true]{fzd/exampleareasubtraction3.jpg} + % exampleareasubtraction3.jpg: 438x301 pixel, 100dpi, 11.13x7.65 cm, bb=0 0 315 217 + \caption{Area representation of exclusion zone to be subtracted} + \label{fig:ex3} \end{figure} +% +% \begin{figure} +% \vskip 4cm +% \special{psfile=fzd/exampleareasubtraction3.eps hoffset=0 voffset=-10 hscale=60 vscale=60}\caption[Area Intersection]{ +% Area representation of exclusion Zone to be subtracted +% \label{fig:ex3}} +% \end{figure} %\begin{picture}(200,200)(10,10) %\put(20,0){\circle{20}} @@ -335,13 +353,20 @@ is small in comparison with $2^{N}$ the algorithm becomes far more efficient. Examples of complexity savings are shown in section \ref{complexity}. - -\begin{figure} -\vskip 6cm -\special{psfile=fzd/piee.ps hoffset=0 voffset=-10 hscale=40 vscale=40}\caption[Pure Intersection Zone Capture Method]{ -A Pure Intersection and an Enclosure -\label{fig:piee}} +\begin{figure}[h] + \centering + \includegraphics[width=200pt,bb=0 0 642 482,keepaspectratio=true]{fzd/piee.jpg} + % piee.jpg: 891x669 pixel, 100dpi, 22.63x16.99 cm, bb=0 0 642 482 + \caption{A Pure Intersection and an Enclosure} + \label{fig:piee} \end{figure} + +% \begin{figure} +% \vskip 6cm +% \special{psfile=fzd/piee.ps hoffset=0 voffset=-10 hscale=40 vscale=40}\caption[Pure Intersection Zone Capture Method]{ +% A Pure Intersection and an Enclosure +% \label{fig:piee}} +% \end{figure} \subsection { Relationships between Contours } The algorithm for fast finding of available zones depends upon defining three new relationships between contours. @@ -362,12 +387,20 @@ A countour is said to be enclosed if it fits completely within another contour. \subsubsection { Pure Intersection Chains } -\begin{figure} -\vskip 6cm -\special{psfile=fzd/pic.ps hoffset=0 voffset=0 hscale=40 vscale=40}\caption[Pure Intersection Zone Capture Method]{ -Pure Intersection Zone Chain -\label{fig:pic}} +\begin{figure}[h] + \centering + \includegraphics[width=200pt,bb=0 0 642 482]{fzd/pic.jpg} + % pic.jpg: 891x669 pixel, 100dpi, 22.63x16.99 cm, bb=0 0 642 482 + \caption{Pure Intersection Zone Chain} + \label{fig:pic} \end{figure} +% +% \begin{figure} +% \vskip 6cm +% \special{psfile=fzd/pic.ps hoffset=0 voffset=0 hscale=40 vscale=40}\caption[Pure Intersection Zone Capture Method]{ +% Pure Intersection Zone Chain +% \label{fig:pic}} +% \end{figure} Pairs of contours may belong to the same pure intersection chain. Pure Intersection chains are a chain of contours that can all @@ -427,14 +460,21 @@ This forms a list of relationship pairs from the cross product of all the contou \endequation - -\begin{figure} -\vskip 6cm -\special{psfile=fzd/pice.ps hoffset=0 voffset=0 hscale=40 vscale=40}\caption[Pure Intersection Zone Capture Method]{ -Pure Intersection Chain with an implicit Enclosure -\label{fig:picwaie}} +\begin{figure}[h] + \centering + \includegraphics[width=200pt,bb=0 0 452 290,keepaspectratio=true]{fzd/pice.jpg} + % pice.jpg: 628x403 pixel, 100dpi, 15.95x10.24 cm, bb=0 0 452 290 + \caption{Pure Intersection Chain with implicit enclosure} + \label{fig:picwaie} \end{figure} +% \begin{figure} +% \vskip 6cm +% \special{psfile=fzd/pice.ps hoffset=0 voffset=0 hscale=40 vscale=40}\caption[Pure Intersection Zone Capture Method]{ +% Pure Intersection Chain with an implicit Enclosure +% \label{fig:picwaie}} +% \end{figure} + \subsubsection {Determining Enclosure } When a contour completely encloses another contour, it has an enclosing relationship. @@ -470,21 +510,37 @@ intersections and red for enclosures for the examples that follow. Figure \ref{fig:pig1} Shows a CDG for the diagram in figure \ref{fig:pic}. Note that traversing through this graph reveals all the intersections, and that there are no loops in the traversal, meaning that no multiple intersections exist. -\begin{figure} -\vskip 6cm -\special{psfile=fzd/pig1.ps hoffset=0 voffset=0 hscale=40 vscale=40}\caption[Pure Intersection Zone Capture Method]{ -Coloured Directed Graph of Pure Intersection Chain -\label{fig:pig1}} + +\begin{figure}[h] + \centering + \includegraphics[width=200pt,bb=0 0 361 163]{fzd/pig1.jpg} + % pig1.jpg: 502x227 pixel, 100dpi, 12.75x5.77 cm, bb=0 0 361 163 + \caption{Coloured Directed Graph of Pure Intersection Chain} + \label{fig:pig1} \end{figure} +% +% \begin{figure} +% \vskip 6cm +% \special{psfile=fzd/pig1.ps hoffset=0 voffset=0 hscale=40 vscale=40}\caption[Pure Intersection Zone Capture Method]{ +% Coloured Directed Graph of Pure Intersection Chain +% \label{fig:pig1}} +% \end{figure} - -\begin{figure} -\vskip 6cm -\special{psfile=fzd/pig2.ps hoffset=0 voffset=0 hscale=40 vscale=40}\caption[Pure Intersection Zone Capture Method]{ -Coloured Directed Graph of Pure Intersection Chain with an implicit Enclosure -\label{fig:pig2}} +\begin{figure}[h] + \centering + \includegraphics[width=200pt,bb=0 0 352 307,keepaspectratio=true]{fzd/pig2.jpg} + % pig2.jpg: 489x427 pixel, 100dpi, 12.42x10.85 cm, bb=0 0 352 307 + \caption{Coloured Directed Graph of Pure Intersection Chain with an implicit enclosure} + \label{fig:pig2} \end{figure} +% +% \begin{figure} +% \vskip 6cm +% \special{psfile=fzd/pig2.ps hoffset=0 voffset=0 hscale=40 vscale=40}\caption[Pure Intersection Zone Capture Method]{ +% Coloured Directed Graph of Pure Intersection Chain with an implicit Enclosure +% \label{fig:pig2}} +% \end{figure} \subsubsection { Graph Traversal } @@ -538,31 +594,53 @@ Multiple intersections due to enclosure are discovered by traversing the enclosure relations. \par -\label{fzd} -\begin{figure} -\vskip 6cm -\special{psfile=fzd/abc1.eps hoffset=0 voffset=0 hscale=60 vscale=60}\caption[Pure Intersection Zone Capture Method]{ -Circular reference with multiple zone -\label{fig:abc1}} +\begin{figure}[h] + \centering + \includegraphics[width=200pt,bb=0 0 375 377,keepaspectratio=true]{fzd/abc1.jpg} + % abc1.jpg: 521x524 pixel, 100dpi, 13.23x13.31 cm, bb=0 0 375 377 + \caption{circular Reference with multiple zone} + \label{fig:abc1} \end{figure} +% +% \label{fzd} +% \begin{figure} +% \vskip 6cm +% \special{psfile=fzd/abc1.eps hoffset=0 voffset=0 hscale=60 vscale=60}\caption[Pure Intersection Zone Capture Method]{ +% Circular reference with multiple zone +% \label{fig:abc1}} +% \end{figure} - -\label{fzd} -\begin{figure} -\vskip 6cm -\special{psfile=fzd/abc2.eps hoffset=0 voffset=-20 hscale=60 vscale=60}\caption[Pure Intersection Zone Capture Method]{ -Circular reference without multiple zone -\label{fig:abc2}} +\begin{figure}[h] + \centering + \includegraphics[width=200pt,bb=0 0 390 371]{fzd/abc2.jpg} + % abc2.jpg: 542x515 pixel, 100dpi, 13.77x13.08 cm, bb=0 0 390 371 + \caption{Circular reference without multiple zone} + \label{fig:abc2} \end{figure} +% +% \label{fzd} +% \begin{figure} +% \vskip 6cm +% \special{psfile=fzd/abc2.eps hoffset=0 voffset=-20 hscale=60 vscale=60}\caption[Pure Intersection Zone Capture Method]{ +% Circular reference without multiple zone +% \label{fig:abc2}} +% \end{figure} - -\label{fzd} -\begin{figure} -\vskip 6cm -\special{psfile=fzd/abcgraph.ps hoffset=0 voffset=-10 hscale=30 vscale=30}\caption[Pure Intersection Zone Capture Method]{ -Pure Intersection Zone and Enclosure -\label{fig:abcgraph}} +\begin{figure}[h] + \centering + \includegraphics[width=200pt,bb=0 0 642 482,keepaspectratio=true]{fzd/abcgraph.jpg} + % abcgraph.jpg: 891x669 pixel, 100dpi, 22.63x16.99 cm, bb=0 0 642 482 + \caption{Pure Intersection Zone and Enclosure} + \label{fig:abdgraph} \end{figure} +% +% \label{fzd} +% \begin{figure} +% \vskip 6cm +% \special{psfile=fzd/abcgraph.ps hoffset=0 voffset=-10 hscale=30 vscale=30}\caption[Pure Intersection Zone Capture Method]{ +% Pure Intersection Zone and Enclosure +% \label{fig:abcgraph}} +% \end{figure} In order to examine multiple intersections, the spanning tree from the contour under inspection must be recursively iterated (only within the pure intersection chain it belongs to i.e. within the subset $G$). @@ -767,12 +845,21 @@ This diagram therefore requires $128 + 2.(9 + 9) \equiv 146 $ area compares. 2.N^{2} + \frac{N}{4}.(18) \endequation -\begin{figure} -\vskip 6cm -\special{psfile=fzd/tripples.ps hoffset=0 voffset=-10 hscale=40 vscale=40}\caption[Two Enclosed Venn 3]{ -Two Enclosed Ven 3 -\label{fig:tev3}} + +\begin{figure}[h] + \centering + \includegraphics[width=200pt,bb=0 0 585 410,keepaspectratio=true]{fzd/tripples.jpg} + % tripples.jpg: 813x569 pixel, 100dpi, 20.65x14.45 cm, bb=0 0 585 410 + \caption{Two Enclosed Venn 3} + \label{fig:tev3} \end{figure} +% +% \begin{figure} +% \vskip 6cm +% \special{psfile=fzd/tripples.ps hoffset=0 voffset=-10 hscale=40 vscale=40}\caption[Two Enclosed Venn 3]{ +% Two Enclosed Ven 3 +% \label{fig:tev3}} +% \end{figure} \subsection {Extrapolating for N Contour Diagrams} @@ -784,21 +871,36 @@ against diagram complexity can be drawn. These graphs clearly shows that the fzd method efficiency increases with the number of contours in a diagram. - -\begin{figure} -\vskip 6cm -\special{psfile=fzd/perf1.ps hoffset=0 voffset=-10 hscale=60 vscale=60}\caption[Performance Comparison]{ -Perfomance from 0 to 8 contours -\label{fig:perf1}} +\begin{figure}[h] + \centering + \includegraphics[width=200pt,bb=0 0 414 308,keepaspectratio=true]{fzd/perf1.jpg} + % perf1.jpg: 575x428 pixel, 100dpi, 14.60x10.87 cm, bb=0 0 414 308 + \caption{Performace from 0 to 8 contours} + \label{fig:perf1} \end{figure} -\begin{figure} -\vskip 6cm -\special{psfile=fzd/perf2.ps hoffset=0 voffset=-10 hscale=60 vscale=60}\caption[Performance Comparison]{ -Performance from 8 to 64 contours -\label{fig:perf2}} +% \begin{figure} +% \vskip 6cm +% \special{psfile=fzd/perf1.ps hoffset=0 voffset=-10 hscale=60 vscale=60}\caption[Performance Comparison]{ +% Perfomance from 0 to 8 contours +% \label{fig:perf1}} +% \end{figure} + +\begin{figure}[h] + \centering + \includegraphics[width=200pt,bb=0 0 414 308,keepaspectratio=true]{fzd/perf2.jpg} + % perf2.jpg: 575x428 pixel, 100dpi, 14.60x10.87 cm, bb=0 0 414 308 + \caption{Performace from 8 to 64 contours} + \label{fig:perf2} \end{figure} +% \begin{figure} +% \vskip 6cm +% \special{psfile=fzd/perf2.ps hoffset=0 voffset=-10 hscale=60 vscale=60}\caption[Performance Comparison]{ +% Performance from 8 to 64 contours +% \label{fig:perf2}} +% \end{figure} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % ALREADY DONE ! Obscuration is now only looked at within pure intersection chains. diff --git a/fzd/perf1.jpg b/fzd/perf1.jpg new file mode 100644 index 0000000..03925bd Binary files /dev/null and b/fzd/perf1.jpg differ diff --git a/fzd/perf2.jpg b/fzd/perf2.jpg new file mode 100644 index 0000000..287f895 Binary files /dev/null and b/fzd/perf2.jpg differ diff --git a/fzd/pic.jpg b/fzd/pic.jpg new file mode 100644 index 0000000..cf5dd43 Binary files /dev/null and b/fzd/pic.jpg differ diff --git a/fzd/pice.jpg b/fzd/pice.jpg new file mode 100644 index 0000000..55aca66 Binary files /dev/null and b/fzd/pice.jpg differ diff --git a/fzd/piee.jpg b/fzd/piee.jpg new file mode 100644 index 0000000..c47ed13 Binary files /dev/null and b/fzd/piee.jpg differ diff --git a/fzd/pig1.jpg b/fzd/pig1.jpg new file mode 100644 index 0000000..2cea854 Binary files /dev/null and b/fzd/pig1.jpg differ diff --git a/fzd/pig2.jpg b/fzd/pig2.jpg new file mode 100644 index 0000000..68a705c Binary files /dev/null and b/fzd/pig2.jpg differ diff --git a/fzd/simple.jpg b/fzd/simple.jpg new file mode 100644 index 0000000..42445af Binary files /dev/null and b/fzd/simple.jpg differ diff --git a/fzd/tripples.jpg b/fzd/tripples.jpg new file mode 100644 index 0000000..40d7d66 Binary files /dev/null and b/fzd/tripples.jpg differ