first commit

This commit is contained in:
Yu Cong 2025-05-09 23:07:38 +08:00
commit 7ec74ff9d1
5 changed files with 1012 additions and 0 deletions

311
.gitignore vendored Normal file
View File

@ -0,0 +1,311 @@
.vscode/
*.sage.py
## Core latex/pdflatex auxiliary files:
*.aux
*.lof
*.log
*.lot
*.fls
*.out
*.toc
*.fmt
*.fot
*.cb
*.cb2
.*.lb
## Intermediate documents:
*.dvi
*.xdv
*-converted-to.*
# these rules might exclude image files for figures etc.
# *.ps
# *.eps
# *.pdf
## Generated if empty string is given at "Please type another file name for output:"
.pdf
## Bibliography auxiliary files (bibtex/biblatex/biber):
*.bbl
*.bbl-SAVE-ERROR
*.bcf
*.bcf-SAVE-ERROR
*.blg
*-blx.aux
*-blx.bib
*.run.xml
## Build tool auxiliary files:
*.fdb_latexmk
*.synctex
*.synctex(busy)
*.synctex.gz
*.synctex.gz(busy)
*.pdfsync
*.rubbercache
rubber.cache
## Build tool directories for auxiliary files
# latexrun
latex.out/
## Auxiliary and intermediate files from other packages:
# algorithms
*.alg
*.loa
# achemso
acs-*.bib
# amsthm
*.thm
# beamer
*.nav
*.pre
*.snm
*.vrb
# changes
*.soc
# comment
*.cut
# cprotect
*.cpt
# elsarticle (documentclass of Elsevier journals)
*.spl
# endnotes
*.ent
# fixme
*.lox
# feynmf/feynmp
*.mf
*.mp
*.t[1-9]
*.t[1-9][0-9]
*.tfm
#(r)(e)ledmac/(r)(e)ledpar
*.end
*.?end
*.[1-9]
*.[1-9][0-9]
*.[1-9][0-9][0-9]
*.[1-9]R
*.[1-9][0-9]R
*.[1-9][0-9][0-9]R
*.eledsec[1-9]
*.eledsec[1-9]R
*.eledsec[1-9][0-9]
*.eledsec[1-9][0-9]R
*.eledsec[1-9][0-9][0-9]
*.eledsec[1-9][0-9][0-9]R
# glossaries
*.acn
*.acr
*.glg
*.glo
*.gls
*.glsdefs
*.lzo
*.lzs
*.slg
*.slo
*.sls
# uncomment this for glossaries-extra (will ignore makeindex's style files!)
# *.ist
# gnuplot
*.gnuplot
*.table
# gnuplottex
*-gnuplottex-*
# gregoriotex
*.gaux
*.glog
*.gtex
# htlatex
*.4ct
*.4tc
*.idv
*.lg
*.trc
*.xref
# hypdoc
*.hd
# hyperref
*.brf
# knitr
*-concordance.tex
# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files
# *.tikz
*-tikzDictionary
# listings
*.lol
# luatexja-ruby
*.ltjruby
# makeidx
*.idx
*.ilg
*.ind
# minitoc
*.maf
*.mlf
*.mlt
*.mtc[0-9]*
*.slf[0-9]*
*.slt[0-9]*
*.stc[0-9]*
# minted
_minted*
*.pyg
# morewrites
*.mw
# newpax
*.newpax
# nomencl
*.nlg
*.nlo
*.nls
# pax
*.pax
# pdfpcnotes
*.pdfpc
# sagetex
*.sagetex.sage
*.sagetex.py
*.sagetex.scmd
# scrwfile
*.wrt
# svg
svg-inkscape/
# sympy
*.sout
*.sympy
sympy-plots-for-*.tex/
# pdfcomment
*.upa
*.upb
# pythontex
*.pytxcode
pythontex-files-*/
# tcolorbox
*.listing
# thmtools
*.loe
# TikZ & PGF
*.dpth
*.md5
*.auxlock
# titletoc
*.ptc
# todonotes
*.tdo
# vhistory
*.hst
*.ver
# easy-todo
*.lod
# xcolor
*.xcp
# xmpincl
*.xmpi
# xindy
*.xdy
# xypic precompiled matrices and outlines
*.xyc
*.xyd
# endfloat
*.ttt
*.fff
# Latexian
TSWLatexianTemp*
## Editors:
# WinEdt
*.bak
*.sav
# Texpad
.texpadtmp
# LyX
*.lyx~
# Kile
*.backup
# gummi
.*.swp
# KBibTeX
*~[0-9]*
# TeXnicCenter
*.tps
# auto folder when using emacs and auctex
./auto/*
*.el
# expex forward references with \gathertags
*-tags.tex
# standalone packages
*.sta
# Makeindex log files
*.lpz
# xwatermark package
*.xwm
# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib
# option is specified. Footnotes are the stored in a file with suffix Notes.bib.
# Uncomment the next line to have this generated file ignored.
#*Notes.bib

532
chao.sty Normal file
View File

@ -0,0 +1,532 @@
% ========================-*- LaTeX -*-=========================
%
% chao.sty -- modified from jeffe.sty
% jeffe.sty can be found at http://web.engr.illinois.edu/~jeffe/pubs/latex.html
%
% ==========================================================
\ProvidesPackage{chao}
% remarkable size
\newif\ifchao@remarkable
\DeclareOption{remarkable}{\chao@remarkabletrue}
\PassOptionsToPackage{hyphens}{url}
\PassOptionsToPackage{unicode}{hyperref}
\PassOptionsToPackage{naturalnames}{hyperref}
\ProcessOptions
\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}
% st mary fonts
\RequirePackage{stmaryrd} % comment out if unavailable
\SetSymbolFont{stmry}{bold}{U}{stmry}{m}{n}
\RequirePackage{wasysym}
% nagging
\RequirePackage[l2tabu, orthodox]{nag}
\RequirePackage[all,warning]{onlyamsmath}
\RequirePackage{graphicx} % essentials
\RequirePackage{microtype}
\RequirePackage[mathletters]{ucs} % allow Unicode in .tex file
\RequirePackage[utf8]{inputenc}
\RequirePackage[charter]{mathdesign} % change fonts
\RequirePackage{XCharter} % change fonts
\RequirePackage{berasans, beramono}
\RequirePackage{eucal}
\RequirePackage[nocompress]{cite} % other convenient stuff
\RequirePackage{enumerate}
%\usepackage{pgf,tikz}
\RequirePackage{wrapfig}
\RequirePackage[medium,compact]{titlesec}
\RequirePackage{verbatim}
\usepackage{CJKutf8}
\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
% line numbers (be nice to the referee)
\RequirePackage[mathlines, pagewise]{lineno}
%\linenumbers
\nolinenumbers
\renewcommand\linenumberfont{\normalfont\tiny\sffamily\color{gray}}
\setlength\linenumbersep{2em}
\numberwithin{figure}{section}
\ifchao@remarkable
\RequirePackage[paperheight=209.6mm, paperwidth=157.2mm, top=0.2in,bottom=0.2in,right=0.2in,left=0.2in]{geometry}
\tolerance=10000
\else
\RequirePackage[margin=1in]{geometry}
\fi
%\setlength{\topmargin}{-0.5in} \setlength{\textwidth}{6.5in}
%\setlength{\oddsidemargin}{0.0in} \setlength{\textheight}{9.1in}
%\pagestyle{empty}
%\newlength{\pagewidth}
%\setlength{\pagewidth}{6.5in} %\pagestyle{empty}
\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
% Chao addition
\def\email#1{\href{mailto:#1}{#1}}
% chinese
\def\zh#1{\begin{CJK}{UTF8}{gbsn}#1\end{CJK}}
% ----------------------------------------------------------------------
% 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\varepsilon % 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{\QED}\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}}

BIN
main.pdf Normal file

Binary file not shown.

67
main.tex Normal file
View File

@ -0,0 +1,67 @@
\documentclass[11pt]{article}
\usepackage{chao}
\usepackage{natbib}
\title{Approximation Algorithms for Sparsest Cut}
\author{Class 4. \zh{丛宇}, 202411081537\\ Major: Theoretical Computer Science}
\date{}
\DeclareMathOperator*{\opt}{OPT}
\DeclareMathOperator*{\len}{len}
\newcommand{\scut}{\textsc{Sparsest Cut}}
\newcommand{\nonuscut}{\textsc{Non-Uniform Sparsest Cut}}
\newcommand{\expansion}{\textsc{Expansion}}
\begin{document}
\maketitle
\paragraph{Research problem} What is the best possible approximation rate of linear programming based approximation algorithms for \scut? What about algorithms for planar graphs?
\section{Introduction}
% Requirement: The introduction may have the following parts:
% Establishing the importance (Background),
% literature review (previous research contributions)
% Gap/the specific problem
% The present study (the research topic, the research purpose )
% The information should be presented in coherent paragraphs.
\scut{} is a fundamental problem in graph algorithms with connections to various cut related problems.
\begin{problem}[\nonuscut]
The input is a graph $G=(V,E)$ with edge capacities $c:E\to \R_+$ and a set of vertex pairs $\{s_1,t_1\},\dots,\{s_k,t_k\}$ along with demand values $D_1,\dots,D_k\in \R_+$. The goal is to find a cut $\delta(S)$ of $G$ such that $\frac{c(\delta(S))}{\sum_{i:|S\cap \set{s_i,t_i}|=1}D_i}$ is minimized.
\end{problem}
In other words, \nonuscut{} finds the cut that minimizes its capacity divided by the sum of demands of the vertex pairs it separates. There are two important varients of \nonuscut{}. Note that we always consider unordered pair $\{s_i,t_i\}$, i.e., we do not distinguish $\{s_i,t_i\}$ and $\{t_i,s_i\}$.
\scut{} is the uniform version of \nonuscut{}. The demand is 1 for every possible vertex pair $\{s_i,t_i\}$. In this case, we can remove from the input the pairs and demands. The goal becomes to minimize $\frac{c(\delta(S))}{|S||V\setminus S|}$.
\expansion{} further simplifies the objective of \scut{} to $\min_{|S|\leq n/2}\frac{c(\delta(S))}{|S|}$.
These problems are interesting since they are related to central concepts in graph theory and help to design algorithms for hard problems on graph. One connections is expander graphs. The importance of expander graphs is thoroughly surveyed in \citep{hoory_expander_2006}. The optimum of \expansion{} is also known as Cheeger constant or conductance of a graph. \scut{} provides a 2-approximation of Cheeger constant, which is especially important in the context of expander graphs as it is a way to measure the edge expansion of a graph. \nonuscut{} is related to other cut problems such as Multicut and Balanced Separator.
\subsection{related works}
\scut{} is generally hard. The currently best approximation algorithm has ratio $O(\sqrt{\log n})$ and running time $\tilde{O}(n^2)$ \citep{arora_osqrtlogn_2010}. Prior to this currently optimal result, there is a long line of research optimizing both the approximation ratio and the complexity, see \citep{arora_expander_2004,leighton_multicommodity_1999}
\section{Literature Review}
% Requirement: summarize previous research contributions and identify the gap or the specific problem
\section{The Research Design}
% Requirement : Your research design may include exact details of your design and the information should be presented in coherent paragraphs:
% Example:
% Research type: e.g. qualitative study, using primary data
% Sources and other important details
% Research methods: e.g. Questionnaire surveys and interviews
% Possible difficulties/ problems or issues worth considering
% Data analysis (the specific data analysis method)
% e.g. Using SPSS to analyze the survey data and Using NVivo to analyze the interview data (details of the method and reasons for the choice)
% The significance/ implications of the study
\section{Time Table}
% Data collection: e.g. During the program and first 6 months after the program (Aug. 2023- May. 2024)
% Data analysis: June 2024- Sept. 2024
\bibliographystyle{plainnat}
\bibliography{ref}
\end{document}

102
ref.bib Normal file
View File

@ -0,0 +1,102 @@
@article{chalermsook_approximating_2024,
title = {Approximating {Sparsest} {Cut} in {Low}-{Treewidth} {Graphs} via {Combinatorial} {Diameter}},
volume = {20},
issn = {1549-6325, 1549-6333},
url = {http://arxiv.org/abs/2111.06299},
doi = {10.1145/3632623},
number = {1},
urldate = {2025-05-07},
journal = {ACM Transactions on Algorithms},
author = {Chalermsook, Parinya and Kaul, Matthias and Mnich, Matthias and Spoerhase, Joachim and Uniyal, Sumedha and Vaz, Daniel},
month = jan,
year = {2024},
note = {arXiv:2111.06299 [cs]},
keywords = {Computer Science - Data Structures and Algorithms},
pages = {1--20},
annote = {Comment: 15 pages, 3 figures},
}
@misc{sparsest_cut_notes,
author = {Chekuri, Chandra},
title = {Introduction to Sparsest Cut},
howpublished = {Lecture notes, UIUC CS 598CSC: Topics in Graph Algorithms},
year = {2024},
note = {Accessed on May 9, 2025},
url = {https://courses.grainger.illinois.edu/cs598csc/fa2024/Notes/lec-sparsest-cut.pdf}
}
@article{hoory_expander_2006,
title = {Expander graphs and their applications},
volume = {43},
issn = {0273-0979},
url = {http://www.ams.org/journal-getitem?pii=S0273-0979-06-01126-8},
doi = {10.1090/S0273-0979-06-01126-8},
language = {en},
number = {04},
urldate = {2025-05-09},
journal = {Bulletin of the American Mathematical Society},
author = {Hoory, Shlomo and Linial, Nathan and Wigderson, Avi},
month = aug,
year = {2006},
pages = {439--562},
}
@article{arora_osqrtlogn_2010,
title = {\${O}({\textbackslash}sqrt\{{\textbackslash}logn\})\$ {Approximation} to {SPARSEST} {CUT} in \${\textbackslash}tilde\{{O}\}(n{\textasciicircum}2)\$ {Time}},
volume = {39},
issn = {0097-5397, 1095-7111},
url = {http://epubs.siam.org/doi/10.1137/080731049},
doi = {10.1137/080731049},
language = {en},
number = {5},
urldate = {2025-05-09},
journal = {SIAM Journal on Computing},
author = {Arora, Sanjeev and Hazan, Elad and Kale, Satyen},
month = jan,
year = {2010},
pages = {1748--1771},
}
@misc{dorsi2024sparsestcuteigenvaluemultiplicities,
title={Sparsest cut and eigenvalue multiplicities on low degree Abelian Cayley graphs},
author={Tommaso d'Orsi and Chris Jones and Jake Ruotolo and Salil Vadhan and Jiyu Zhang},
year={2024},
eprint={2412.17115},
archivePrefix={arXiv},
primaryClass={cs.DS},
url={https://arxiv.org/abs/2412.17115},
}
@inproceedings{arora_expander_2004,
address = {New York, NY, USA},
series = {{STOC} '04},
title = {Expander flows, geometric embeddings and graph partitioning},
isbn = {978-1-58113-852-8},
url = {https://doi.org/10.1145/1007352.1007355},
doi = {10.1145/1007352.1007355},
abstract = {We give a O(√log n)-approximation algorithm for sparsest cut, balanced separator, and graph conductance problems. This improves the O(log n)-approximation of Leighton and Rao (1988). We use a well-known semidefinite relaxation with triangle inequality constraints. Central to our analysis is a geometric theorem about projections of point sets in Rd, whose proof makes essential use of a phenomenon called measure concentration. We also describe an interesting and natural "certificate" for a graph's expansion, by embedding an n-node expander in it with appropriate dilation and congestion. We call this an expander flow.},
urldate = {2025-05-09},
booktitle = {Proceedings of the thirty-sixth annual {ACM} symposium on {Theory} of computing},
publisher = {Association for Computing Machinery},
author = {Arora, Sanjeev and Rao, Satish and Vazirani, Umesh},
month = jun,
year = {2004},
pages = {222--231},
file = {Submitted Version:/Users/congyu/Zotero/storage/GALRKD2A/Arora et al. - 2004 - Expander flows, geometric embeddings and graph partitioning.pdf:application/pdf},
}
@article{leighton_multicommodity_1999,
title = {Multicommodity max-flow min-cut theorems and their use in designing approximation algorithms},
volume = {46},
issn = {0004-5411},
url = {https://dl.acm.org/doi/10.1145/331524.331526},
doi = {10.1145/331524.331526},
number = {6},
urldate = {2025-05-09},
journal = {J. ACM},
author = {Leighton, Tom and Rao, Satish},
month = nov,
year = {1999},
pages = {787--832},
file = {Full Text PDF:/Users/congyu/Zotero/storage/EVDSDZAH/Leighton and Rao - 1999 - Multicommodity max-flow min-cut theorems and their use in designing approximation algorithms.pdf:application/pdf},
}