\documentclass[10pt]{extarticle} \usepackage[english]{babel} \usepackage{graphicx} \usepackage{framed} \usepackage[normalem]{ulem} \usepackage{indentfirst} \usepackage{amsmath,amsthm,amssymb,amsfonts} \usepackage[italicdiff]{physics} \usepackage[T1]{fontenc} %\usepackage{pifont} %For unusual symbols %\usepackage{mathdots} %For unusual combinations of dots \usepackage{wrapfig} \usepackage{lmodern,mathrsfs} \usepackage[inline,shortlabels]{enumitem} \setlist{topsep=2pt,itemsep=2pt,parsep=0pt,partopsep=0pt} \usepackage[dvipsnames]{xcolor} \usepackage[utf8]{inputenc} \usepackage[a4paper, top=0.5in,bottom=0.2in, left=0.5in, right=0.5in, footskip=0.3in, includefoot]{geometry} \usepackage[most]{tcolorbox} \usepackage{tikz,tikz-3dplot,tikz-cd,tkz-tab,tkz-euclide,pgf,pgfplots} \pgfplotsset{compat=newest} \usepackage{multicol} \usepackage[bottom,multiple]{footmisc} %ensures footnotes are at the bottom of the page, and separates footnotes by a comma if they are adjacent \usepackage[backend=bibtex,style=numeric]{biblatex} \renewcommand*{\finalnamedelim}{\addcomma\addspace} %forces authors' names to be separated by comma, instead of "and" \addbibresource{bibliography} \usepackage{hyperref} \usepackage[nameinlink]{cleveref} %nameinlink ensures that the entire element is clickable in the pdf, not just the number \newcommand{\remind}[1]{\textcolor{red}{\textbf{#1}}} %To remind me of unfinished work to fix later \newcommand{\hide}[1]{} %To hide large blocks of code without using % symbols \newcommand{\ep}{\varepsilon} \newcommand{\vp}{\varphi} \newcommand{\lam}{\lambda} \newcommand{\Lam}{\Lambda} %\newcommand{\abs}[1]{\ensuremath{\left\lvert#1\right\rvert}} % This clashes with the physics package %\newcommand{\norm}[1]{\ensuremath{\left\lVert#1\right\rVert}} % This clashes with the physics package \renewcommand{\ip}[1]{\ensuremath{\left\langle#1\right\rangle}} \newcommand{\floor}[1]{\ensuremath{\left\lfloor#1\right\rfloor}} \newcommand{\ceil}[1]{\ensuremath{\left\lceil#1\right\rceil}} \newcommand{\A}{\mathbb{A}} \newcommand{\B}{\mathbb{B}} \newcommand{\C}{\mathbb{C}} \newcommand{\D}{\mathbb{D}} \newcommand{\E}{\mathbb{E}} \newcommand{\F}{\mathbb{F}} \newcommand{\K}{\mathbb{K}} \newcommand{\N}{\mathbb{N}} \newcommand{\Q}{\mathbb{Q}} \newcommand{\R}{\mathbb{R}} \newcommand{\T}{\mathbb{T}} \newcommand{\X}{\mathbb{X}} \newcommand{\Y}{\mathbb{Y}} \newcommand{\Z}{\mathbb{Z}} \newcommand{\As}{\mathcal{A}} \newcommand{\Bs}{\mathcal{B}} \newcommand{\Cs}{\mathcal{C}} \newcommand{\Ds}{\mathcal{D}} \newcommand{\Es}{\mathcal{E}} \newcommand{\Fs}{\mathcal{F}} \newcommand{\Gs}{\mathcal{G}} \newcommand{\Hs}{\mathcal{H}} \newcommand{\Is}{\mathcal{I}} \newcommand{\Js}{\mathcal{J}} \newcommand{\Ks}{\mathcal{K}} \newcommand{\Ls}{\mathcal{L}} \newcommand{\Ms}{\mathcal{M}} \newcommand{\Ns}{\mathcal{N}} \newcommand{\Os}{\mathcal{O}} \newcommand{\Ps}{\mathcal{P}} \newcommand{\Qs}{\mathcal{Q}} \newcommand{\Rs}{\mathcal{R}} \newcommand{\Ss}{\mathcal{S}} \newcommand{\Ts}{\mathcal{T}} \newcommand{\Us}{\mathcal{U}} \newcommand{\Vs}{\mathcal{V}} \newcommand{\Ws}{\mathcal{W}} \newcommand{\Xs}{\mathcal{X}} \newcommand{\Ys}{\mathcal{Y}} \newcommand{\Zs}{\mathcal{Z}} \newcommand{\ab}{\textbf{a}} \newcommand{\bb}{\textbf{b}} \newcommand{\cb}{\textbf{c}} \newcommand{\db}{\textbf{d}} \newcommand{\ub}{\textbf{u}} %\renewcommand{\vb}{\textbf{v}} % This clashes with the physics package (the physics package already defines the \vb command) \newcommand{\wb}{\textbf{w}} \newcommand{\xb}{\textbf{x}} \newcommand{\yb}{\textbf{y}} \newcommand{\zb}{\textbf{z}} \newcommand{\Ab}{\textbf{A}} \newcommand{\Bb}{\textbf{B}} \newcommand{\Cb}{\textbf{C}} \newcommand{\Db}{\textbf{D}} \newcommand{\eb}{\textbf{e}} \newcommand{\ex}{\textbf{e}_x} \newcommand{\ey}{\textbf{e}_y} \newcommand{\ez}{\textbf{e}_z} \newcommand{\abar}{\overline{a}} \newcommand{\bbar}{\overline{b}} \newcommand{\cbar}{\overline{c}} \newcommand{\dbar}{\overline{d}} \newcommand{\ubar}{\overline{u}} \newcommand{\vbar}{\overline{v}} \newcommand{\wbar}{\overline{w}} \newcommand{\xbar}{\overline{x}} \newcommand{\ybar}{\overline{y}} \newcommand{\zbar}{\overline{z}} \newcommand{\Abar}{\overline{A}} \newcommand{\Bbar}{\overline{B}} \newcommand{\Cbar}{\overline{C}} \newcommand{\Dbar}{\overline{D}} \newcommand{\Ubar}{\overline{U}} \newcommand{\Vbar}{\overline{V}} \newcommand{\Wbar}{\overline{W}} \newcommand{\Xbar}{\overline{X}} \newcommand{\Ybar}{\overline{Y}} \newcommand{\Zbar}{\overline{Z}} \newcommand{\Aint}{A^\circ} \newcommand{\Bint}{B^\circ} \newcommand{\limk}{\lim_{k\to\infty}} \newcommand{\limm}{\lim_{m\to\infty}} \newcommand{\limn}{\lim_{n\to\infty}} \newcommand{\limx}[1][a]{\lim_{x\to#1}} \newcommand{\liminfm}{\liminf_{m\to\infty}} \newcommand{\limsupm}{\limsup_{m\to\infty}} \newcommand{\liminfn}{\liminf_{n\to\infty}} \newcommand{\limsupn}{\limsup_{n\to\infty}} \newcommand{\sumkn}{\sum_{k=1}^n} \newcommand{\sumk}[1][1]{\sum_{k=#1}^\infty} \newcommand{\summ}[1][1]{\sum_{m=#1}^\infty} \newcommand{\sumn}[1][1]{\sum_{n=#1}^\infty} \newcommand{\emp}{\varnothing} \newcommand{\exc}{\backslash} \newcommand{\sub}{\subseteq} \newcommand{\sups}{\supseteq} \newcommand{\capp}{\bigcap} \newcommand{\cupp}{\bigcup} \newcommand{\kupp}{\bigsqcup} \newcommand{\cappkn}{\bigcap_{k=1}^n} \newcommand{\cuppkn}{\bigcup_{k=1}^n} \newcommand{\kuppkn}{\bigsqcup_{k=1}^n} \newcommand{\cappk}[1][1]{\bigcap_{k=#1}^\infty} \newcommand{\cuppk}[1][1]{\bigcup_{k=#1}^\infty} \newcommand{\cappm}[1][1]{\bigcap_{m=#1}^\infty} \newcommand{\cuppm}[1][1]{\bigcup_{m=#1}^\infty} \newcommand{\cappn}[1][1]{\bigcap_{n=#1}^\infty} \newcommand{\cuppn}[1][1]{\bigcup_{n=#1}^\infty} \newcommand{\kuppk}[1][1]{\bigsqcup_{k=#1}^\infty} \newcommand{\kuppm}[1][1]{\bigsqcup_{m=#1}^\infty} \newcommand{\kuppn}[1][1]{\bigsqcup_{n=#1}^\infty} \newcommand{\cappa}{\bigcap_{\alpha\in I}} \newcommand{\cuppa}{\bigcup_{\alpha\in I}} \newcommand{\kuppa}{\bigsqcup_{\alpha\in I}} \newcommand{\Rx}{\overline{\mathbb{R}}} \newcommand{\dx}{\,dx} \newcommand{\dy}{\,dy} \newcommand{\dt}{\,dt} \newcommand{\dax}{\,d\alpha(x)} \newcommand{\dbx}{\,d\beta(x)} \DeclareMathOperator{\glb}{\text{glb}} \DeclareMathOperator{\lub}{\text{lub}} \newcommand{\xh}{\widehat{x}} \newcommand{\yh}{\widehat{y}} \newcommand{\zh}{\widehat{z}} \newcommand{\<}{\langle} \renewcommand{\>}{\rangle} \renewcommand{\iff}{\Leftrightarrow} \DeclareMathOperator{\im}{\text{im}} \let\spn\relax\let\Re\relax\let\Im\relax \DeclareMathOperator{\spn}{\text{span}} \DeclareMathOperator{\Re}{\text{Re}} \DeclareMathOperator{\Im}{\text{Im}} \DeclareMathOperator{\diag}{\text{diag}} \newtheoremstyle{mystyle}{}{}{}{}{\sffamily\bfseries}{.}{ }{} \newtheoremstyle{cstyle}{}{}{}{}{\sffamily\bfseries}{.}{ }{\thmnote{#3}} \makeatletter \renewenvironment{proof}[1][\proofname] {\par\pushQED{\qed}{\normalfont\sffamily\bfseries\topsep6\p@\@plus6\p@\relax #1\@addpunct{.} }}{\popQED\endtrivlist\@endpefalse} \makeatother \newcommand{\coolqed}[1]{\includegraphics[width=#1cm]{sunglasses_emoji.png}} %Defines the new QED symbol \renewcommand{\qedsymbol}{\coolqed{0.32}} %Implements the new QED symbol \theoremstyle{mystyle}{\newtheorem{definition}{Definition}[section]} \theoremstyle{mystyle}{\newtheorem{proposition}[definition]{Proposition}} \theoremstyle{mystyle}{\newtheorem{theorem}[definition]{Theorem}} \theoremstyle{mystyle}{\newtheorem{lemma}[definition]{Lemma}} \theoremstyle{mystyle}{\newtheorem{corollary}[definition]{Corollary}} \theoremstyle{mystyle}{\newtheorem*{remark}{Remark}} \theoremstyle{mystyle}{\newtheorem*{remarks}{Remarks}} \theoremstyle{mystyle}{\newtheorem*{example}{Example}} \theoremstyle{mystyle}{\newtheorem*{examples}{Examples}} \theoremstyle{definition}{\newtheorem*{exercise}{Exercise}} \theoremstyle{cstyle}{\newtheorem*{cthm}{}} %Warning environment \newtheoremstyle{warn}{}{}{}{}{\normalfont}{}{ }{} \theoremstyle{warn} \newtheorem*{warning}{\warningsign{0.2}\relax} %Symbol for the warning environment, designed to be easily scalable \newcommand{\warningsign}[1]{\tikz[scale=#1,every node/.style={transform shape}]{\draw[-,line width={#1*0.8mm},red,fill=yellow,rounded corners={#1*2.5mm}] (0,0)--(1,{-sqrt(3)})--(-1,{-sqrt(3)})--cycle; \node at (0,-1) {\fontsize{48}{60}\selectfont\bfseries!};}} \tcolorboxenvironment{definition}{boxrule=0pt,boxsep=0pt,colback={red!10},left=8pt,right=8pt,enhanced jigsaw, borderline west={2pt}{0pt}{red},sharp corners,before skip=10pt,after skip=10pt,breakable} \tcolorboxenvironment{proposition}{boxrule=0pt,boxsep=0pt,colback={Orange!10},left=8pt,right=8pt,enhanced jigsaw, borderline west={2pt}{0pt}{Orange},sharp corners,before skip=10pt,after skip=10pt,breakable} \tcolorboxenvironment{theorem}{boxrule=0pt,boxsep=0pt,colback={blue!10},left=8pt,right=8pt,enhanced jigsaw, borderline west={2pt}{0pt}{blue},sharp corners,before skip=10pt,after skip=10pt,breakable} \tcolorboxenvironment{lemma}{boxrule=0pt,boxsep=0pt,colback={Cyan!10},left=8pt,right=8pt,enhanced jigsaw, borderline west={2pt}{0pt}{Cyan},sharp corners,before skip=10pt,after skip=10pt,breakable} \tcolorboxenvironment{corollary}{boxrule=0pt,boxsep=0pt,colback={violet!10},left=8pt,right=8pt,enhanced jigsaw, borderline west={2pt}{0pt}{violet},sharp corners,before skip=10pt,after skip=10pt,breakable} \tcolorboxenvironment{proof}{boxrule=0pt,boxsep=0pt,blanker,borderline west={2pt}{0pt}{CadetBlue!80!white},left=8pt,right=8pt,sharp corners,before skip=10pt,after skip=10pt,breakable} \tcolorboxenvironment{remark}{boxrule=0pt,boxsep=0pt,blanker,borderline west={2pt}{0pt}{Green},left=8pt,right=8pt,before skip=10pt,after skip=10pt,breakable} \tcolorboxenvironment{remarks}{boxrule=0pt,boxsep=0pt,blanker,borderline west={2pt}{0pt}{Green},left=8pt,right=8pt,before skip=10pt,after skip=10pt,breakable} \tcolorboxenvironment{example}{boxrule=0pt,boxsep=0pt,blanker,borderline west={2pt}{0pt}{Black},left=8pt,right=8pt,sharp corners,before skip=10pt,after skip=10pt,breakable} \tcolorboxenvironment{examples}{boxrule=0pt,boxsep=0pt,blanker,borderline west={2pt}{0pt}{Black},left=8pt,right=8pt,sharp corners,before skip=10pt,after skip=10pt,breakable} \tcolorboxenvironment{cthm}{boxrule=0pt,boxsep=0pt,colback={gray!10},left=8pt,right=8pt,enhanced jigsaw, borderline west={2pt}{0pt}{gray},sharp corners,before skip=10pt,after skip=10pt,breakable} %align and align* environments with inline size \newenvironment{talign}{\let\displaystyle\textstyle\align}{\endalign} \newenvironment{talign*}{\let\displaystyle\textstyle\csname align*\endcsname}{\endalign} \usepackage[explicit]{titlesec} \titleformat{\section}{\fontsize{24}{30}\sffamily\bfseries}{\thesection}{20pt}{#1} \titleformat{\subsection}{\fontsize{16}{18}\sffamily\bfseries}{\thesubsection}{12pt}{#1} \titleformat{\subsubsection}{\fontsize{10}{12}\sffamily\large\bfseries}{\thesubsubsection}{8pt}{#1} \titlespacing*{\section}{0pt}{5pt}{5pt} \titlespacing*{\subsection}{0pt}{5pt}{5pt} \titlespacing*{\subsubsection}{0pt}{5pt}{5pt} %\newcommand{\sectionbreak}{\clearpage} %Start every section on a new page \newcommand{\Disp}{\displaystyle} \newcommand{\qe}{\hfill\(\bigtriangledown\)} \DeclareMathAlphabet\mathbfcal{OMS}{cmsy}{b}{n} \setlength{\parindent}{0.2in} \setlength{\parskip}{0pt} \setlength{\columnseprule}{0pt} \title{\huge\sffamily\bfseries A Fun Template} \author{\Large\sffamily Senan Sekhon} \date{\sffamily October 4, 2020} \begin{document} \setlength{\abovedisplayskip}{3pt} \setlength{\belowdisplayskip}{3pt} \setlength{\abovedisplayshortskip}{0pt} \setlength{\belowdisplayshortskip}{0pt} \maketitle %Custom colors for different environments \definecolor{contcol1}{HTML}{72E094} \definecolor{contcol2}{HTML}{24E2D6} \definecolor{convcol1}{HTML}{C0392B} \definecolor{convcol2}{HTML}{8E44AD} \begin{tcolorbox}[title=Contents, fonttitle=\huge\sffamily\bfseries\selectfont,interior style={left color=contcol1!40!white,right color=contcol2!40!white},frame style={left color=contcol1!80!white,right color=contcol2!80!white},coltitle=black,top=2mm,bottom=2mm,left=2mm,right=2mm,drop fuzzy shadow,enhanced,breakable] \makeatletter \@starttoc{toc} \makeatother \end{tcolorbox} \vspace*{10mm} \begin{tcolorbox}[title=Conventions, fonttitle=\large\sffamily\bfseries\selectfont,interior style={left color=convcol1!40!white,right color=convcol2!40!white},frame style={left color=convcol1!80!white,right color=convcol2!80!white},coltitle=black,top=2mm,bottom=2mm,left=2mm,right=2mm,drop fuzzy shadow,enhanced,breakable] $\F$ denotes either $\R$ or $\C$.\\ $\N$ denotes the set $\{1,2,3,...\}$ of natural numbers (excluding $0$). \end{tcolorbox} \newpage \section{Sample Chapter} Let's dive right in! \subsection{Some Definitions} \begin{definition} The \textbf{derivative} of a function $f:I\to\R$ at $a\in I$ is given by: \begin{equation*} f'(x)=\limx\frac{f(x)-f(a)}{x-a} \end{equation*} \end{definition} \begin{center} You know those awesome commutative diagrams? \begin{tikzcd} A \arrow[r,"p"] \arrow[d,red,"q"'] & B \arrow[d,"r" red] \\ C \arrow[r,red,"s"' blue] & D \end{tikzcd} The derivative has \emph{nothing} to do with them! \end{center} \begin{proposition}\label{diffcont} If $f$ is differentiable at $a$, then $f$ is continuous at $a$. \end{proposition} \begin{proof} Exercise (but only because this is a template). \end{proof} The converse of \Cref{diffcont} is not true in general. \begin{examples}\leavevmode % This is needed to start the list in the next line so it won't be misaligned \begin{enumerate} \item $f(x)=\abs{x}$ \item $f(x)=\begin{cases} \sin(x) & x\ge 0 \\ 0 & x<0 \end{cases}$ \end{enumerate} \end{examples} \begin{theorem} The following statements are true: \begin{enumerate} \item First statement \item Second statement \end{enumerate} \end{theorem} \begin{proof}% For some reason, the proof environment does not need \leavevmode \begin{enumerate} \item Trivial. \item Trivial.\qedhere % qedhere is to place the qed symbol here instead of in the next line \end{enumerate} \end{proof} \begin{corollary} We are both very lucky to have each other as a collaborator. \end{corollary} \begin{proof} We simply note that: \begin{equation*} \frac{1}{1}+\frac{1}{1}\gg\frac{1}{1} \qedhere \end{equation*} \end{proof} \begin{remark} This corollary is also obvious from empirical evidence. \end{remark} \begin{lemma} $(a+b)^2=a^2+2ab+b^2$ \end{lemma} \begin{proof} Expand the left side. \end{proof} \begin{remarks}\leavevmode \begin{enumerate} \item It's also kind of obvious. \item No extra points for guessing what $(a-b)^2$ is. \end{enumerate} \end{remarks} \begin{example} $(2+4)^2=2^2+2\cdot 2\cdot 4+4^2=36$ \end{example} \begin{theorem}[Pythagoras' Theorem]\label{pythagoras} If $c$ is the hypotenuse of a right triangle and $a$ and $b$ are the other two sides, then $a^2+b^2=c^2$. \end{theorem} \begin{proof} Draw a picture and convince yourself. \end{proof} \hyperref[pythagoras]{Pythagoras' theorem} helps motivate the study of metric spaces, which you can learn about in \cite{sekhon}.\\ A lot of nice integrals can be computed using the residue theorem, see \cite[Section 5.2]{taylor}. \newpage \appendix \section{Bonus Material} The \verb!talign! and \verb!talign*! environments work like the \verb!align! and \verb!align*! environments, except they render equations in inline size. For example, \verb!\begin{align*}...\end{align*}! yields: \begin{align*} \sumn\frac{1}{n^2}=\frac{\pi^2}{6} \end{align*} While \verb!\begin{talign*}...\end{talign*}! yields: \begin{talign*} \sumn\frac{1}{n^2}=\frac{\pi^2}{6} \end{talign*} As usual, the purpose of \verb!*! is to prevent numbering of the equation.\\ Some commands, like \verb!\sumn!, can be used with or without a starting value (the default starting value is 1). For example, \verb!$\sumn\frac{1}{n^2}$! yields $\sumn\frac{1}{n^2}$, while \verb!$\sumn[69]\frac{1}{n^2}$! yields $\sumn[69]\frac{1}{n^2}$. This can be used in inline mode as well as display mode. \newpage \section{Combinatorial Optimization} previous chapters: classical state-space search - find action sequence (path) from initial to goal state - difficulty: large number of states (“state explosion”) next chapters: combinatorial optimization $\rightsquigarrow$ similar scenario, but: - no actions or transitions - don’t search for path, but for configuration (“state”) with low cost/high quality German: Zustandsraumexplosion, kombinatorische Optimierung, Konfiguration \subsection{Intro and Hill-Climbing} \begin{definition}\label{cop} A \textbf{combinatorial optimization problem \emph{COP}} is given by a tuple $\langle C, S, opt, v\rangle$ consisting of: \begin{itemize} \item a finite set of (solution) \textbf{candidates} $C$ \item a finite set of \textbf{solutions} $S\subseteq C$ \item an \textbf{objective sense} $opt\in\{min,max\}$ \item an \textbf{objective function} $v:S\rightarrow \R$ \end{itemize} \textbf{Remarks:} "problem" here means "instance". Interesting COPs usually have to many candidates to enumerate explicitly. \end{definition} \begin{definition}\label{opt} Let $\Os = \langle C,S,opt,v\rangle$ be a COP. The \textbf{optimal solution quality} $v^*$ of $\Os$ is defined as $v^*= \mathsf{min/max}_{c\in S}v(c) | \ opt=\mathsf{min/max}$ (undefined if $S=\emptyset$). A solution $s$ of $\Os$ is called \textbf{optimal} if $v(s)=v^*$. \end{definition} \textbf{Algorithmic Problem we want to solve:} Find a \emph{solution} to a COP $\Os$ which is as close to $v^*$ as possible. \\ \textbf{Special cases:} \emph{pure search:} all sols same quality; finding any sol is hard to begin with; formal: $v$ is a constant function and $opt$ can be chosen arbitrarily. \emph{pure optimization:} all candidates are sols; difficulty is finding sol of high quality; formal: $S = C$. \\ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%% D1 CSP %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Constraint Satisfaction Problems} \subsection{Intro} \textbf{Summary:} {\color{red} Constrain Satisfaction} is the problem of finding an {\color{red}assignment} for a set of \emph{variables} from a given \emph{domain}, which satisfies a given set of \emph{constraints}. \begin{definition} \end{definition} \printbibliography \end{document}