<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Semi-Definite-Programming on Yahel Uffenheimer</title><link>https://yahel1216.github.io/tags/semi-definite-programming/</link><description>Recent content in Semi-Definite-Programming on Yahel Uffenheimer</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Mon, 12 Jan 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://yahel1216.github.io/tags/semi-definite-programming/index.xml" rel="self" type="application/rss+xml"/><item><title>Approximating the Cut-Norm - Part 1</title><link>https://yahel1216.github.io/posts/cut-norm/</link><pubDate>Mon, 12 Jan 2026 00:00:00 +0000</pubDate><guid>https://yahel1216.github.io/posts/cut-norm/</guid><description>&lt;div
 class="alert alert-note my-6 overflow-hidden rounded-lg transition-all duration-200 ease-out hover:-translate-y-0.5 hover:shadow-md"
 style="background-color: color-mix(in srgb, var(--color-note) 10%, transparent);
 border-left-color: var(--color-note);
 --hover-bg: color-mix(in srgb, var(--color-note) 15%, transparent);"
 onmouseover="this.style.backgroundColor = this.style.getPropertyValue('--hover-bg')"
 onmouseout="this.style.backgroundColor = 'color-mix(in srgb, var(--color-note) 10%, transparent)'"
 role="alert"
 aria-labelledby="alert-0-title"&gt;
 
 &lt;div
 class=" flex items-center justify-between px-6 py-6"
 &gt;
 &lt;div class="flex items-center gap-3"&gt;
 
 &lt;h4
 id="alert-0-title"
 class="m-0 font-semibold text-foreground/90"&gt;
 Prerequisites
 &lt;/h4&gt;
 &lt;/div&gt;

 
 
 &lt;/div&gt;

 
 &lt;div
 id="alert-0-content"
 class="alert-content px-6 pb-6"&gt;
 &lt;div class="prose prose-sm text-foreground/90 max-w-none"&gt;
 &lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Linear Algebra:&lt;/strong&gt; Eigenvalues, PSD matrices, Tensor products.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Convex Optimization:&lt;/strong&gt; Basic familiarity with Semidefinite Programming (SDP).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Probability:&lt;/strong&gt; Expectations, Markov&amp;rsquo;s inequality.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Graph Theory:&lt;/strong&gt; Basic definitions, Cuts, Regularity.&lt;/li&gt;
&lt;/ul&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;&lt;script&gt;
function toggleAlert(alertId) {
 const content = document.getElementById(alertId + '-content');
 const chevron = document.getElementById(alertId + '-chevron');
 const header = content.previousElementSibling;
 
 if (content.classList.contains('hidden')) {
 content.classList.remove('hidden');
 chevron.style.transform = 'rotate(0deg)';
 header.setAttribute('aria-expanded', 'true');
 } else {
 content.classList.add('hidden');
 chevron.style.transform = 'rotate(-90deg)';
 header.setAttribute('aria-expanded', 'false');
 }
}


document.addEventListener('DOMContentLoaded', function() {
 const collapsedAlerts = document.querySelectorAll('.alert-content.hidden');
 collapsedAlerts.forEach(function(content) {
 const alertId = content.id.replace('-content', '');
 const chevron = document.getElementById(alertId + '-chevron');
 if (chevron) {
 chevron.style.transform = 'rotate(-90deg)';
 }
 });
});
&lt;/script&gt;

