Compare commits

..

22 Commits

Author SHA1 Message Date
dfdc10893d change template 2025-06-21 20:40:06 +08:00
c74a801c2f wrong conj 2025-05-11 17:09:16 +08:00
dd3a210ef4 gap is not constant 2025-05-06 19:48:43 +08:00
19eb1b8d09 gap 4 2025-04-28 20:15:33 +08:00
ff2dc7d1ee linear relaxation is wrong. 2025-04-28 17:28:04 +08:00
5609db649d lp for normalized mincut cont'd 2025-04-28 17:08:04 +08:00
f222382508 lp for normalized mincut 2025-04-28 15:42:20 +08:00
93c1055de8 add λ_i properties 2025-04-28 11:37:26 +08:00
6612a1d920 ... 2025-04-27 12:02:52 +08:00
98f7757670 change ref name and paper size 2025-04-26 23:55:46 +08:00
ae0853cee4 optimal λ 2025-04-22 20:55:34 +08:00
290e0ed4e5 remove a conjecture 2025-04-22 13:51:34 +08:00
1b05184804 weight truncation! 2025-04-21 15:46:15 +08:00
d091f4a7dc ... 2025-04-20 17:15:31 +08:00
7df19aa50e the first segment 2025-04-20 16:52:30 +08:00
86879c0a78 i guess no c(F)≤b. c(F)≤B is enough. 2025-04-19 23:50:02 +08:00
66e38e77ad c(F)≤b? 2025-04-19 23:32:22 +08:00
1c9244ff8a trying gap 2025-04-19 15:06:14 +08:00
46771bae89 ... 2025-04-19 14:26:12 +08:00
951cc64d7b typo 2025-04-19 14:20:32 +08:00
378c1cf4c6 connections! 2025-04-19 14:17:54 +08:00
30dd262f6d fix typo. different cut? 2025-04-19 12:01:23 +08:00
7 changed files with 696 additions and 19 deletions

3
.gitignore vendored
View File

@@ -1,3 +1,6 @@
.vscode/
*.sage.py
## Core latex/pdflatex auxiliary files: ## Core latex/pdflatex auxiliary files:
*.aux *.aux
*.lof *.lof

1
.latexmkrc Normal file
View File

@@ -0,0 +1 @@
$pdflatex=q/xelatex -synctex=1 %O %S/

BIN
main.pdf

Binary file not shown.

116
main.tex
View File

