\begin{itemize}

\item Question: Discuss the basic principles of:
	\begin{enumerate}
	\item probabilistic algorithms
	\item neural algorithms
	\end{enumerate}
	Give examples if you can

\item Answer:
	\begin{enumerate}
	\item Probabilistic algorithms -- There are 2 basic kinds of
	probabilistic algorithms that are typically covered (some texts
	split it a little finer).  They are typically called Las Vegas
	Algorithms, and Monte Carlo Algorithms.
		\begin{itemize}
		\item Las Vegas --
			Only returns the correct answer, but it may
			never return (probability 1-p).
		\item Monte Carlo --
			returns an answer every time which may or may
			not be correct.

			Example:
			\begin{verbatim}
			int MC_Majority(int N[],int size){
			   int count, num, i;
			  
			   count = 0; 
			   num = N[Uniform(0,size)];
			   for(i=0;i<=size,i++)
			      if(N[i] == num) count++;
			   if(count >= size/2) 
			      return(TRUE);
			   else
			      return(FALSE);
			}
			\end{verbatim}
			Analysis of code:  if there is a majority
			element, it returns TRUE with probability $>
			\frac{1}{2}$.  If there is not a majority, it
			returns false all the time.

		\end{itemize}

	\item Neural algorithms -- Typically these are though of as a
		circuit implementation of neuron/synapsis connections.
		Neurons are represented as Amplifiers, and synapsis are
		represented as connections between them.  These are
		very closely related to Boltzman Machines (Simulated
		Annealing is an implementation of a Boltzman machine)
		in that the Energy function is the basis for these (and
		Genetic Algorithms).

	\end{enumerate}

\end{itemize}