&lt;p&gt;Consider the following problem: Given an undirected graph $G=(V,E)$, let $A,B\subset V$ denote non-empty disjoint sets. Let $E(A,B)$ denote the set of edges in $E$ that cross from $A$ to $B$. Denote $D(A,B)=\frac{\left|E(A,B)\right|}{\left|A\right|\left|B\right|}$ to be the &lt;strong&gt;density&lt;/strong&gt; of edges crossing from $A$ to $B$.&lt;/p&gt;</description></item><item><title>Approximating the Cut-Norm - Part 2</title><link>https://yahel1216.github.io/posts/cut-norm-2/</link><pubDate>Mon, 12 Jan 2026 00:00:00 +0000</pubDate><guid>https://yahel1216.github.io/posts/cut-norm-2/</guid><description>&lt;div
 class="alert alert-note my-6 overflow-hidden rounded-lg transition-all duration-200 ease-out hover:-translate-y-0.5 hover:shadow-md"
 style="background-color: color-mix(in srgb, var(--color-note) 10%, transparent);
 border-left-color: var(--color-note);
 --hover-bg: color-mix(in srgb, var(--color-note) 15%, transparent);"
 onmouseover="this.style.backgroundColor = this.style.getPropertyValue('--hover-bg')"
 onmouseout="this.style.backgroundColor = 'color-mix(in srgb, var(--color-note) 10%, transparent)'"
 role="alert"
 aria-labelledby="alert-0-title"&gt;
 
 &lt;div
 class=" flex items-center justify-between px-6 py-6"
 &gt;
 &lt;div class="flex items-center gap-3"&gt;
 
 &lt;h4
 id="alert-0-title"
 class="m-0 font-semibold text-foreground/90"&gt;
 Prerequisites
 &lt;/h4&gt;
 &lt;/div&gt;

 
 
 &lt;/div&gt;

 
 &lt;div
 id="alert-0-content"
 class="alert-content px-6 pb-6"&gt;
 &lt;div class="prose prose-sm text-foreground/90 max-w-none"&gt;
 &lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Linear Algebra:&lt;/strong&gt; Eigenvalues, PSD matrices, Tensor products.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Convex Optimization:&lt;/strong&gt; Basic familiarity with Semidefinite Programming (SDP).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Probability:&lt;/strong&gt; Expectations, Markov&amp;rsquo;s inequality.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Graph Theory:&lt;/strong&gt; Basic definitions, Cuts, Regularity.&lt;/li&gt;
&lt;/ul&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;&lt;script&gt;
function toggleAlert(alertId) {
 const content = document.getElementById(alertId + '-content');
 const chevron = document.getElementById(alertId + '-chevron');
 const header = content.previousElementSibling;
 
 if (content.classList.contains('hidden')) {
 content.classList.remove('hidden');
 chevron.style.transform = 'rotate(0deg)';
 header.setAttribute('aria-expanded', 'true');
 } else {
 content.classList.add('hidden');
 chevron.style.transform = 'rotate(-90deg)';
 header.setAttribute('aria-expanded', 'false');
 }
}


document.addEventListener('DOMContentLoaded', function() {
 const collapsedAlerts = document.querySelectorAll('.alert-content.hidden');
 collapsedAlerts.forEach(function(content) {
 const alertId = content.id.replace('-content', '');
 const chevron = document.getElementById(alertId + '-chevron');
 if (chevron) {
 chevron.style.transform = 'rotate(-90deg)';
 }
 });
});
&lt;/script&gt;

&lt;p&gt;We are interested in computing the cut norm of a matrix, defined by $$\|A\|_C=\max_{I\subset R,J\subset S}\left|\sum_{i\in I,j\in J}a_{i,j}\right|$$
where $A=(a_{i,j})_{i\in R,j\in S}$. We&amp;rsquo;ve seen this is a hard problem, and it is often equivalent to computing the $\infty\mapsto 1$ norm, defined by $$\|A\|_{\infty\mapsto 1}=\max_{x\in \set{\pm 1}^R, y\in \set{\pm1}^S} \sum_{i\in R,j\in S} a_{i,j}\cdot x_i\cdot y_j$$
We&amp;rsquo;ve already seen that computing the latter norm can be done by solving an integer quadratic program, which has a relaxation to a quadratically constrained quadratic program given by $$\max \sum_{i,j}a_{i,j}\cdot \langle u_i, v_j\rangle \quad\text{subject to}\quad \|u_i \|^2 = \|v_j\|^2=1$$ where the optimization is over vectors $u_1,\ldots,u_n$ and $v_1,\ldots ,v_m$. We&amp;rsquo;ve seen that this problem can be solved using semi-definite programming, and we&amp;rsquo;ve seen one method to round the solution, giving an approximation factor of $\approx 0.03$. In this post, we&amp;rsquo;ll see another method, which is much cleaner, and uses randomized rounding of this SDP.&lt;/p&gt;</description></item></channel></rss>