@@ -1,5 +1,28 @@
\documentclass[12pt]{article} \documentclass[12pt]{article}
\usepackage{chao} \usepackage[sans]{myctex}
\geometry{a4paper,margin=2cm}
% \usepackage[breakable, theorems, skins]{tcolorbox}
% \tcbset{enhanced}
% \DeclareRobustCommand{\note}[2][blue]{%
% \begin{tcolorbox}[
% breakable,
% left=0pt,
% right=0pt,
% top=0pt,
% bottom=0pt,
% colback=white,
% colframe=#1,
% width=\dimexpr\textwidth\relax,
% enlarge left by=0mm,
% boxsep=5pt,
% arc=0pt,outer arc=0pt,
% ]
% #2
% \end{tcolorbox}
% }
\title{connectivity interdiction} \title{connectivity interdiction}
\author{} \author{}
\date{} \date{}
@@ -13,7 +36,7 @@
\section{``Cut-free'' Proof} \section{``Cut-free'' Proof}
\begin{problem}[b-free knapsack]\label{bfreeknap} \begin{problem}[b-free knapsack]\label{bfreeknap}
Consider a set of elements $E$ and two weights $w:E\to \Z_+$ and Consider a set of elements $E$ and two weights $w:E\to \Z_+$ and
$c:E\to Z_+$ and a budget $b\in \Z_+$. Given a feasible set $\mathcal $c:E\to \Z_+$ and a budget $b\in \Z_+$. Given a feasible set $\mathcal
F\subset 2^E$, find $\min_{X F\subset 2^E$, find $\min_{X
\in \mathcal F, F\subset E} w(X\setminus F)$ such that $c(F)\leq b$. \in \mathcal F, F\subset E} w(X\setminus F)$ such that $c(F)\leq b$.
\end{problem} \end{problem}
@@ -82,7 +105,7 @@ where the second inequality uses \autoref{lem:conditionalLB}.
One can see that if $\alpha>2$, $\frac{w(C^N\setminus F^N)}{w(C^*\setminus F^*)}\leq \frac{B}{\alpha B-b} <1$ which implies $(C^*,F^*)$ is not optimal. Thus for $\alpha >2$, $X^*$ must be a $2$-approximate solution to $\min_{X\in\mathcal F} w_\tau(X)$. One can see that if $\alpha>2$, $\frac{w(C^N\setminus F^N)}{w(C^*\setminus F^*)}\leq \frac{B}{\alpha B-b} <1$ which implies $(C^*,F^*)$ is not optimal. Thus for $\alpha >2$, $X^*$ must be a $2$-approximate solution to $\min_{X\in\mathcal F} w_\tau(X)$.
Finally we get a knapsack version of Theorem 4: Finally we get a knapsack version of Theorem 4:
\begin{theorem}[Theorem 4 in \cite{vygen_fptas_2024}] \begin{theorem}[Theorem 4 in \cite{vygen_fptas_2024}]\label{thm:main}
Let $X^{\min}$ be the optimal solution to $\min_{X\in\mathcal F} w_\tau(X)$. Let $X^{\min}$ be the optimal solution to $\min_{X\in\mathcal F} w_\tau(X)$.
The optimal set $X^*$ in \autoref{bfreeknap} is a The optimal set $X^*$ in \autoref{bfreeknap} is a
2-approximation to $X^{\min}$. 2-approximation to $X^{\min}$.
@@ -131,7 +154,7 @@ How to derive normalized min cut for connectivity interdiction?
\begin{aligned} \begin{aligned}
\max& & z& & & \\ \max& & z& & & \\
s.t.& & \sum_{e} y_e c(e) &\leq B & &\text{(budget for $F$)}\\ s.t.& & \sum_{e} y_e c(e) &\leq B & &\text{(budget for $F$)}\\
& & \sum_{e\in T} x_e&\geq 1 & &\forall T\quad \text{($x$ forms a cut)}\\ & & \sum_{e\in T} x_e&\geq 1 & &\forall T\quad \text{($x$ is a cut)}\\
& & \sum_{e} \min(0,x_e-y_e) w(e)&\geq z & &\\ & & \sum_{e} \min(0,x_e-y_e) w(e)&\geq z & &\\
& & y_e,x_e&\in\{0,1\} & &\forall e & & y_e,x_e&\in\{0,1\} & &\forall e
\end{aligned} \end{aligned}
@@ -143,7 +166,7 @@ we can assume that $y_e\leq x_e$.
\begin{aligned} \begin{aligned}
\min& & \sum_{e} (x_e&-y_e) w(e) & & \\ \min& & \sum_{e} (x_e&-y_e) w(e) & & \\
% s.t.& & \sum_{e} (x_e-y_e) w(e)&\geq z & &\\ % s.t.& & \sum_{e} (x_e-y_e) w(e)&\geq z & &\\
s.t.& & \sum_{e\in T} x_e&\geq 1 & &\forall T\quad \text{($x$ forms a cut)}\\ s.t.& & \sum_{e\in T} x_e&\geq 1 & &\forall T\quad \text{($x$ is a cut)}\\
& & \sum_{e} y_e c(e) &\leq B & &\text{(budget for $F$)}\\ & & \sum_{e} y_e c(e) &\leq B & &\text{(budget for $F$)}\\
& & x_e&\geq y_e & &\forall e\quad(F\subset C)\\ & & x_e&\geq y_e & &\forall e\quad(F\subset C)\\
& & y_e,x_e&\in\{0,1\} & &\forall e & & y_e,x_e&\in\{0,1\} & &\forall e
@@ -154,15 +177,15 @@ Now this LP looks similar to the normalized min-cut problem.
A further reformulation (the new $x$ is $x-y$) gives us the following, A further reformulation (the new $x$ is $x-y$) gives us the following,
\begin{equation*} \begin{equation}\label{lp:conninterdict}
\begin{aligned} \begin{aligned}
\min& & \sum_{e} x_e w(e) & & \\ \min& & \sum_{e} x_e w(e) & & \\
s.t.& & \sum_{e\in T} x_e+y_e&\geq 1 & &\forall T\quad \text{($x$ forms a cut)}\\ s.t.& & \sum_{e\in T} x_e+y_e&\geq 1 & &\forall T\quad \text{($x+y$ is a cut)}\\
& & \sum_{e} y_e c(e) &\leq B & &\text{(budget for $F$)}\\ & & \sum_{e} y_e c(e) &\leq b & &\text{(budget for $F$)}\\
% & & x_e&\geq y_e & &\forall e\quad(F\subset C)\\ % & & x_e&\geq y_e & &\forall e\quad(F\subset C)\\
& & y_e,x_e&\in\{0,1\} & &\forall e & & y_e,x_e&\in\{0,1\} & &\forall e
\end{aligned} \end{aligned}
\end{equation*} \end{equation}
Note that now this is almost a positive covering LP. Let $L(\lambda)= \min \{ w(C\setminus F)-\lambda(b-c(F)) | \forall \text{cut $C$}\;\forall F\subset C Note that now this is almost a positive covering LP. Let $L(\lambda)= \min \{ w(C\setminus F)-\lambda(b-c(F)) | \forall \text{cut $C$}\;\forall F\subset C
% \land c(F)\leq b % \land c(F)\leq b
@@ -183,24 +206,85 @@ We have shown that the budget $B$ in normalized min-cut does not really matter a
Given a graph $G=(V,E)$ and a cost function $c:V\to \Z_+$, the strength $\sigma(G)$ is defined as $\sigma(G)=\min_{\Pi}\frac{c(\delta(\Pi))}{|\Pi|-1}$, where $\Pi$ is any partition of $V$, $|\Pi|$ is the number of parts in the partition and $\delta(\Pi)$ is the set of edges between parts. Note that an alternative formulation of strength (using graphic matroid rank) is $\sigma(G)=\min_{F\subset E} \frac{|E-F|}{r(E)-r(F)}$, which in general is the fractional optimum of matroid base packing. Given a graph $G=(V,E)$ and a cost function $c:V\to \Z_+$, the strength $\sigma(G)$ is defined as $\sigma(G)=\min_{\Pi}\frac{c(\delta(\Pi))}{|\Pi|-1}$, where $\Pi$ is any partition of $V$, $|\Pi|$ is the number of parts in the partition and $\delta(\Pi)$ is the set of edges between parts. Note that an alternative formulation of strength (using graphic matroid rank) is $\sigma(G)=\min_{F\subset E} \frac{|E-F|}{r(E)-r(F)}$, which in general is the fractional optimum of matroid base packing.
The principal sequence of partitions of $G$ is a piecewise linear concave curve $L(\lambda)=\min_\Pi c(\delta(\Pi))-\lambda |\Pi|$. ($L(\lambda)=\min_{F\in E}c(E\setminus F)-\lambda(r(E)-r(F)+1)$) Cunningham used principal partition to computed graph strength\cite{cunningham_optimal_1985}. There is a list of good properties mentioned in \cite[Section 6]{chekuri_lp_2020}(implicated stated in \cite{cunningham_optimal_1985}). The principal sequence of partitions of $G$ is a piecewise linear concave curve $L(\lambda)=\min_\Pi c(\delta(\Pi))-\lambda |\Pi|$. ($L(\lambda)=\min_{F\in E}c(E\setminus F)-\lambda(r(E)-r(F)+1)$) Cunningham used principal partition to computed graph strength\cite{cunningham_optimal_1985}. There is a list of good properties mentioned in \cite[Section 6]{chekuri_lp_2020}(implicated stated in \cite{cunningham_optimal_1985}).
\begin{itemize} \begin{enumerate}
\item We can assume $G$ is connected and deal with the smallest strength component. One can see this by fractional base packing on the direct sum of matroids. Note that on disconnected graphs we should use the edge set definition instead of partitions. \item We can assume $G$ is connected and deal with the smallest strength component. One can see this by fractional base packing on the direct sum of matroids. Note that on disconnected graphs we should use the edge set definition instead of partitions.
\item $L(\lambda)$ is piecewise linear concave since it is the lower envelope of some line arrangement. \item $L(\lambda)$ is piecewise linear concave since it is the lower envelope of some line arrangement.
\item For each line segment on $L(\lambda)$ there is a corresponding partition $\Pi$. If $\lambda^*$ is a breakpoint on $L(\lambda)$, then there are two optimal solution (say partitions $P_1$ and $P_2$, assume $|P_1|\leq|P_2|$) to $\min_\Pi c(\delta(\Pi))-\lambda^* |\Pi|$. Then $P_2$ is a refinement of $P_1$. \item For each line segment on $L(\lambda)$ there is a corresponding partition $\Pi$. If $\lambda^*$ is a breakpoint on $L(\lambda)$, then there are two optimal solution (say partitions $P_1$ and $P_2$, assume $|P_1|\leq|P_2|$) to $\min_\Pi c(\delta(\Pi))-\lambda^* |\Pi|$. Then $P_2$ is a refinement of $P_1$.
\begin{proof}[sketch] \begin{proof}[sketch]
Suppose that $P_2$ is not a refinement of $P_1$. We claim that the meet of $P_1$ and $P_2$ achieves a objective value at least no larger than $P_1$ or $P_2$ does. The correspondence between graphic matroid rank function and partitions of $V$ gives us a reformulation $L(\lambda^*)=\min_{F\subset E}c(E-F)-\lambda^*(r(E)-r(F)+1)$. Here $F$ is the set of edges in each part of $\Pi$. Let $g(F)=c(E-F)+\lambda^*r(F)-\lambda^* n$. Then the claim is equivalent to the fact that for two optimal solutions $F_1,F_2$ to $L(\lambda^*)$, $g(F_1\cap F_2)\leq g(F_1)=g(F_2)\leq g(F_1\cup F_2)$, which can be seen by the submodularity of $g$. Suppose that $P_2$ is not a refinement of $P_1$. We claim that the meet of $P_1$ and $P_2$ achieves a objective value at least no larger than $P_1$ or $P_2$ does. The correspondence between graphic matroid rank function and partitions of $V$ gives us a reformulation $L(\lambda^*)=\min_{F\subset E}c(E-F)-\lambda^*(r(E)-r(F)+1)$. Here $F$ is the set of edges in each part of $\Pi$. Let $g(F)=c(E-F)+\lambda^*r(F)-\lambda^* n$. Then the claim is equivalent to the fact that for two optimal solutions $F_1,F_2$ to $L(\lambda^*)$, $g(F_1\cap F_2)\leq g(F_1)=g(F_2)\leq g(F_1\cup F_2)$, which can be seen by the submodularity of $g$ and the optimality of $F_1,F_2$.
\end{proof} \end{proof}
The number of breakpoints on $L(\lambda)$ is at most $n-1$. The number of breakpoints on $L(\lambda)$ is at most $n-1$.
\item Let $\lambda^*$ be a breakpoint on $L(\lambda)$ induced by edge set $F$. The next breakpoint is induced by the edge set $F'\subset F$ and $F'$ is the solution to strength problem on the smallest strength component of $F$. $\lambda^*$ is the strength of the smallest strength component in $F$. These claims can be seen by the following arguments. From the previous bullet we can see that $\min_{\Delta F} c(E-F+\Delta F)-\lambda^*(r(E)-r(F-\Delta F)+1)=L(\lambda^*)$. Consider the largest $\lambda^*$ which allows $\Delta F=\emptyset$ to be an optimal solution. Such $\lambda^*$ would be the next breakpoint. For any $\Delta F$, $c(E-F+\Delta F)-\lambda^*(r(E)-r(F-\Delta F)+1)\geq c(E-F)-\lambda^*(r(E)-r(F)+1)$. Thus we have $\lambda^*\leq \frac{c(\Delta F)}{r(F)-r(F-\Delta F)}$. \item Let $\lambda^*$ be a breakpoint on $L(\lambda)$ induced by edge set $F$. The next breakpoint is induced by the edge set $F'\subset F$ and $F'$ is the solution to strength problem on the smallest strength component of $F$. $\lambda^*$ is the strength of the smallest strength component in $F$. These claims can be seen by the following arguments. From the previous bullet we have $\min_{\Delta F} c(E-F+\Delta F)-\lambda^*(r(E)-r(F-\Delta F)+1)=L(\lambda^*)$. Consider the largest $\lambda^*$ which allows $\Delta F=\emptyset$ to be an optimal solution. Such $\lambda^*$ would be the next breakpoint. For any $\Delta F$, $c(E-F+\Delta F)-\lambda^*(r(E)-r(F-\Delta F)+1)\geq c(E-F)-\lambda^*(r(E)-r(F)+1)$. Thus we have $\lambda^*\leq \frac{c(\Delta F)}{r(F)-r(F-\Delta F)}$.
\end{itemize} \item Consider $\lambda\in [0,\e]$ for some small enough $\e$. The Lagrangian dual $\min_F c(E\setminus F)-\lambda (r(E)-r(F)+1)$ gets the optimum at $F=E$.
That is $c(E\setminus F')-\lambda(r(E)-r(F')+1)>-\lambda$ for all $F'\subsetneq E$.
We are interested in the upperbound $\e$ of $\lambda$ such that the optimal $F$ is a proper subset of $E$ when $\lambda >\e$. Therefore, the upperbound is $\e=\min_{F\subsetneq E}\frac{c(E\setminus F)}{r(E)-r(F)}$, which is exactly the strength.
\end{enumerate}
(there is a $\pm1$ difference between principal partition and graph strength... but we dont care those $c\lambda$ terms since the difficult part is minimize $L(\lambda)$ for fixed $\lambda$) % (there is a $\pm1$ difference between principal partition and graph strength... but we dont care those $c\lambda$ terms since the difficult part is minimize $L(\lambda)$ for fixed $\lambda$)
\subsection{principal sequence of partitions for cut interdiction} \subsection{principal sequence of partitions for cut interdiction}
Now we focus One $L(\lambda)=\min \{w(C\setminus F)-\lambda(b-c(F)) | \forall \text{cut } C\;\forall F\subset C\}$. We can still assume that $G$ is connected and see that $L(\lambda)$ is pwl concave. Let $\lambda^*$ be a breakpoint on $L$. Suppose that there are two optimal solutions $(C_1,F_1)$ and $(C_2,F_2)$ at $\lambda^*$. For fixed $C$ ($C_1=C_2$), the same argument for principal partition still works. However, the difficult part is that $C$ might not be the same. Now we focus on $L(\lambda)=\min \{w(C\setminus F)-\lambda(b-c(F)) | \forall \text{cut } C\;\forall F\subset C\}$. We can still assume that $G$ is connected and see that $L(\lambda)$ is pwl concave (1 and 2 still hold). Let $\lambda^*$ be a breakpoint on $L$. Suppose that there are two optimal solutions $(C_1,F_1)$ and $(C_2,F_2)$ at $\lambda^*$. For fixed $C$ ($C_1=C_2$), the same argument for principal partition still works. However, the difficult part is that $C$ might not be the same. So it's unlikely that 3 and 4 hold. For cut interdiction problem, 5 shows connections between normalized mincut and the original interdiction problem. Recall that we observe the denominator in normalized min-cut can be relaxed (that is, we can use $\frac{w(C\setminus F)}{B-c(F)}$ for any $B>b$, instead of restricting to $B=b+1$) and the analysis still works. Now following the previous argument for 5, we assume $\lambda\in [0,\e]$ for small enough positive $\e$. For any $C$, we have $F=C$ since $w(C\setminus F)$ is dominating. For the remaining term $-\lambda(b-c(F))$ we are selecting a cut $F$ with smallest cose with respect to $c$. Note that we can assume that any cut in $G$ has larger cost than $b$ since otherwise the optimum is simply 0.
% Now we can see that $B$ in the denominator $B-c(F)$ should be the cost of mincut in $G$.
Let $B$ be the minimum cost of cuts in $G$.
We have $-\lambda(b-B)\leq w(C\setminus F)-\lambda(b-c(F))$ for any cut $C$ and $F\subsetneq C$. Thus the upperbound is $\e=\min \frac{w(C\setminus F)}{B-c(F)}$.
% \note{It remains to show that the optimal solution at $\e$ guarantees $c(F)\leq b$? or maybe we don't need this for normalized mincut. I think normalized min-cut should not require $c(F)\leq b$. Further checks are needed. What we can guarantee is that $c(F)\leq B$.}
\subsection{differences}
Consider $L(\lambda)$ for cut problem. One can see that the optimal $\lambda$ is clearly 0 since $L(\lambda)$ is pwl concave and the slope is negative at $\lambda=0$. What we are really interested in is the first segment on $L$. At the left end, $L(0)$ is exactly the weight of minimum cut. (the complementary slackness condition is satisfied.) At the right end, as we have shown in the previous paragraph, $\lambda$ equals to the value of the strength (which is the optimum of the linear relaxation of the cut IP). However, for cut interdiction problems $L(0)$ is not the optimum.
\subsection{integrality gap} \subsection{integrality gap}
I guess the 2 approximation cut enumeration algorithm implies a integrality gap of 2 for cut interdiction problem. I guess the 2-approximate min-cut enumeration algorithm implies an integrality gap of 2 for cut interdiction problem.
First consider the dual of linear relaxation of \autoref{lp:conninterdict}.
\begin{equation}\label{lp:dualcutint}
\begin{aligned}
\max& & \sum_T z_T &- b\lambda & &\\
s.t.& & \sum_{T\ni e} z_T &\leq w(e) & &\forall e\in E\\
& & \sum_{T\ni e} z_T &\leq c(e)\lambda & &\forall e \in E\\
& & z_T,\lambda &\geq 0 & &
\end{aligned}
\end{equation}
We want to prove something like tree packing theorem for \autoref{lp:dualcutint}.
\begin{conjecture}
The optimum of \autoref{lp:dualcutint} is $\min \set{\frac{w(C\setminus F)}{B-c(F)}| \forall \text{cut $C$}, c(F)\leq b}$, where $B$ is the cost of mincut in $G$ and $b$ is the budget.
\end{conjecture}
I believe the previous conjecture is not likely to be true.
\paragraph{Weight truncation} Assuming we know the optimal $\lambda$ to the LP dual, \autoref{lp:dualcutint} in fact gives the idea of weight truncation. The capacity of each edge $e$ in the ``tree packing'' is $\min\{c(e)\lambda,w(e)\}$. Therefore, the optimum of \autoref{lp:dualcutint} is $\Lambda_{w_\tau}^{fr}-b\lambda$, where $\Lambda_{w_\tau}^{fr}$ is the fractional mincut on $G$ with weights $w_\tau$.
\paragraph{The optimal $\lambda$} Denote by $\lambda^*$ the optimal $\lambda$ that maximizes $L(\lambda)$. From the previous argument on the first segment of $L(\lambda)$ we know that $\lambda^* \geq \min \frac{w(C\setminus F)}{B-c(F)}$. Now assume $\lambda^* > \min_{c(F)\leq b} \frac{w(C\setminus F)}{b-c(F)}$. We have $\min w(C\setminus F)-\lambda^*(b-c(F))<w(C\setminus F)-\min_{c(F)\leq b} \frac{w(C\setminus F)}{b-c(F)}(b-c(F))=0$ since the optimum must be achieved by $F$ such that $0\leq b-c(F)$(the slope). The negative optimum of $L(\lambda)$ contradicts the fact that $L(0)=0$ and $L$ is concave. Hence, the optimal solution $\lambda^*$ is in the range $[\min\frac{w(C\setminus F)}{B-c(F)},\min_{c(F)\leq b}\frac{w(C\setminus F)}{b-c(F)}]$.
It would be nice if we can prove that any breakpoint is of the form $\min \frac{w(C\setminus F)}{b'-c(F)}$ for some $b'\in [b,B]$. However, this seems incorrect. Let $\{(C_0,F_0),\dots,(C_h,F_h)\}$ be the sequence of solutions for each segment on $L(\lambda)$ and let $\lambda_1< \dots <\lambda_{h}$ be the sequence of breakpoints. ($\lambda_i$ is the intersection of the corresponding segments of $(C_{i-1},F_{i-1})$ and $(C_i,F_i)$.)
\begin{lemma}
$\lambda_i=\min \frac{w(C\setminus F)-w(C_{i-1}\setminus F_{i-1})}{c(F_{i-1})-c(F)}$, where the minimum is taken over all cut $C$ and $F\subset C$ such that both the numerator and denominator are positive.
\end{lemma}
The proof is using the argument for showing $\lambda_1=\min \frac{w(C\setminus F)}{B-c(F)}$ and induction. $\lambda_i$ looks similar to normalized mincut but is related to the slope and vertical intercept of a previous segment.
\begin{conjecture}\label{conj:intgap}
\autoref{lp:conninterdict} has an integrality gap of 4.
\end{conjecture}
However, \autoref{conj:intgap} is wrong. The integrality gap is unbounded. Consider a cycle $C_n$ of $n$ vertices with two special edges $e_1,e_2$. Let $L$ be a large number.
\[
w(e)=\begin{cases}
1 & e=e_1\\
L & e=e_2\\
2 & \text{else}
\end{cases},\quad
c(e)=\begin{cases}
L & e=e_1\\
1 & \text{else}
\end{cases}, \quad b=2-\epsilon
\]
For IP, it is clear that $F=\{e_2\}, C\setminus F=\{e_1\}$ and the optimum is 1\newline
For LP, we assign $x=0$ and $y_e=\frac{1}{n-2}$ for every edge except $e_1$. The optimum is 0.
What is the gap if we only relax $\lambda$ in the Lagrangian dual?
\section{Random Stuff} \section{Random Stuff}

492
myctex.sty Normal file
View File

@@ -0,0 +1,492 @@
\ProvidesPackage{myctex}
\RequirePackage[fontset=none, scheme=plain]{ctex}
\RequirePackage{fontspec}
\newif\ifmyctex@sans
\myctex@sansfalse % Default is serif
% Declare and process options
\DeclareOption{sans}{\myctex@sanstrue}
\DeclareOption*{\PackageWarning{myctex}{Unknown option `\CurrentOption'}}
\ProcessOptions\relax
% Now use the conditional
\ifmyctex@sans
\setCJKmainfont{Source Han Sans SC}
\setCJKsansfont{Source Han Sans SC}
\setCJKmonofont{Source Han Sans SC}
\RequirePackage[fira]{fontsetup}
\RequirePackage{FiraMono}
\setmathfont{Fira Math}[range=\setminus]
\else
\setCJKmainfont{Source Han Serif SC}
\setCJKsansfont{Source Han Serif SC}
\setCJKmonofont{Source Han Serif SC}
\RequirePackage[charter]{mathdesign} % math font only for serif mode
\fi
% \setCJKmainfont{SourceHanSerifSC-Regular.otf}[BoldFont={SourceHanSerifSC-Bold.otf}, ItalicFont=SourceHanSerifSC-Regular.otf]
\RequirePackage[margin=1in]{geometry}
\RequirePackage{latexsym,amsmath}
\RequirePackage[dvipsnames]{xcolor}
\RequirePackage[colorlinks=true,urlcolor=Blue,citecolor=Green,linkcolor=BrickRed,unicode]{hyperref}
\RequirePackage[hyperref]{ntheorem} % theorem numbering
\RequirePackage{aliascnt}
\RequirePackage{xspace}
% \RequirePackage{minted}
\RequirePackage{graphicx} % essentials
% \RequirePackage{microtype}
\RequirePackage{eucal}
\RequirePackage[nocompress]{cite} % other convenient stuff
\RequirePackage{enumerate}
%\usepackage{pgf,tikz}
\RequirePackage{wrapfig}
\RequirePackage[medium,compact]{titlesec}
\RequirePackage{verbatim}
\newtheorem{theorem}{Theorem}[section]
\newaliascnt{lemma}{theorem}
\newaliascnt{corollary}{theorem}
\newaliascnt{conjecture}{theorem}
\newaliascnt{proposition}{theorem}
\newtheorem{lemma}{Lemma}[section]
\newtheorem{corollary}{Corollary}[section]
\newtheorem{conjecture}{Conjecture}[section]
\newtheorem{proposition}{Proposition}[section]
\newtheorem{problem}{Problem}
\newcommand{\lemmaautorefname}{Lemma}
\newcommand{\corollaryautorefname}{Corollary}
\newcommand{\conjectureautorefname}{Conjecture}
\newcommand{\propositionautorefname}{Proposition}
\newcommand{\problemautorefname}{Problem}
\newenvironment{definition}[1][Definition]{\begin{trivlist}
\item[\hskip \labelsep {\bfseries #1}]}{\end{trivlist}}
\newenvironment{example}[1][Example]{\begin{trivlist}
\item[\hskip \labelsep {\bfseries #1}]}{\end{trivlist}}
\newenvironment{remark}[1][Remark]{\begin{trivlist}
\item[\hskip \labelsep {\bfseries #1}]}{\end{trivlist}}
\widowpenalty 5000
\clubpenalty 5000
\numberwithin{figure}{section}
\pagenumbering{arabic}
\urlstyle{same} % dammit
\hyphenation{co-or-din-ate co-or-din-ates half-plane half-space stereo-iso-mers stereo-iso-mer Round-table homol-ogous homol-ogy poly-hedron poly-hedra homeo-morphic homeo-morph-ism}
\pdfstringdefDisableCommands{\let\boldmath\relax} % allow \boldmath in section titles
\let\subsectionautorefname\sectionautorefname
\let\subsubsectionautorefname\sectionautorefname
% ----------------------------------------------------------------------
% Common Latin abbreviations, only one of which is actually kosher
% ----------------------------------------------------------------------
\def\etal{\emph{et~al.}} % and others
\def\ie{\emph{i.e.}} % that is
% \def\ie{\textcolor{red}{that is}}
\def\eg{\emph{e.g.}} % for example
% \def\eg{\textcolor{red}{for example}}
% -----------------------
% Common Names
% -----------------------
\def\Mobius{M\"obius\xspace}
% -----------------------
% useful shortcuts
% -----------------------
% \def\cost{\cent}
% ----------------------------------------------------------------------
% Simple math stuff
% ----------------------------------------------------------------------
% \renewcommand{\subset}{\subseteq}
% ---- SYMBOLS ----
\let\e\epsilon % a ``real'' epsilon — better yet, just use Unicode ε.
%
% I give up. These are in the wrong font, but my kludged versions
% LOOK like kludges, especially \Z, \Q, and \C.
%
\def\Real{\mathbb{R}}
\def\Proj{\mathbb{P}}
\def\Hyper{\mathbb{H}}
\def\Integer{\mathbb{Z}}
\def\Natural{\mathbb{N}}
\def\Complex{\mathbb{C}}
\def\Rational{\mathbb{Q}}
\let\N\Natural
\let\Q\Rational
\let\R\Real
\let\Z\Integer
\def\Rd{\Real^d}
\def\RP{\Real\Proj}
\def\CP{\Complex\Proj}
% ---- OPERATORS (requires amsmath) ----
\def\aff{\operatorname{aff}}
\def\area{\operatorname{area}}
\def\argmax{\operatornamewithlimits{arg\,max}}
\def\argmin{\operatornamewithlimits{arg\,min}}
\def\Aut{\operatorname{Aut}} % Automorphism group
\def\card{\operatorname{card}} % cardinality, deprecated for \abs
\def\conv{\operatorname{conv}}
\def\E{\operatorname{E}} % Expectation: $\E[X]$ (like \Pr)
\def\EE{\operatornamewithlimits{E}}
\def\Hom{\operatorname{Hom}} % Homomorphism group
\def\id{\operatorname{id}} % identity
\def\im{\operatorname{im}} % image
\def\lcm{\operatorname{lcm}}
\def\lfs{\operatorname{lfs}} % local feature size
\def\poly{\operatorname{poly}}
\def\polylog{\operatorname{polylog}}
\def\rank{\operatorname{rank}}
\def\rel{\operatorname{rel\,}} % relative (interior, boundary, etc.)
\def\sgn{\operatorname{sgn}}
\def\vol{\operatorname{vol}} % volume
\def\fp#1{^{\underline{#1}}} % falling powers: $n\fp{d}$
\def\rp#1{^{\overline{#1}}} % rising powers: $n\rp{d}$
\def\setsymdiff{\operatorname{\triangle}}
% --- Darts and fences ---
% less nice replacements for stmaryrd characters
\@ifundefined{shortrightarrow}{\let\shortrightarrow\rightarrow}{}
\@ifundefined{shortleftarrow}{\let\shortleftarrow\leftarrow}{}
\@ifundefined{shortuparrow}{\let\shortuparrow\uparrow}{}
\@ifundefined{shortdownarrow}{\let\shortdownarrow\downarrow}{}
\def\arcto{\mathord\shortrightarrow}
\def\arcfrom{\mathord\shortleftarrow}
\def\arc#1#2{#1\arcto#2}
\def\cra#1#2{#1\mathord\shortleftarrow#2}
\def\fence#1#2{#1\mathord\shortuparrow#2}
\def\ecnef#1#2{#1\mathord\shortdownarrow#2}
% --- Cheap displaystyle operators ---
\def\Frac#1#2{{\displaystyle\frac{#1}{#2}}}
\def\Sum{\sum\limits}
\def\Prod{\prod\limits}
\def\Union{\bigcup\limits}
\def\Inter{\bigcap\limits}
\def\Lor{\bigvee\limits}
\def\Land{\bigwedge\limits}
\def\Lim{\lim\limits}
\def\Max{\max\limits}
\def\Min{\min\limits}
% ---- RELATORS ----
\def\deq{\stackrel{\scriptscriptstyle\triangle}{=}} % Use := instead.
\def\into{\DOTSB\hookrightarrow} % = one-to-one
\def\onto{\DOTSB\twoheadrightarrow}
\def\inonto{\DOTSB\lhook\joinrel\twoheadrightarrow}
\def\from{\leftarrow}
\def\tofrom{\leftrightarrow}
\def\mapsfrom{\mathrel{\reflectbox{$\mapsto$}}}
\def\longmapsfrom{\mathrel{\reflectbox{$\longmapsto$}}}
% ---- DELIMITER PAIRS ----
% --- always self-scaling delmiter pairs ---
\def\set#1{\left\{ #1 \right\}}
\def\floor#1{\left\lfloor #1 \right\rfloor}
\def\ceil#1{\left\lceil #1 \right\rceil}
\def\seq#1{\left\langle #1 \right\rangle}
\def\abs#1{\left| #1 \right|}
\def\norm#1{\left\| #1 \right\|}
\def\paren#1{\left( #1 \right)} % need better macro name!
\def\brack#1{\left[ #1 \right]} % need better macro name!
\def\indic#1{\left[ #1 \right]} % indicator variable; Iverson notation
%
% Macros to typeset sets like {foo|bar} with all three delimiters
% correctly scaled to fit. What I *really* want is a \middle macro
% that acts just like \left and \right. Grumble.
%
% Set version is handled by package braket.
\def\Bigbar#1{\mathrel{\left|\vphantom{#1}\right.\n@space}}
\def\Seqbar#1#2{\Seq{#1 \Bigbar{#1 #2} #2}}
\def\Brackbar#1#2{\Brack{#1 \Bigbar{#1 #2} #2}}
% Math mode fbox
\def\mfbox#1{\mathchoice{{\fbox{\ensuremath{\displaystyle #1}}}}
{{\fbox{\ensuremath{\textstyle #1}}}}
{{\fbox{\ensuremath{\scriptstyle #1}}}}
{{\fbox{\ensuremath{\scriptscriptstyle #1}}}}}
% ---- ``ACCENTS'' ----
% NB: Commands equivalent to \lrarrowfill and \overlrarrow are
% already defined in amstex!
\def\lrarrowfill{$\m@th\mathord\leftarrow\mkern-6mu%
\cleaders\hbox{$\mkern-2mu\mathord-\mkern-2mu$}\hfill
\mkern-6mu\mathord\rightarrow$}
\def\overlrarrow#1{\vbox{\ialign{##\crcr
\lrarrowfill\crcr\noalign{\kern-\p@\nointerlineskip}
$\hfil\displaystyle{#1}\hfil$\crcr}}}
\def\Line#1{\!\overlrarrow{\vphantom{t}\smash{\,#1\,}}\!}
\def\Ray#1{\overrightarrow{\vphantom{t}#1\,}\!}
\def\Seg#1{\overline{\vphantom{t}#1}}
% ---- TEXT STYLES ----
\def\mathsc#1{\text{\textsc{#1}}}
\def\mathbs#1{\text{\boldmath\ensuremath{#1}}}
\def\EMPH#1{\textbf{\emph{\boldmath #1}}}
% ----------------------------------------------------------------------
% \begin{bigabstract}...\end{bigabstract}
% For use in documents with title pages. Use normal-sized text in
% the abstract!
% ----------------------------------------------------------------------
\newenvironment{bigabstract}%
{\begin{center}\large\textbf{\abstractname}\end{center}\begin{quotation}}%
{\end{quotation}}
% ----------------------------------------------------------------------
% Make captions smaller than the text, make their titles bold.
% Arguments: #1 == figure name: "Figure 5"
% #2 == caption: "Papers by \Erdos, 1900--2000 (projected)"
% Less space after floats and before caption, since captions are smaller
% ----------------------------------------------------------------------
\@ifundefined{abovecaptionskip}{\newlength\abovecaptionskip}
\long\def\@makecaption#1#2{
\vskip \abovecaptionskip
\setbox\@tempboxa\hbox{{\sffamily\footnotesize \textbf{#1.} #2}}
\ifdim \wd\@tempboxa >\hsize % if more than one line,
{\sffamily\footnotesize \textbf{#1.} #2\par} % typeset normally
\else % else
\hbox to\hsize{\hfil\box\@tempboxa\hfil} % center
\fi}
\dbltextfloatsep 18pt plus 2pt minus 4pt % was 20pt plus 2pt minus 4pt
\textfloatsep 18pt plus 2pt minus 4pt % was 20pt plus 2pt minus 4pt
\abovecaptionskip 6pt % was 10pt
% ----------------------------------------------------------------------
% Revised theorem environment:
% Add a period after the theorem number, and make theorems slanted
% instead of italic to help distinguish text from math. Use
% \boldmath in theorem label in case it includes math.
% ----------------------------------------------------------------------
\def\@opargbegintheorem#1#2#3{\trivlist
\item[\hskip\labelsep{\bfseries\boldmath #1\ #2\ (#3).}]\slshape}
\def\@begintheorem#1#2{\trivlist
\item[\hskip\labelsep{\bfseries\boldmath #1\ #2.}]\slshape}
% ----------------------------------------------------------------------
% \newproof{type}{text}(style)[post]:
% Define a new type of unnumbered ``theorem'' environment. The last
% two arguments are optional; most environments will not use them.
%
% To change label style, put new style command in label:
% \newproof{comment}{\textsf{Comment}}
% ----------------------------------------------------------------------
\def\newproof#1#2{\@ifnextchar({\@snproof{#1}{#2}}{\@snproof{#1}{#2}()}}
\def\@snproof#1#2(#3){\@ifnextchar[{\@xnproof{#1}{#2}{#3}}
{\@xnproof{#1}{#2}{#3}[]}}
\def\@xnproof#1#2#3[#4]{%\expandafter\@ifdefinable\csname #1\endcsname
{\global\@namedef{#1}{\@prf{#2}{#3}}\global\@namedef{end#1}{\@endprf{#4}}}}
\def\@prf#1#2{\@ifnextchar[{\@xprf{#1}{#2}}{\@yprf{#1}{#2}}}
\def\@xprf#1#2[#3]{\@yprf{#1\ (#3)}{#2}}
\def\@yprf#1#2{\begin{trivlist}\item[\hskip\labelsep{\bfseries\boldmath #1:}]#2}
\def\@endprf#1{#1\end{trivlist}}
%
% Standard proof envrionment: last line has a halmos at the right margin.
% Insert \qed to override default halmos placement.
% Incompatible with amsprf package!
%
\newif\ifneedqed
\global\needqedfalse
\@ifundefined{square}{\let\square\Box}{} % grumble latex2e
% \def\QED{\ensuremath{{\square}}}
\def\markatright#1{\leavevmode\unskip\nobreak\quad\hspace*{\fill}{#1}}
\def\qed{\ifneedqed\markatright{\ensuremath{{\square}}}\global\needqedfalse\else\null\fi}
\newproof{proof}{Proof\global\needqedtrue}[\qed]
\newproof{sketch}{Proof Sketch\global\needqedtrue}[\qed]
%
% 'Fake' proof environment, for use with wrapfig and similar packages
%
\newenvironment{rawproof}%
{\begin{trivlist}\item[\hskip\labelsep\textbf{Proof:}\global\needqedtrue]}%
{\qed\end{trivlist}}
%
% If the proof ends with a displayed equation, use \aftermath just
% before \end{proof} to put the halmos in the ``right'' place.
% Doesn't work worth a damn.
%
\def\aftermath{\par\vspace{-\belowdisplayskip}\vspace{-\parskip}\vspace{-\baselineskip}}
% ----------------------------------------------------------------------
% One-shot theoremish environment. For named things like ``Zorn's
% Lemma'' or ``The Death Leap Principle'' or ``The Zone Theorem''.
% To get one-shot proofish environment, put \normalfont inside.
% New improved version stolen from Erik Demaine.
% ----------------------------------------------------------------------
\newenvironment{oneshot}[1]{\@begintheorem{#1}{\unskip}}{\@endtheorem}
% Meh.
\def\Comment#1{\textsf{\textsl{$\langle\!\langle$#1\/$\rangle\!\rangle$}}}
\def\beginc@de{\noindent\begin{center}\begin{minipage}{1in}\tt
\begin{tabbing}~~~~\=~~~~\=~~~~\=~~~~\=~~~~\=~~~~\=~~~~\=\kill}
\def\endc@de{\end{tabbing}\end{minipage}\end{center}}
\newenvironment{code}{\beginc@de}{\endc@de}
%
% These only work with <1 line of text. Use sparingly!!
%
\def\textul#1{\underline{\smash{#1}\vphantom{.}}}
\def\strike#1{\ensuremath{\overline{\text{\smash{#1}\vphantom{.}}}}}
% ----------------------------------------------------------------------
% Include a file verbatim. Searches the TEXINPUTS path for the file,
% even though that's probably not what you really want. Stolen from
% ``verbatimfiles.sty'' by Chris Rowley and others. [Don't use their
% \vertbatimlisting macro; it has some bizarre side-effects!]
% ----------------------------------------------------------------------
\def\verbinput#1{
\begingroup\@verbatim\frenchspacing\@vobeyspaces\input#1\endgroup
}
% ----------------------------------------------------------------------
% \now -- Current time in h:mm AM/PM format
% \mdyy -- Today's date in m/d/yy format. Forget Y2K; this is for humans!
% ----------------------------------------------------------------------
\newcount\timehh\timehh=\time
\divide\timehh by 60
\newcount\timemm\timemm=\time
\count255=\timehh
\multiply\count255 by -60
\advance\timemm by \count255
\newif\iftimePM
\ifnum\timehh>11 \timePMtrue\else\timePMfalse\fi
\ifnum\timehh<1 \advance\timehh by 12\fi
\ifnum\timehh>12 \advance\timehh by -12\fi
\def\now{\number\timehh:\ifnum\timemm<10 0\fi\number\timemm
\iftimePM pm\else am\fi}
\newcount\mdYY\mdYY=\year
\count255=\year
\divide\count255 by 100
\multiply\count255 by 100
\advance\mdYY by -\count255
\def\mdyy{\number\month/\number\day/\ifnum\mdYY<10 0\fi\number\mdYY}
% ----------------------------------------------------------------------
% Notes to myself. The margin flags are broken, thanks to an
% incompatibility with the geometry package.
% ----------------------------------------------------------------------
\def\n@te#1{\textsf{\boldmath \textbf{$\langle\!\langle$#1$\rangle\!\rangle$}}\leavevmode}
\def\n@tew@rn{\GenericWarning{}{AUTHOR WARNING: Unresolved \protect\note}}
\def\n@ten@te#1{\marginpar
[\hfill\llap{\textcolor{red}{{#1}$\!\Longrightarrow$}}]
{\rlap{\textcolor{red}{$\Longleftarrow\!${#1}}}}}
% Warning: The textcomp and mathdesign packages are incompatible!
%\def\n@tedingb@t{\@ifundefined{textmusicalnote}
% {$\maltese$} % if you don't have textcomp
% {\textmusicalnote}} % if you do have textcomp
\def\n@tedingb@t{\textcircled{$\maltese$}}
\def\note#1{\textcolor{red}{\n@tew@rn\n@te{\n@ten@te{\n@tedingb@t}#1}}}
\def\sidenote#1{\marginpar{\tiny\textsf{#1}}}
\setlength{\marginparsep}{0.1in}
\setlength{\marginparwidth}{\paperwidth}
\addtolength{\marginparwidth}{-\oddsidemargin}
\addtolength{\marginparwidth}{-\textwidth}
\addtolength{\marginparwidth}{-1.0\marginparsep}
\addtolength{\marginparwidth}{-1.0in}
%----------------------------------------------------------------------
% TODO sets enclosed text in a gray rectangle with a red border
% with small sans-serif text.
%----------------------------------------------------------------------
\definecolor{TODOcolor}{cmyk}{0.05,0,0,0}
\definecolor{TODOtxtcolor}{cmyk}{0,1,1,0}
\newenvironment{TODO}
{\fboxrule1.5pt\begin{lrbox}{\@tempboxa}
\begin{minipage}{0.9\columnwidth}\small\sffamily\color{TODOtxtcolor}}
{\end{minipage}
\end{lrbox}
\medskip\centerline{\fcolorbox{TODOtxtcolor}{TODOcolor}{\usebox{\@tempboxa}}}
\sidenote{\LARGE\color{Red}$\bigstar\bigstar\bigstar$}\medskip}
%----------------------------------------------------------------------
% Bibliography aliases, so I can use mnemonic citation keys and
% geom.bib at the same time. \bibalias{foo}{bar} makes \cite{foo}
% act (almost) exactly like \cite{bar}. I dont actually use this.
%----------------------------------------------------------------------
\def\bibalias#1#2{%
\global\@namedef{b@#1}{%
{\@ifundefined{b@#2}{\textsf{?}}{}\csname b@#2\endcsname}}}
% ----------------------------------------------------------------------
% Draft notice. Put \DRAFT on the title page, in place of \date.
% ----------------------------------------------------------------------
\def\draftnotice{Preliminary draft --- \mdyy\ --- Not for distribution}
\def\DRAFT{
\date{\fbox{\textsf{\textbf{\draftnotice}}}}
\def\@oddfoot{\footnotesize\hss\fbox{\textbf{\textsf{\draftnotice}}}\hss}
\let\@evenfoot\@oddfoot
}
%----------------------------------------------------------------------
% 'cramped' list style, stolen from Jeff Vitter. Doesn't always work.
%----------------------------------------------------------------------
\def\cramped
{\parskip\@outerparskip\@topsep\parskip\@topsepadd2pt\itemsep0pt
}
%----------------------------------------------------------------------
% More footnote symbols, please.
%----------------------------------------------------------------------
\def\@fnsymbol#1{\ensuremath{\ifcase#1\or *\or \dagger\or \ddagger\or
\mathsection\or \mathparagraph\or \|\or **\or \dagger\dagger
\or \ddagger\ddagger \or \mathsection\mathsection \or
\mathparagraph\mathparagraph \else\@ctrerr\fi}}
%----------------------------------------------------------------------
% TeXbook style quotations -- I should really use the right font, tho.
%----------------------------------------------------------------------
\newenvironment{rightquote}[1]
{\flushright\begin{minipage}{#1\textwidth}
\parskip0pt\footnotesize\sffamily\slshape}
{\end{minipage}\par\bigskip}
\def\quotee#1{\par\vspace{0.5ex}\begin{flushright}\unskip\textup{--- #1}\end{flushright}\unskip}
%----------------------------------------------------------------------
% Creative Commons license
%----------------------------------------------------------------------
\def\CCLicense#1{\vfill\vbox to 0pt{\centering\tiny\sffamily \textcopyright\ Copyright \number\year\ Chao Xu.\\ This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (\url{http://creativecommons.org/licenses/by-nc-sa/4.0/}).\\ Free distribution is strongly encouraged; commercial distribution is expressly forbidden.\quad See {#1} for the most recent revision.\vss}}

View File

@@ -53,7 +53,6 @@ abstract = { This paper considers the problem of designing fast, approximate, co
issn = {0004-5411, 1557-735X}, issn = {0004-5411, 1557-735X},
url = {https://dl.acm.org/doi/10.1145/3828.3829}, url = {https://dl.acm.org/doi/10.1145/3828.3829},
doi = {10.1145/3828.3829}, doi = {10.1145/3828.3829},
abstract = {In a nonnegative edge-weighted network, the weight of an edge represents the effort required by an attacker to destroy the edge, and the attacker derives a benefit for each new component created by destroying edges.The attacker may want to minimize over subsetsof edgesthe difference between (or the ratio of) the effort incurred and the benefit received. This idea leads to the definition of the “strength” of the network, a measure of the resistanceof the network to such attacks. Efficient algorithms for the optimal attack problem, the problem of computing the strength, and the problem of finding a minimum cost “reinforcement” to achieve a desired strength are given. These problems are also solved for a different model, in which the attacker wants to separate vertices from a fixed central vertex.},
language = {en}, language = {en},
number = {3}, number = {3},
urldate = {2025-04-11}, urldate = {2025-04-11},
@@ -66,12 +65,11 @@ abstract = { This paper considers the problem of designing fast, approximate, co
@article{chekuri_lp_2020, @article{chekuri_lp_2020,
title = {{LP} {Relaxation} and {Tree} {Packing} for {Minimum} \$k\$-{Cut}}, title = {{LP} {Relaxation} and {Tree} {Packing} for {Minimum} $k$-{Cut}},
volume = {34}, volume = {34},
issn = {0895-4801, 1095-7146}, issn = {0895-4801, 1095-7146},
url = {https://epubs.siam.org/doi/10.1137/19M1299359}, url = {https://epubs.siam.org/doi/10.1137/19M1299359},
doi = {10.1137/19M1299359}, doi = {10.1137/19M1299359},
abstract = {Karger used spanning tree packings [D. R. Karger, J. ACM, 47 (2000), pp. 46-76] to derive a near linear-time randomized algorithm for the global minimum cut problem as well as a bound on the number of approximate minimum cuts. This is a different approach from his well-known random contraction algorithm [D. R. Karger, Random Sampling in Graph Optimization Problems, Ph.D. thesis, Stanford University, Stanford, CA, 1995, D. R. Karger and C. Stein, J. ACM, 43 (1996), pp. 601--640]. Thorup developed a fast deterministic algorithm for the minimum k-cut problem via greedy recursive tree packings [M. Thorup, Minimum k-way cuts via deterministic greedy tree packing, in Proceedings of the Fortieth Annual ACM Symposium on Theory of Computing, ACM, 2008, pp. 159--166]. In this paper we revisit properties of an LP relaxation for k-Cut proposed by Naor and Rabani [Tree packing and approximating k-cuts, in Proceedings of the Twelfth Annual ACM-SIAM Symposium on Discrete Algorithms, Vol. 103, SIAM, Philadelphia, 2001, pp. 26--27], and analyzed in [C. Chekuri, S. Guha, and J. Naor, SIAM J. Discrete Math., 20 (2006), pp. 261--271]. We show that the dual of the LP yields a tree packing that, when combined with an upper bound on the integrality gap for the LP, easily and transparently extends Karger's analysis for mincut to the k-cut problem. In addition to the simplicity of the algorithm and its analysis, this allows us to improve the running time of Thorup's algorithm by a factor of n. We also improve the bound on the number of {\textbackslash}alpha -approximate k-cuts. Second, we give a simple proof that the integrality gap of the LP is 2(1 - 1/n). Third, we show that an optimum solution to the LP relaxation, for all values of k, is fully determined by the principal sequence of partitions of the input graph. This allows us to relate the LP relaxation to the Lagrangean relaxation approach of Barahona [Oper. Res. Lett., 26 (2000), pp. 99--105] and Ravi and Sinha [European J. Oper. Res., 186 (2008), pp. 77--90]; it also shows that the idealized recursive tree packing considered by Thorup gives an optimum dual solution to the LP.},
language = {en}, language = {en},
number = {2}, number = {2},
urldate = {2022-04-10}, urldate = {2022-04-10},

99
test.sage Normal file
View File

@@ -0,0 +1,99 @@
'''
gap is not constant.
OPT(IP): 3.0
OPT(LP): 0.6000000000000003
gap: 4.999999999999997
w: {(0, 2): 7, (0, 3): 6, (1, 2): 3, (1, 3): 9}
c: {(0, 2): 8, (0, 3): 9, (1, 2): 10, (1, 3): 3}
b: 8.0
edges: [(0, 2), (0, 3), (1, 2), (1, 3)]
IP solution: [('x[0,2]', 0.0), ('x[0,3]', 0.0), ('x[1,2]', 1.0), ('x[1,3]', 0.0), ('y[0,2]', 0.0), ('y[0,3]', 0.0), ('y[1,2]', 0.0), ('y[1,3]', 1.0)]
LP solution: [('x[0,2]', 0.0), ('x[0,3]', 0.0), ('x[1,2]', 0.20000000000000012), ('x[1,3]', 0.0), ('y[0,2]', 0.39999999999999997), ('y[0,3]', 0.39999999999999997), ('y[1,2]', 0.0), ('y[1,3]', 0.39999999999999997)]
'''
from random import randint
from sage.all import *
from sage.matroids.all import *
import gurobipy as gp
from gurobipy import GRB
def interdiction(G, w, c, b, vartype=GRB.BINARY):
"""
Interdiction problem on a graph G with cut weights w, interdiction costs c
and budget b.
"""
model = gp.Model("mip1")
# model.Params.LogToConsole = 0
edges=G.edges(labels=False)
# Variables
x = model.addVars(edges, vtype=vartype, name="x", lb=0)
y = model.addVars(edges, vtype=vartype, name="y", lb=0)
# Objective
model.setObjective(gp.quicksum(w[e] * x[e] for e in edges),
GRB.MINIMIZE)
# Constraints
# knapsack
model.addConstr(gp.quicksum(c[e] * y[e] for e in edges) <= b)
# cut
M=Matroid(G)
for b in M.bases():
model.addConstr(gp.quicksum(x[e]+y[e] for e in b) >= 1)
# Solve
model.optimize()
solutions = []
for v in model.getVars():
solutions.append((v.varName, v.x))
return model.ObjVal,solutions
def mincut(G, c, vartype=GRB.BINARY):
model = gp.Model("mip1")
# model.Params.LogToConsole = 0
edges=G.edges(labels=False)
# Variables
x = model.addVars(edges, vtype=vartype, name="x", lb=0)
# Objective
model.setObjective(gp.quicksum(c[e] * x[e] for e in edges),
GRB.MINIMIZE)
# Constraints
M=Matroid(G)
for b in M.bases():
model.addConstr(gp.quicksum(x[e] for e in b) >= 1)
# Solve
model.optimize()
return model.ObjVal
## enumerate all graphs
lb = 4
ub = 6
f = lambda G: G.is_connected()
for n in range(lb, ub + 1):
for G in filter(f, graphs(n)):
for _ in range(10): # use 10 random weights
# generate w,c,b
edges=G.edges(labels=False)
w = {e: randint(1, 10) for e in edges}
c = {e: randint(1, 10) for e in edges}
b = mincut(G, c)-randint(1, 5)
if b < 0: continue
IP,solIP=interdiction(G, w, c, b, GRB.BINARY)
LP,solLP=interdiction(G, w, c, b, GRB.CONTINUOUS)
print(f"OPT(IP): {IP}")
print(f"OPT(LP): {LP}")
print(f"gap: {IP/LP}")
if IP/LP > 4:
print(f"w: {w}")
print(f"c: {c}")
print(f"b: {b}")
print("edges:", G.edges(labels=False))
print("IP solution:", solIP)
print("LP solution:", solLP)
exit()