-
Notifications
You must be signed in to change notification settings - Fork 7
/
cnrss.xml
139 lines (138 loc) · 8.23 KB
/
cnrss.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>The Art Gallery Guardian</title>
<link>https://chaoxu.prof</link>
<description><![CDATA[Mostly notes on algorithms]]></description>
<atom:link href="https://chaoxu.prof/cnrss.xml" rel="self"
type="application/rss+xml" />
<lastBuildDate>Thu, 18 Aug 2022 00:00:00 UT</lastBuildDate>
<item>
<title>逼零集,点灯游戏和解线性方程组</title>
<link>https://chaoxu.prof/cnposts/2022-08-18-zero-forcing.html</link>
<description><![CDATA[<br />
<div>
<p>axpokl 3年前写下了<a
href="https://zhuanlan.zhihu.com/p/53646257">点灯游戏Flip Game的<span
class="math inline">O(n^3)</span>算法</a>,感觉颇为神奇<a href="#fn1"
class="footnote-ref" id="fnref1"
role="doc-noteref"><sup>1</sup></a>。文章的算法很巧妙,但是算法的正确性并不显然。想象整个算法抽象成为了两个矩阵<span
class="math inline">A</span>和<span class="math inline">B</span>。
用了Light Chasing操作得到了<span class="math inline">B</span>和<span
class="math inline">b'</span>. 解方程找到<span
class="math inline">By=b'</span>中的<span
class="math inline">y</span>. 然后对<span
class="math inline">y</span>进行light chasing操作获得<span
class="math inline">Ax=b</span>的解。</p>
<p>这个算法是否是正确的?原先以为这应该非常显然,但自己要解释给人听的时候发现自己没法马上证出来。而且我一度错误的以为矩阵<span
class="math inline">A</span>和<span
class="math inline">B</span>的秩都一样。 那么,是否有可能<span
class="math inline">Ax=b</span>存在解,我们找到了个<span
class="math inline">By=b'</span>的解<span
class="math inline">y</span>, 对<span
class="math inline">y</span>进行操作之后得到的向量<span
class="math inline">z</span>却无法满足<span
class="math inline">Ax=b</span>?从一个高维空间映射到了一个低维空间,我们竟然没有丢失什么信息嘛?axpokl也并没有给出正式的证明。</p>
<p>点灯游戏和解<span
class="math inline">Ax=b</span>是同一个问题。自然也会思考这算法如何延伸到解。</p>
<p>找了一堆文献后,发现算法里使用的性质在图上叫做逼零集(zero forcing
set)。图上初始有一些蓝色的点。如果有一个蓝色的点,有且仅有1个非蓝色的邻点,则染色这个邻点为蓝色。如果不断染色直到整个图都能被染为蓝色,则初始的那些顶点被称之为逼零集。逼零集自然也可以被定义在有向图上,也能定义在
矩阵上──如果把矩阵看成领接矩阵。逼零集满足一系列不错的属性,在物理和电网监测方面都有用途。不过认真的讨论用逼零集解方程,以及计算复杂度,我们并没有找到这样的文章。</p>
<p>为此,本校的研一学生<a
href="https://wangchienbo.github.io/">王建波</a>,数学科学学院的博士生周思芸和我做了点工作。证明了以下的定理。</p>
<div class="theorem-environment 定理" data-index="1" type="定理">
<span class="theorem-header"><span class="type">定理</span><span
class="index">1</span></span>
<p>给定有<span class="math inline">m</span>个非<span
class="math inline">0</span>元素的矩阵<span
class="math inline">A</span>,和一个大小为<span
class="math inline">k</span>的<span
class="math inline">A</span>的逼零集。可以在<span
class="math inline">O(mk+k^\omega)</span>时间创建一个空间<span
class="math inline">O(k^2)</span>的数据结构。使得给任意<span
class="math inline">b</span>, 可以在<span
class="math inline">O(k^2+m)</span>时间找到<span
class="math inline">Ax=b</span>的解。</p>
</div>
<p>文章<a
href="https://chaoxu.prof/files/papers/zeroforcing.pdf">可以这里看到</a>。我们也顺便将点灯游戏的复杂度降到了<span
class="math inline">O(n^{\omega}\log n)</span>,这部分倒是非常显然。</p>
<p>我线性代数已经忘得差不多了,基本简单证明都不会搞。所以在这个问题上,两位学生做出了比我要多很多贡献。</p>
<p>为了解决这个问题,我终于知道了最general的解线性方程组的算法是使用LSP分解<span
class="citation" data-cites="Jeann.2006">[<a href="#ref-Jeann.2006"
role="doc-biblioref">1</a>]</span>(非常像LUP分解)。对于一个<span
class="math inline">r</span>秩<span class="math inline">m\times
n</span>矩阵,LSP分解的复杂度是<span
class="math inline">O(mnr^{\omega-2})</span>。</p>
<h1 data-number="1" id="未解问题"><span
class="header-section-number">1</span> 未解问题</h1>
<ol type="1">
<li>找到最小逼零集是NP-hard的。是否存在快速的近似算法?</li>
<li><span class="math inline">O(mk)</span>的部分是否可以提升到<span
class="math inline">O(nk^{\omega-1})</span>或者<span
class="math inline">O(n^2k{\omega-2})</span>的算法?</li>
</ol>
<h1 class="unnumbered" id="bibliography">References</h1>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-Jeann.2006" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div
class="csl-right-inline">C.-P. Jeannerod, <strong><span>LSP</span>
matrix decomposition revisited</strong>, <span>École Normale Supérieure
de Lyon</span>, 2006.</div>
</div>
</div>
<section class="footnotes footnotes-end-of-document"
role="doc-endnotes">
<hr />
<ol>
<li id="fn1" role="doc-endnote"><p>我还在下面留言,表示 <span
class="math inline">O(n^\omega)</span>的算法应该存在。不过那时我没有意识到嵌套分割(nested
dissection)只能用在满秩矩阵。而且在有限域里,只有随机算法存在。<a
href="#fnref1" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
</ol>
</section>
</div>
<div class="hide-on-print">
<div class="info"><a href="https://chaoxu.prof">许超</a>与<time datetime="2022-08-18">2022-08-18</time>发布</div>
<div class="info">标签: </div>
</div>]]></description>
<pubDate>Thu, 18 Aug 2022 00:00:00 UT</pubDate>
<guid>https://chaoxu.prof/cnposts/2022-08-18-zero-forcing.html</guid>
<dc:creator>Chao Xu</dc:creator>
</item>
<item>
<title>一个覆盖问题</title>
<link>https://chaoxu.prof/cnposts/2022-07-10-a-covering-problem.html</link>
<description><![CDATA[<br />
<div>
<p>让<span class="math inline">A</span>为<span
class="math inline">\{0,\ldots,\ell\}</span>,最小的<span
class="math inline">B</span>有多大,使得<span
class="math inline">AB=\{ab\pmod n | a\in A, b\in B\}=\Z_n</span>?</p>
<p>大三本科生<a
href="https://keshi.pro/">史可</a>与我证明了可以找到满足条件的<span
class="math inline">B</span>并且<span
class="math inline">|B|=O(\frac{n}{\ell} \log n)</span> 。文章可以<a
href="https://chaoxu.prof/files/papers/cyclic-cover.pdf">这里提取</a>。</p>
<p>我很喜欢这个结果,耗时几个月,每次都是过段时间突然有个新想法于是做了点提高。最后的版本和之前的版本差距还蛮大的。以前的文章的最好结果是<span
class="math inline">\ell</span>不是太小或者太大的时候<span
class="math inline">B</span>的大小为<span
class="math inline">O(\frac{n}{\ell}\log n\log \log
n)</span>。我们刚开始消灭了<span
class="math inline">\ell</span>不是太小的需求,之后一段时间消灭了<span
class="math inline">\ell</span>不是太大的需求。那个时候史可就在我们<a
href="https://tcsuestc.com/2022/06/10/almost-tight-ell-covering-of-z_n/">每周seminar上做了个presentation(有slides)</a>。最近一个月突然想通了如何再消掉一个<span
class="math inline">\log \log
n</span>,并且大大简化之前的结论。有兴趣的可以看全文。</p>
</div>
<div class="hide-on-print">
<div class="info"><a href="https://chaoxu.prof">许超</a>与<time datetime="2022-07-10">2022-07-10</time>发布</div>
<div class="info">标签: </div>
</div>]]></description>
<pubDate>Sun, 10 Jul 2022 00:00:00 UT</pubDate>
<guid>https://chaoxu.prof/cnposts/2022-07-10-a-covering-problem.html</guid>
<dc:creator>Chao Xu</dc:creator>
</item>
</channel>
</rss>