\documentclass[12pt]{article}

\usepackage{multirow}
\usepackage{fullpage}
\usepackage{graphicx}
\usepackage[colorlinks=true,urlcolor=blue]{hyperref}


\begin{document}

\title{
Assignment 1
}
\author{CS 790K: Genetic Algorithms \\
  Fall 2021 \\
  Max Score: 100 \\
}

\date{}
%\input{psfig}

\maketitle

\section*{Black box function optimization}

\subsection*{Hill climbing or gradient ascent }
Write a simple hill climber implementing along the lines of the
\href{https://docs.google.com/presentation/d/1C2dW2oSWR-fo6mpgFFguVTZtTC7e79xidcDP4POcgg0/edit?usp=sharing}{pseudocode
  from class}.

Solve the following black box problems using your hill climber. The
black boxes are provided as precompiled .o files that implement an
{\tt eval} function. Both {\tt eval} functions take a 100 length array
of integers (ints) and return a double between 0 and 100
inclusive. Only the values $0$ and $1$ are allowed as the members of
the integer array. Solving the problem means setting each element of
the array to either a 0 or a 1 such that the evaluation function
returns $100$.


\begin{itemize}
\item \href{https://www.cse.unr.edu/~sushil/class/gas/assignments/as1/eval.o}{First black box evaluation function }. 
  \item \href{https://www.cse.unr.edu/~sushil/class/gas/assignments/as1/eval1.o}{Second black box evaluation function}. 
\end{itemize}

\section*{Easy Function }
Write a function that is easy for your hill climber to optimize. Implement this function, run your hill climber on it and show that the function is ``easy'' for your hill climber to optimize. Make the function publicly available.

\section*{Hard Function }
Write a function that is difficult or impossible for your hill climber to optimize. Implement this function, run your hill climber on it and show that the function is hard or impossible for your hill climber to find the global optimum. Make the function publicly available.

\section*{Questions)}

Describe your hill climber (pseudo-code) and discuss its strengths and
weaknesses. When describing your algorithm's strengths, use your
``easy'' evaluation function as an illustrative example to ground your
discussion. Similarly, use your ``hard'' or ``deceptive'' function to
explain your algorithm's weaknesses. Specifically, what assumptions
made by your hill climber are being violated by your hard function?



\section*{Turning in your assignment}

Write a report that contains the following sections

\begin{enumerate}

\item Answer the question above (18 points)
\item Provide links to your easy and hard functions (2 points)
\item For each of the four evaluation functions (20 points each), provide
  \begin{enumerate}
  \item The average wall clock time taken to find an optimum (4 points)
  \item The average number of evaluations needed to find an optimum (4 points)
  \item The string (or vector) corresponding to the optimum (4 points)
  \item The reliability of your hill-climber (4 points)
  \item The quality of your hill-climber (4 points)
  \end{enumerate}
  
\item 
  Use canvas to turnin in this assignment report. 
\item 
  Your FULL name and email address, should be on all submitted files.
  
\end{enumerate}

Note, that I do not require source code or transcripts of running code. Email me with questions.
\end{document}
