Algorithm-part3-week1

本文介绍了两种高效的贪心算法——普里姆算法和克鲁斯卡尔算法,用于寻找图中的最小生成树。这两种算法都能在合理的时间复杂度内完成任务,尤其是在使用合适的数据结构时。文章还详细探讨了普里姆算法的正确性和快速实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Minimum spanning trees
Informal goal:
Connect a bunch of points together as cheaply as possible.
Application: Clustering(more later), networking.
Blazingly Fast Greedy Algorithms:
−− Prim’s Algorithm
−− Kruskal’s Algorithm
O(mlogn) time : (using suitable data structures)
m: # of edges. n : # of vertices
Problem Definition
Input: Undirected graph G = (V,E) and a cost cece for each edge eEe∈E.
Assume adjacent list repersentation.
OK if edge costs are negative.
Output:
minimum cost tree TET⊆E that spans all vertices. (cost: sum of edge costs).
(1) T has no cycles. (2) the subgraph (V,T)(V,T) is connected.
(i.e., contains path between each pair of vertices).
Standing Assumptions
Assumption #1: Input graph G is connected.
Else no spanning trees.
Easy to check in preprocessing (depth-first search).
Assumption #2: Edge costs are distinct.
Prim’s MST Algorithm
Initialize X = {s} .[ sVs∈V chosen arbitrarily].
T = .[invariant: X = vertices spanned by tree-so-far T].
While X V
−− Let e=(u,v)e=(u,v) be the cheapest edge of G with uX,vXu∈X,v∉X.
−− Add ee to T.
Add vv to X.
While loop: increase # of spanned vertices in cheapest way possible.
Correctness of Prim’s Algorithm
Theorem: Prim’s algorithm always computes an MST
Part I: Computes a spanning tree T.
[Will use basic properties of graphs and spanning trees]
(Useful also in Kruskal’s MST algorithm)
Part II: TT∗ is an MST.
[Will use the “Cut Property”] (Useful also in Kruskal’s MST algorithm)
Later : Fast [O(m log n)] implementation using heaps.
Empty Cut Lemma
Empty Cut Lemma: A graph is not connected ⇔∃
cut(A,B) with no crossing edges.
Proof:() Assume the RHS. Pick any uAu∈A and vBv∈B. Since no edges cross (A,B)(A,B) there is no u,vu,v path in G. G⇒G not connected.
() Assume the LHS. Suppose G has no uvu−v path. Define
A = {Vertices reachable from uu in G}.(u’s connected components).
B = {All other vertices} (all other connected components)
Note: No edges cross cut (A,B) (otherwise A would be bigger.)
Two Easy Facts.
Double-Crossing Lemma: Suppose the cycle CEC⊆E has an edge crossing the cut (A,BA,B): then so does some other edge of C.
Lonely Cut Corollary: If ee is the edge crossing some cut (A,B), then it is not in any cycle.
Running time of Prim’s Algorithms
Initialize X = {s} [sVs∈V chosen arbitrarily ]
T=−T=∅ [invariant: X = vertices spanned by tree-so-far T]
While XV
−− Let e=(u,v)e=(u,v) be the cheapest edge f G with uX,vXu∈X,v∉X.
−− Add ee to T, add vv to X.
Runnig time of straightforward implementation:
O(n)−O(n) iterations[where n=n= # vertices]
O(m)−O(m) time per iteration [where m=m= # of edges]
O(mn)⇒O(mn) time.
Prim’s Algorithm with Heaps
[Compare to fast implementation of Dijkstra’s algorithm]
Invariant #1: Elements in heap = vertices of VXV−X.
Invariant #2: For vVX,v∈V−X, Key[v] = cheapest edge (u,v)(u,v) with iXi∈X (or ++∞ if no such edges exist).
Check : Can initialize heap with O(m+nlogn)=O(mlogn)O(m+nlogn)=O(mlogn) preprocessing.
To compare keys n1n−1 Inserts mn1m≥n−1 since GG connected.
Note: Given invariants< Extract-Min yields next vertex vX and edge(u,vu,v) crossing (X,VXX,V−X) to add to X and T, respectively.
Maintaining Invariant #2
Issue: Might need to recompute some keys to maintain Invariant #2 after
each Extract-Min.
Pseudocode: When vv added to X:
For each edge(v,w)E(v,w)∈E:
−− if wVXw∈V−X :
−− Delete ww from heap.
Recompute key[w] = min {key[w],cvwkey[w],cvw}
−− Re-Insert into heap.
Running Time with Heaps
Dominated by time required for heap operations.
(n1n−1) Inserts during preprocessing.
(n1) Extract-Mins (one per iteration of while loop).
Each edge(v,w) triggers one Delete/Insert combo.
[When its first endpoint is sucked into X]
O(m)⇒O(m) heap operations.[Recall mn1m≥n−1 since GG connected].
O(mlog(n))⇒O(mlog(n)) time.

内容概要:该论文探讨了一种基于粒子群优化(PSO)的STAR-RIS辅助NOMA无线通信网络优化方法。STAR-RIS作为一种新型可重构智能表面,能同时反射和传输信号,与传统仅能反射的RIS不同。结合NOMA技术,STAR-RIS可以提升覆盖范围、用户容量和频谱效率。针对STAR-RIS元素众多导致获取完整信道状态信息(CSI)开销大的问题,作者提出一种在不依赖完整CSI的情况下,联合优化功率分配、基站波束成形以及STAR-RIS的传输和反射波束成形向量的方法,以最大化总可实现速率并确保每个用户的最低速率要求。仿真结果显示,该方案优于STAR-RIS辅助的OMA系统。 适合人群:具备一定无线通信理论基础、对智能反射面技术和非正交多址接入技术感兴趣的科研人员和工程师。 使用场景及目标:①适用于希望深入了解STAR-RIS与NOMA结合的研究者;②为解决无线通信中频谱资源紧张、提高系统性能提供新的思路和技术手段;③帮助理解PSO算法在无线通信优化问题中的应用。 其他说明:文中提供了详细的Python代码实现,涵盖系统参数设置、信道建模、速率计算、目标函数定义、约束条件设定、主优化函数设计及结果可视化等环节,便于读者理解和复现实验结果。此外,文章还对比了PSO与其他优化算法(如DDPG)的区别,强调了PSO在不需要显式CSI估计方面的优势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值