%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Lachaise Assignment
% LaTeX Template
% Version 1.0 (26/6/2018)
%
% This template originates from:
% http://www.LaTeXTemplates.com
%
% Authors:
% Marion Lachaise & François Févotte
% Vel (vel@LaTeXTemplates.com)
%
% License:
% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentclass{article}
\input{structure.tex}

\title{CENG567: Homework \#1}
\author{Yiğit Sever}
\date{\today}

%----------------------------------------------------------------------------------------

\begin{document}

\maketitle

\section{Stable Matching}%
\label{sec:stable_matching}

% question a ✅ {{{1 %

\begin{question}%
    \label{q:1_a}
    Use \emph{Gale-Shapley} algorithm to find a stable matching for the following set of four colleges, four students and their preference lists.
\end{question}

\begin{commandline}[Gale-Shapley algorithm, from lecture slides, edited for the context]

    \begin{verbatim}
    Initialize each person to be free.
    while (some student is free and hasn't applied to every college) {
        Choose such a student m
        c = 1st college on m's list to whom m has not yet applied
        if (c is free)
            assign c to m for potential application (a)
        else if (c prefers m to their current applicant m')
            assign m and c for potential application, and m' to be free (b)
        else
            c rejects m (c)
    }
    \end{verbatim}

 \end{commandline}

A quick trace of the algorithm;

\begin{enumerate}
    \item $S_1$ is free;
        \begin{enumerate}
            \item applies to first college on their preference list $C_4$;
            \item $C_4$ is free so it accepts and is matched with $S_1$ (a).
        \end{enumerate}
    \item $S_2$ is free
        \begin{enumerate}
            \item applies to first college on their preference list; $C_1$
            \item $C_1$ is free so it accepts and is matched with $S_2$ (a).
        \end{enumerate}
    \item $S_3$ is free;
        \begin{enumerate}
            \item applies to first college on their preference list; $C_1$
            \item $C_1$ rejects $S_3$ because it prefers $S_2$ to $S_3$ (c).
            \item applies to second college on their preference list; $C_2$
            \item $C_2$ is free so it accepts and is matched with $S_3$ (a).
        \end{enumerate}
    \item $S_4$ is free;
        \begin{enumerate}
            \item applies to first college on their preference list; $C_4$
            \item $C_4$ rejects $S_4$ because it prefers $S_1$ to $S_4$ (c).
            \item applies to second college on their preference list; $C_3$
            \item $C_3$ is free so it accepts and is matched with $S_4$ (a).
        \end{enumerate}
        \item There are no more free students to match, algorithm terminates.
\end{enumerate}

The final matching and the answer to Question~\ref{sec:stable_matching}(a) is;

\begin{align*}
    S_1 &\rightarrow C_4 \\
    S_2 &\rightarrow C_1 \\
    S_3 &\rightarrow C_2 \\
    S_4 &\rightarrow C_3
\end{align*}

% 1}}} %

% question b ✅ {{{1 %

\begin{question}
    Find another stable matching with the same algorithm.
\end{question}

All executions of \emph{Gale-Shapley} yield the same stable matching (that is proposer-optimal) and cannot produce \emph{another} stable matching like the question text asks for.

% 1}}} %

% question c ✅ {{{1 %

\begin{question}
    Consider a pair of man $m$ and woman $w$ where $m$ has $w$ at the top of his preference list and $w$
    has $m$ at the top of her preference list. Does it always have to be the case that the pairing $(m, w)$ exist
    in every possible stable matching? If it is true, give a short explanation. Otherwise, give a counterexample.
\end{question}

\emph{Proof by contradiction}.
Assume that in the resulting matching of \emph{Gale-Shapley}, we have $S'$, where $m$ is matched with $w'$ and $w$ is matched with $m'$.

The definition of stable matching dictates that there is \emph{no incentive to exchange}, yet in $S'$ $m$ can trade up to $w$ since $m$ prefers $w$ to $w'$ and $w$ can trade up since $w$ prefers $m$ to $m'$.

$S'$ could not have occurred since men propose in accordance to their preference list, which $w$ is on top of for $m$ and no other men that may propose to $w$ can make $w$ switch since they are not more preffered than $m$.

% 1}}} %

% question d TODO {{{1 %

\begin{question}
    Give an instance of $n$ colleges, $n$ students, and their preference lists so that the Gale-Shapley algorithm requires only $O(n)$ iterations, and prove this fact.
\end{question}

% TODO: you abused n and now they're both fucked <05-11-20, yigit> %

Arrange the preference lists such as every $m^{\text{th}}$ student arranges their preference list such as;

\begin{equation}
    \label{eq:student_prefs}
    C_n, C_{n-1}, C_{n-2}, \dots, C_{1}
\end{equation}

Whereas every college can arrange their preference list as;

\begin{equation}
    \label{eq:college_prefs}
    S_n, S_{n-1}, S_{n-2}, \dots, S_{1}
\end{equation}

The arrangement in (\ref{eq:college_prefs}) is not crucial since no college will be given a chance to \enquote{trade up}.

Every proposer applies to colleges in decreasing order from their preference list.
For $n=1$, $S_1$ applies to $C_1$ and the algorithm terminates in $n=1$ steps.
For $n=k$, $S_1$ applies to $C_1$ which is free, $S_2$ applies to $C_2$ which is again free up to $S_k$ which can freely apply to $C_k$ and the algorithm terminates in $k$ steps after every student applied to the college on top of their preference list which was guaranteed to be free.

% 1}}} %

% question e TODO {{{1 %

\begin{question}
    Give another instance for which the algorithm requires $\Omega(n^{2})$ iterations (that is, it requires at least $cn^{2}$ iterations for some constant $0 < c \le 1)$, and prove this fact.
\end{question}

Arrange the preference lists such as every student arranges their preference \emph{exactly the same};

\begin{equation}
    \label{eq:student_prefs_2}
    C_1, C_2, \dots, C_{n}
\end{equation}

Whereas every college should arrange their preference list as;

\begin{equation}
    \label{eq:college_prefs_2}
    S_n, S_{n-1}, S_{n-2}, \dots, S_{1}
\end{equation}

% 1}}} %

\section{Stable Matching Variation}%
\label{sec:stable_matching_variation}

% stable matching question TODO {{{1 %

\begin{question}
    Consider a Stable Matching problem with men and women.
    Consider a woman $w$ where she prefers man $m$ to $m'$, but both $m$ and $m'$ are low on her list of preferences.
    Can it be the case that by switching the order of $m$ and $m'$ on her list of preferences (i.e., by falsely claiming that she prefers $m'$ to $m$) and running the algorithm with this modified preference list, $w$ will end up with a man $m''$ that she prefers to both $m$ and $m'$?
    Either give a proof that shows such an improvement is impossible, or give an example preference list for which an improvement for $w$ is possible.
\end{question}

TRUTH
Matching x with a (a)
Matching y with b (a)
z is rejected by a because x is more preffered (c)
z is rejected by b because y is more preffered (c)
Matching z with c (a)
[('x', 'a'), ('y', 'b'), ('z', 'c')]

LIE

Matching y with b (a)
Matching z with a (a)
x is rejected by a because z is more preffered (c)
Matching x with b, y is now free (b)
Matching y with a, z is now free (b)
z is rejected by b because x is more preffered (c)
Matching z with c (a)
[('x', 'b'), ('y', 'a'), ('z', 'c')]

% 1}}} %

\section{Asymptotics}%
\label{sec:asymptotics}

% asymptotics TODO {{{1 %

\begin{question}
    What is the running time of this algorithm as a function of n? Specify a function f such that the running time of the algorithm is $\Theta(f(n))$.
\end{question}


% 1}}} %

\section{Big $\mathcal{O}$ and $\Omega$}%
\label{sec:big_o_and_omega_}

% question a ALMOST DONE {{{1 %

\begin{question}
    Let $f(n)$ and $g(n)$ be asymptotically positive functions. Prove or disprove the following conjectures.
\end{question}

\begin{info}[]
    $f(n) = \mathcal{O}(g(n))$ implies $g(n) = \mathcal{O}(f(n))$
\end{info}

From the definition of Big $\mathcal{O}$ notation given in the lecture slides;

\begin{equation}%
    \label{eq:a_bigo}
    \exists ~ c > 0 \quad \text{and} \quad n_{0} \ge 0 \quad \mid \quad 0 \le f(n) \le c \cdot g(n) \quad \forall n \ge n_{0}
\end{equation}

If we rearrange the right hand side of the Proposition~\ref{eq:a_bigo};

\begin{equation*}%
    0 \le \frac{1}{c} f(n) \le g(n) \\
\end{equation*}

or simply,

\begin{equation}
    \label{eq:a_bio_rearranged}
    0 \le c' f(n) \le g(n)
\end{equation}

By the definition of Big $\mathcal{O}$ notation, in order for $g(n) = \mathcal{O}(f(n))$ to be true,

\begin{equation*}
    \exists ~ k > 0 \quad \text{and} \quad n_{0}' \ge 0 \quad \mid \quad 0 \le g(n) \le k \cdot f(n) \quad \forall n' \ge n_{0}'
\end{equation*}

Has to be true, yet from Equation~\ref{eq:a_bio_rearranged} we know that $f(n)$ multiplied by some constant $c'$ is strictly smaller than $g(n)$. The conjecture is \emph{false}.

\begin{info}[]
    $f(n) = \mathcal{O}((f(n))^{2})$
\end{info}

% TODO: this is dumb ask this <05-11-20, yigit> %

% https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/assignments/ps1sol.pdf

The question text states that $f(n)$ is a positive function.

By the definition of Big $\mathcal{O}$ notation, we have;

\begin{equation*}%
    \exists ~ c > 0 \quad \text{and} \quad n_{0} \ge 0 \mid ~ 0 \le f(n) \le c \cdot g(n) \quad \forall n \ge n_{0}
\end{equation*}

For $c > 1$ and $n_{0} > 1$ we have;

\begin{eqnarray*}%
    f(n) \le f(n)^{2} \quad \forall n \ge n_{0} \\
    g(n) = f(n)^{2} \\
    f(n) \le c\cdot g(n) \quad \forall n \ge n_{0}
\end{eqnarray*}

\begin{info}[]
    $f(n) + o(f(n)) = \Theta(f(n))$
\end{info}

From the definition of Big Theta notation, we are trying to prove a relation such that;

\begin{equation}%
    \label{eq:a_big_theta}
    0 \le c_{1} \cdot f(n) \le f(n) + o(f(n)) \le c_{2} \cdot f(n)
\end{equation}

First, let's give the little-o notation to remove $o(f(n))$ from Equation~\ref{eq:a_big_theta};

\begin{equation}%
    \label{eq:a_little_o}
    \forall ~ c > 0 \quad \exists ~ n_{0} > 0 \mid ~ 0 \le g(n) < c \cdot f(n) ~ \forall n \ge n_{0}
\end{equation}

So we can rewrite Equation~\ref{eq:a_big_theta} using Equation~\ref{eq:a_little_o};

\begin{equation}%
    \label{eq:a_rewritten}
    c_1 \cdot f(n) \le f(n) + g(n) \le c_2 \cdot f(n)
\end{equation}

It's trivial to pick $c_1 < 1$ to deal with the left hand side of the inequality;

\begin{equation*}
    f(n) \le f(n) + g(n)
\end{equation*}

For the right hand side, we can pick $n_{0} = 1$ and $c = 1$ in the Equation~\ref{eq:a_little_o}; keeping $g(n) < f(n)$.

Finally, picking $c2 > 2$ proves the conjecture.


% 1}}} %

% question b FULL TODO {{{1 %
% TODO: haven't started yet <05-11-20, yigit> %

\begin{question}
    For each function $f(n)$ below, find (and prove that) (1) the smallest integer constant H such that $f(n) = \mathcal{O}(n^H)$, and (2) the largest positive real constant L such that $f(n) = \Omega(n^L)$.
Otherwise, indicate that H or L do not exist.
\end{question}

\begin{info}[]
    $f(n) = \frac{n(n+1)}{2}$
\end{info}

\begin{info}[]
    $f(n) = \sum^{\lceil{log n}\rceil}_{k=0} \frac{n}{2^{k}}$
\end{info}

\begin{info}[]
    $f(n) = n(log n)^{2}$
\end{info}


% 1}}} %

\end{document}
