
\documentclass{article}
\usepackage[margin=1in]{geometry}
\usepackage{subfig}
\usepackage{amssymb}
\usepackage{amsmath,amsthm}
\usepackage{graphicx}
\usepackage{multicol}
\usepackage{enumerate}
\usepackage{float}
\newcounter{lecnum}

\newcommand{\lecture}[4]{
   \newpage
   \setcounter{lecnum}{#1}
   \noindent

   \begin{center}
   \framebox{
      \vbox{\vspace{2mm}
    \hbox to 16cm { {\bf CS602 Applied Algorithms
                        \hfill 2019-20 Sem II} }
       \vspace{4mm}
       \hbox to 16cm { {\Large \hfill Lecture #1: #2  \hfill} }
       \vspace{2mm}
       \hbox to 16cm { {\it Scribe: #4  \hfill  Lecturer: #3} }
      \vspace{2mm}}
   }
   \end{center}
   \vspace*{4mm}
}

\newcommand{\R}{\mathbb{R}}
\newcommand{\transpose}{\mathtt{T}}
\newcommand{\pr}{\mathbb{P}\text{r}}

\newtheorem{theorem}{Theorem}[lecnum]
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{claim}[theorem]{Claim}
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{definition}[theorem]{Definition}

\DeclareMathOperator{\Cone}{cone}


\begin{document}

%\lecture{**LECTURE-NUMBER**}{**DATE**}{**LECTURER**}{**SCRIBE**}
\lecture{19}{March 28}{Rohit Gurjar}{Satyabrata Naik}

In this part of the lecture we will see the maximum satisfiability problem, 
and how we can use linear programming rounding to get an approximately optimal solution. 

\section*{Maximum Satisfiability}
Recall  the satisfiability problem where
we are given a boolean formula in conjunctive normal form (CNF), i.e., AND of ORs,
and the goal is to find an assignment of boolean constants (0 or 1) to the variables
satisfying the boolean formula, that is, satisfying all OR clauses. 
%
Maximum satisfiability is an optimization version of the problem, 
where given a CNF formula,
we want an assignment
 satisfying the maximum number of clauses. 
 %
For example, consider the following boolean formula.
$$f = (x_1 \lor x_2) \land (\overline{x}_1 \lor x_2) \land (x_1 \lor \overline{x}_2) \land (\overline{x}_1 \lor \overline{x}_2) \land (x_1 \lor x_3) \land (x_1 \lor x_2 \lor \overline{x}_3)$$
The solution to above MAX-SAT is 5 (Can you do 6?). 
In general, this problem is NP-hard. Because we know that deciding whether there exists an assignment that satisfies all clauses is NP-hard.
If we could find an assignment satisfying maximum number of clauses, that would in particular tell us whether it satisfies all clauses.
 So, this problem is also NP-hard and we are interested in approximation algorithms for this problem.
 
\section*{$\frac{1}{2}$-approx Algorithm for Maximum Satisfiability}
$\frac{1}{2}$-approx algorithm gives an assignment that satisfies at least half of the number of clauses that could be satisfied by any assignment.
We will consider a more general problem -- maximum weight satisfiability -- 
where each clause has a given weight and the goal is to maximize the total weight of satisfied clauses. 
%
Naturally, $\frac{1}{2}$-approx algorithm here means that it will find an assignment that achieves weight
at least half of the maximum possible.
%
Clearly, if you take all weights to be one, you get back the maximum satisfiability problem. 
%
We first look at a very simple randomized algorithm that achieves $1/2$-approximation.

\subsection*{Randomized Algorithm:}
\begin{itemize}
    \item For each variable $x_i$, assign
 \begin{eqnarray*}
    x_i &=& 1, \text{ with probability } \frac{1}{2} \text{ and, }\\
    x_i &=& 0, \text{ with probability } \frac{1}{2}
\end{eqnarray*}
\end{itemize}
%We look at a more general maximum satisfiability problem for analysis of our alogirthm. We assign weight $W_C$ to each clause `c'.
\subsection*{Analysis:}
Let $W_C$ be the weight of clause $C$.
%
Let $W$ be the the total weight of the clauses that are satisfied by the above random assignment.
%
Note that since our assignment is randomized, $W$ is a random variable. 
%
We would like to show that the expectation of $W$ is at least $1/2$ of the maximum possible weight of
satisfied clauses (OPT). 
\begin{claim}
 $\mathbb{E}[W] \geq \frac{1}{2}OPT $
 \end{claim}
\begin{proof}
%Let $W_C$ be the weight of clause c.
Let us define a random variable $V_C$ as follows:
\[ V_C = \begin{cases} 
W_C & \text{if clause } C \text{ is satisfied by the assignment},\\
0 & \text{ otherwise.}
\end{cases}
\]
So, we have,
\[
\sum_{C} V_C = W.\]
By linearity of expectation,
\begin{eqnarray*} 
\mathbb{E}[W] &=& \sum_{C}\mathbb{E}[V_C]  \\
            &=& \sum_{C}W_C  \cdot \pr [\text{Clause C is satisfied}].
\end{eqnarray*}
 Now, we calculate the probability term appearing in the above equation.\\
Consider an example of a clause,
\begin{eqnarray*}
C &=& x_{i_{1}} \vee \overline{x}_{i_{2}} \vee x_{i_{3}} \vee \cdots \vee x_{i_{\ell_C}}
\end{eqnarray*}
Now, for this clause $C$,
\begin{eqnarray*}
\pr[C \text{ is not satisfied}]
&=& \pr[ 
 x_{i_{1}} = 0 \text{ and }
 x_{i_{2}} = 1 \text{ and }
 x_{i_{3}} = 0 \text{ and } \cdots \text{ and }
 x_{i_{\ell_C}} = 0
 ]\\ 
&=& \frac{1}{2} \times \frac{1}{2} \times \frac{1}{2} \times \cdots
\times \frac{1}{2} \text{ \textit{($\ell_C$ times)} }\\
&=& \frac{1}{2^{\ell_C}}
\end{eqnarray*}
 This tells us,
\begin{eqnarray*}
\pr[\text{C is satisfied}] 
&=& 1 - \frac{1}{2^{\ell_C}}\\
&\geq& \frac{1}{2} \quad \text{ (since $\ell_C \geq 1$ )}
\end{eqnarray*}
Observe that this probability is better for larger clauses.
 Using this probability bound, we can write
\begin{eqnarray*}
\mathbb{E}[W] &\geq& \sum_{C}W_C \times \frac{1}{2}\\
             % &=& \frac{1}{2} \times \sum_{C}W_C\\
              &\geq& \frac{1}{2}OPT \qquad \text{(since} \sum_{C}W_C = \text{the total weight of all clauses)}.
\end{eqnarray*}
Hence, proved.
\end{proof}
 We can also derandomize this algorithm. We have $2^n$ assignments, and the expected value of total weight is at least half of maximum total weight. That means there is at least one assignment that gives at least half of maximum. We try to find such an assignment.
  Basic idea is to go over variables one by one, and  use the self reducibility property.
  % We use this idea to derandomize the above algorithm.
%
\subsection*{Derandomization using the idea of self-reducibility:}
For a weighted boolean formula $f$, let $W(f)$ denote the total weight of the satisfied clauses
when variables are assigned randomly ($0$ with probability $1/2$ and $1$ with probability $1/2$).
%
Recall that the expectation of $W(f)$ is easy to compute by the following formula.
\begin{equation}
\label{eq:expectedWeight}
\mathbb{E} [W(f)] = \sum_{C \text{ is a clause in } f}   \frac{1}{2^{\ell_C}} ,
\end{equation}
where $\ell_C$ is the number of literals in  the clause $C$.
The following is the deterministic algorithm  to find a good assignment. 
%
\begin{enumerate}
    \item Assign $g \leftarrow f$ and $i \leftarrow 1$.
    \item 
    Compute $g_0$ and $g_1$ that are  the formulas obtained from $g$ by setting $x_i=0$ and $x_i=1$, respectively,
while the weights of the clauses remain as in $g$.
    \item Find  $\mathbb{E}[W(g_0)]$ and $\mathbb{E}[W(g_1)]$ using (\ref{eq:expectedWeight}).
    \item  
If  $\mathbb{E}[W(g_0)]  \geq \mathbb{E}[W(g_1)]$ then  assign  $x_i \leftarrow 0$  and $ g \leftarrow g_0 $ , \\ 
otherwise  assign        $ x_i \leftarrow 1$ and  $ g \leftarrow g_1$.
    \item Now, if any variables are left $(i<n)$, assign $i\leftarrow i+1$ and go back to step $2$.
\end{enumerate}
\textbf{HW:} Prove that  the assignment given by this deterministic algorithm achieves weight at least $\frac{1}{2}OPT$.

\section*{Integer Program and Linear Program for Maximum Satisfiability}
Now we will improve the approximation factor using linear programming. 
Let us start by writing an integer program. 
\begin{itemize}
    \item For each variable $x_i$, we have an LP variable $y_i \in \{0, 1\}$, $0$ denoting False and $1$ denoting True.
    \item For each clause we have an LP variable $z_C \in \{0,1\}$, which denotes if clause `C' is satisfied.
    \item So, we want to maximize $\sum_{C} z_C W_C$.
\end{itemize}
To understand the constraints, take an example of a clause
\[
        C =x_1 \vee x_2 \vee \overline{x}_3
  \]
    This clause is not satisfied only when $x_1,x_2$ are False and $x_3$ is true; the  corresponding LP variables are
    $y_1 = 0$, $y_2 = 0$, $y_3 = 1$.
    If this is true then we would like to enforce  $z_C = 0$.
    So, we impose the constraint
    \begin{eqnarray*}
        z_C \leq y_1 + y_2 + (1 - y_3)
    \end{eqnarray*}
    We can easily generalize this to an arbitrary clause.  
Let $P_C$ be the set of  indices of positive literals and $N_C$ be the set of indices of negative literals in the clause `C'. 
Then, we have the following  integer program:
    \begin{eqnarray*}
&\max \sum_{C} z_CW_C & \text{subject to}\\
        & z_C \leq \displaystyle\sum_{i \in P_C}y_i + 
        \displaystyle\sum_{i \in N_C}(1 - y_i)& \text{for each clause } C \text{ in the given formula} \\
        & y_i \in \{0,1\} & \text{ for } 1 \leq i \leq n \\
        &0 \leq z_C\leq 1 & \text{for each clause } C  \text{ in the given formula} .
    \end{eqnarray*}
One can verify that this integer program captures the maximum satisfiability problem exactly.
%
However, as we cannot solve an integer program efficiently, 
we need to relax this to a linear program. 
%, i.e., replace $y_i \in \{0,1\}$
%with $0\leq y_i\leq 1$.
    \begin{eqnarray*}
&\max \sum_{C} z_CW_C & \text{subject to}\\
        & z_C \leq \displaystyle\sum_{i \in P_C}y_i + 
        \displaystyle\sum_{i \in N_C}(1 - y_i)& \text{for each clause } C \text{ in the given formula} \\
                & 0\leq y_i\leq 1 & \text{ for } 1 \leq i \leq n \\
        &0 \leq z_C\leq 1 &  \text{for each clause } C  \text{ in the given formula} .
            \end{eqnarray*}

\section*{($1 - \frac{1}{e}$)-Approx Algorithm for Maximum Satisfiability}
\begin{itemize}
    \item Use a generic LP solver to find an optimal solution of the above LP, say $(y^*,z^*)$. 
    This solution might be fractional, so we do a rounding of the values. %, and wshow the is close to actual optimal
    \item The rounding scheme will be probabilistic. Since $0\leq y_i^* \leq 1$, we can view it as a probability.
  Independently,  for each $1\leq i \leq n$,
    \begin{eqnarray*}
    &\text{set } x_i =  \text{True, with probability } y_i^* \text{ and }& \\
    &\text{set } x_i =  \text{False, with probability } 1 - y_i^*&
    \end{eqnarray*} 
\end{itemize}
\subsection*{Analysis:}
We will show that the expected value of the total weight of the satisfied clauses 
is at least $(1-1/e)$ times the maximum possible weight of satisfied clauses. 
%
     Continuing with the previously defined notations, we have the  total weight of the satisfied clauses
\[W = \sum_{C \text{ is a clause in } f} V_C  .\]
%
By linearity of expectation, 
\begin{eqnarray}
\mathbb{E}[W] &=& \sum_{C \text{ is a clause in } f}\mathbb{E}[V_C] \nonumber \\
            &=& \sum_{C \text{ is a clause in } f}W_C \cdot \pr[\text{clause $C$ is satisfied}] \label{eq:expectation}
\end{eqnarray}
Now, as we discussed in the first part of the lecture, 
we want to relate this expectation
 to the optimal value of the LP, which is $\sum_{C} z_C^* W_C$.
 % OPT (LP)}=\sum_{\substack\\{c}}z_C^* W_C
As before, let $P_C$ be the set of indices of positive literals,
$N_C$ be the set of indices of negative literals, and $\ell_C$ be the number of literals  in clause $C$.
% 
By the rounding scheme, we can say,
\begin{eqnarray}
\pr[C \text{ is not satisfied}]
&=& \displaystyle\prod_{{i \in P_C}}(1 - y^*_i) \displaystyle\prod_{{i \in N_C}}y^*_i \nonumber \\
&\leq& \left( \frac{\displaystyle\sum_{{i \in P_C}}(1 - y^*_i) + \displaystyle\sum_{{i \in N_C}}y^*_i}{\ell_C} \right)^{\ell_C} \label{eq:amgm}
\end{eqnarray} 
%
The inequality comes from the $AM\geq GM$ inequality, which states that given   positive numbers $\alpha_i$ for $ 1 \leq i \leq k$,
\[ \left(\sum_{i=1}^k \alpha_i \right)/k
\geq
\left( \prod_{i=1}^k \alpha_i \right)^{1/k}.
\]
%
 From the constraints of the LP, we have
\begin{eqnarray*}
z_C^* &\leq& \displaystyle\sum_{i \in P_C}y_i^* + 
        \displaystyle\sum_{i \in N_C}(1 - y_i^*)\\
        %
\implies \qquad -z_C^* &\geq&         
\displaystyle\sum_{i \in P_C}(-y_i^*) + 
        \displaystyle\sum_{i \in N_C}(y_i^* - 1)\\
        %
\implies \qquad -z_C^* &\geq&         
\displaystyle\sum_{i \in P_C}(-y_i^* + 1 - 1) + 
        \displaystyle\sum_{i \in N_C}(y_i^* - 1)\\
        %
\implies \qquad -z_C^* &\geq&         
\displaystyle\sum_{i \in P_C}(1 - y_i^*) + 
        \displaystyle\sum_{i \in N_C}(y_i^*) - \ell_C\\
        %
\implies \quad \ell_C - z_C^* &\geq& \displaystyle\sum_{i \in P_C}(1 - y_i^*) +  \displaystyle\sum_{i \in N_C}(y_i^*)
\end{eqnarray*}
%
 Using this with (\ref{eq:amgm}), we obtain
\begin{eqnarray*}
\pr[C \text{ is not satisfied}]
&\leq& \left( \frac{\ell_C - z_C^*}{\ell_C}\right)^{\ell_C} = \left(1 - \frac{z_C^*}{\ell_C}\right)^{\ell_C}\\
%
\implies \pr[C \text{ is satisfied}]
&\geq& 1 - \left(1 - \frac{z_C^*}{\ell_C}\right)^{\ell_C}
\end{eqnarray*}
 %
 Using (\ref{eq:expectation}), we can write
 \begin{equation}
 \mathbb{E}[W] \geq \sum_{C}  W_C \left( 1 - \left(1 - \frac{z_C^*}{\ell_C}\right)^{\ell_C} \right). \label{eq:ew}
 \end{equation}
 Recall that we want to compare the above quantity with the LP optimal $\sum_C W_C z_C^*$.
 %
Which just means that we need to compare the quantity $1-(1-z_C^*/\ell_C)^{\ell_C}$ with $z_C^*$.
 We show the following.
 %
 \begin{claim}
For any $0 \leq z \leq 1$ and $\ell \geq 1$,  
\[1-(1-z/\ell)^{\ell} \geq (1-1/e) z .\] 
 \end{claim}
 %
 \begin{proof}
 Consider the function $h(z) = 1-(1-z/\ell)^{\ell}$.
 If $\ell=1$, then $h(z) = z$ and thus the claim follows immediately.
%
 For $\ell \geq 2$, we argue that $h(z)$ is a concave function. To see this, 
simply consider the second derivative of $h(z)$.
 %
 \begin{eqnarray*}
 h''(z) &=& -\frac{1}{\ell^2} (1-z/\ell)^{\ell-2}.\\
 &\leq & 0, \quad (\text{ since } z/\ell \leq 1). 
 \end{eqnarray*}
 Now, by concavity of $h(z)$, we know for any $0\leq z \leq 1$,
%
  \begin{eqnarray*}
 h(z) &\geq& (1-z)h(0) + z h(1) \\
  & = & 0+ z (1-(1-1/\ell)^\ell ) \\
    & \geq & z (1-1/e ) .
  \end{eqnarray*}
 \end{proof}
 %
 Using the above claim with (\ref{eq:ew}), we get,
\[  \mathbb{E}[W] \geq (1-1/e) \sum_{C}  W_C z_C^*  = (1-1/e) \text{ OPT(LP)}. \]
Finally, we know that since the linear program is a relaxation of the integer program, 
OPT(LP) must be at least the actual OPT -- the maximum possible weight of the satisfied  clauses 
for any assignment. Thus, 
\[  \mathbb{E}[W] \geq (1-1/e) \text{ OPT}. \]
This shows that the algorithm achieves $(1-1/e)$-approximation. 

 
\subsection*{Derandomization using the idea of self-reducibility:}
We can use exactly the same idea for derandomization, as was used in the simple $1/2$-approximation algorithm. 
% 
The difference  is the expression we will use for the expected weight of the satisfied clauses.
\[ \mathbb{E}[W(f)] = 
\sum_{C \text{ is a clause in } f}W_C \cdot \left(1- \displaystyle\prod_{{i \in P_C}}(1 - y^*_i) \displaystyle\prod_{{i \in N_C}}y^*_i \right)
\]
Given $y^*$, this expected weight is easy to compute for $f$ or any of its sub-formulas (after setting some variables).
%

\textbf{HW:} Prove that there is a deterministic version of the $(1-1/e)$-factor algorithm.

\section*{Better Approximation Factor than $1-1/e$: A Combination of the Two Schemes}
Can we improve the approximation factor from $(1-1/e) \approx 0.63$?
%
Let us compare the analysis of the two randomized algorithms we have seen. 
%
In the first algorithm, for a clause $C$ of length $\ell_C$, we had 
\[\pr[C \text{ is satisfied}] = 1- 1/2^{\ell_C}.\]
This probability increases as the clause length $\ell_C$ increases. 
%
For the analysis we had considered the worst case which was $\ell_C=1$.
%
On the other hand, in  the second algorithm, it can be seen from the analysis that 
\[\pr[C \text{ is satisfied}] \geq z^*_C  ( 1- (1-1/\ell_C)^{\ell_C} ).\]
Here, the factor $( 1- (1-1/\ell_C)^{\ell_C})$ actually decreases as $\ell_C$ increases. 
And the worst case considered was $\ell_C =\infty$.
%
In short, the first scheme was good for larger clauses and the second scheme seems to be good for
smaller clauses. 
%
So, we can try to work with a convex combination of the two ideas. 

Recall that a boolean variable $x_i$ was set to be True with probability $1/2$ in the first scheme
and with probability $y_i^*$ in the second scheme. 
%
Now, we set $x_i$ to be True with probability
\[1/4 + y_i^*/2.\]
You can do a similar analysis and get 
\[\pr[C \text{ is satisfied}] \geq z^*_C  \left(1 - \left(\frac{3}{4}- \frac{1}{2\ell_C} \right)^{\ell_C} \right).\]
You can show that the multiplicative factor here is at least $3/4$ for all values of $\ell_C$ and get
\[\pr[C \text{ is satisfied}] \geq (3/4)z^*_C \]
This will imply that you have a $(3/4)$-approximation algorithm. We leave the details as  exercise. 
One can also derandomize this algorithm using the same ideas. 

You might wonder if there is a different convex combination of the two schemes that can give a better bound. 
You can consider the following general scheme with some $0 \leq \alpha \leq 1$:
set $x_i$ to be True with probability
\[(1-\alpha)/2 + \alpha y_i^*.\]
You can do the analysis and verify that, in fact, taking $\alpha=1/2$ gives you the best bound, as we did above. 
%
\section*{Further Improvement on the Approximation Factor?}
\begin{figure}[htp]
\begin{center}
\includegraphics{./roundingGap1.pdf}
\end{center}
\caption{LP optimal, LP integral optimal and the value of the rounded solution. 
The red bar shows the gap we want to upper bound and the blue bar shows the gap we are actually going to upper bound.
The green bar shows the integrality gap.}
\label{fig:rounding}
\end{figure}
We saw that a clever combination of two schemes gave us a better rounding scheme. 
%
Is it possible to design a better rounding scheme? 
%
The answer turns out to be no. 
%
One can associate the so called \emph{integrality gap} for any LP relaxation (of any problem),
that puts a limit on how good approximation factor you can get, no matter what rounding scheme you are using. 
%
 Figure~\ref{fig:rounding} shows relative positions of three values on the real line: the LP optimal (LP-OPT), the actual optimal (OPT) which is also the integral optimal, and the
 value of the rounded solution (ROUNDED) that we output. 
 %
The approximation factor is given by the ratio ROUNDED/OPT.
%
However, since we have no clue about the actual optimal OPT,
we instead bound the ratio ROUNDED/LP-OPT  that lower bounds the desired ratio ROUNDED/OPT.
%
But, how good a bound can we obtain on ROUNDED/LP-OPT?
%
Certainly it cannot be larger than OPT/LP-OPT.
%
The worst possible gap between  OPT and LP-OPT is called the integrality gap (shown by the green bar in Figure~\ref{fig:rounding}).
%
Formally, 
\[\text{Integrality gap } = \min_{f \text{ is a CNF formula}} \frac{\text{OPT}(f)}{\text{LP-OPT}(f)} \]
And as discussed above, the analysis we use cannot guarantee a better approximation factor than the integrality gap. 

\subsection*{Integrality gap for max-satisifiability LP}
We now show an integrality gap of $3/4$ for the LP relaxation we used for maximum satisfiability.
%
Note that integrality gap is defined to be the worst possible ratio over all possible inputs. 
%
We will just show one input example which has the gap of $3/4$ between OPT and LP-OPT. 
%
This will mean that no matter what rounding scheme we use, our analysis cannot give an approximation factor
better than 3/4.
%
Since we also have a (3/4)-approximation algorithm, it means that this example is the worst possible. 

\paragraph{Example with $3/4$ integrality gap.}
Consider the Boolean formula:
\[ f = (x_1 \lor x_2) \land (\overline{x}_1 \lor x_2) \land (x_1 \lor \overline{x}_2) \land (\overline{x}_1 \lor \overline{x}_2) .\]
Assume weight 1 for each clause. 
Clearly, you can satisfy at most 3 out of these 4 clauses. Thus, OPT=3. 
On the other hand, the LP-OPT value is 4 (left as an exercise). 

Interestingly, this example is not bad for the algorithms we have seen, because any assignment will satisfy 
3 clauses which is the OPT. 
%
So, it is possible  for some particular  problem instance,
that  the actual approximation factor is better than the integrality gap.
%
It is just that we cannot get a better guarantee   via the  analysis we do.
%
To show that $3/4$ is really the best possible factor  for max satisfiability achievable via LP rounding,
do the following. 

\textbf{HW:} Find an example of a CNF formula, where ROUNDED $\approx$ 3/4 (OPT).
\end{document}


\begin{eqnarray*}
f(z_C^*) &=& 1 - \left(1 - \frac{z_C^*}{\ell_C}\right)^{\ell_C} \quad \text{is concave.}\\ 
\text{For that, consider} &&\\
f^{'}(z_C^*) &=& \frac{1}{\ell_C}\left( 1 - \frac{z_C^*}{\ell_C}\right)^{\ell_C - 1}\\
f^{''}(z_C^*) &=& -\frac{1}{{\ell_C}^{2}}\left( 1 - \frac{z_C^*}{\ell_C}\right)^{\ell_C - 2} \\
&\leq& 0,\quad \text{since } 0 \leq z_C^* \leq 1
\end{eqnarray*}
Need to handle $\ell_C \leq 2$ case separately. 
 So, $f(z_C^*)$ is concave. This implies a little subtle point that graph of function $f(z_C^*)$ lies above the line joining $z_C^* = 0$ and $z_C^* = 1$ (Draw graphs and see). Line joining $f(0) = 0$ and $f(1) = 1 - \left( 1 - \frac{1}{\ell_C}\right)^{\ell_C}$ is $\left(1 - \left( 1 - \frac{1}{\ell_C}\right)^{\ell_C}\right)z_C^*$. So,
\begin{eqnarray*}
\pr[\text{c is satisfied}]
&\geq& 1 - \left(1 - \frac{z_C^*}{\ell_C}\right)^{\ell_C}\\
&\geq& \left(1 - \left(1 - \frac{1}{\ell_C}\right)^{\ell_C}\right)z_C^*\\
&\geq& \left(1 - \frac{1}{e}\right)z_C^*\\
&\text{as, }&\lim_{\ell_C \to +\infty}\left(1 - \frac{1}{\ell_C}\right)^{\ell_C} = \frac{1}{e}
\end{eqnarray*}
 Finally, we get
\begin{eqnarray*}
\mathbb{E}[W] &\geq& \displaystyle\sum_{{c}}W_C\left(1 - \frac{1}{e}\right)z_C^*\\
&=& \left(1 - \frac{1}{e}\right)OPT (LP)\\
\text{Therefore,} \quad \mathbb{E}[W] &\geq& \left(1 - \frac{1}{e}\right)OPT
\end{eqnarray*}
