Havel--Hakimi定理推断可图化 python
介绍:
哈维尔[1955]——哈吉米[1962]算法能够用来判读一个度序列d是否是可图化的。
哈维尔[1955]——哈吉米[1962]定理:
对于N > 1,长度为N的度序列d可以可图化当且仅当d*可以可图化
(d*是将d中最大的度delta删除,然后将当中delta个最大的度分别减去1得到的。
最小的可图化序列式d(1) = 0。)
证明:
充分性:
若N = 1。则是平庸的。对于N > 1。如果d为d(1) ≥ d(2) ≥ ...... ≥ d(n) 。
如果简单图G*拥有度序列d*,能够在G*中加入一个顶点V。
使得V与G*中度为d(2) - 1......d(delta+1) - 1的顶点邻接。
这些d(i)是d中的delta个最大度顶点,不一定是d*中的delta个最大度顶点。
必要性:
简单图G生成度序列d,然后G生成一个子图G*有度序列d*。让w为d中最大度delta的点。
S为delta个点的集合,当中有所期望的d(2)........d(delta + 1)。假设N(w) = S
则将w删除得到G*。
假设不然,则有些在S中的点与N(w)中的不同样,这时候。
能够通过在不改变每一个顶点的度的情况下。改变G的画法来添加| N(w) ∩ S |的个数。
因为| N(w) ∩ S |最多添加delta次。能够反复这一过程将G转化为G#
(拥有d且S中的点为w的邻接顶点)。
然后从G#中删除w得到拥有d*的G*。
因为N(w) ≠ S,能够选择点x属于S,点z∉s。且w与z有边,w与x无边。
我们希望通过在w与x之间加入边,删除w与z之间的边,但又不希望改变顶点的度。
因为d(x) ≥ d(z)而且w是z相连,则必定有一个点y与x邻接却不与z邻接。
这是採用一个2调换,加入边集{ wz, xy },删除{ wx, yz }来添加| N(w) ∩ S |。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGFuZG9yYV9tYWRhcmE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" width="300" height="300" alt="">
算法:
先将序列d逆序排序,得d(1) ≥ d(2) ≥ d(3) ≥ ........ ≥ d(n-1) ≥ d(n)。
delta = d1,将d1从d中删除。将d2一直到d(delta+1)的值都减去1得到新的度序列d*。
然后再将d*排序,循环。直到d*当中出现小于0的度,则不可能可图化,或者直到d*中全为0,则为可图化。
本质:
贪心算法
list1 = [ 4, 7, 7, 3, 3, 3, 2, 1 ]
list2 = [ 5, 4, 3, 3, 2, 2, 2, 1, 1, 1 ] def havel_hakimi_algo( degree_list ): degree_list.sort( reverse = True )
print degree_list
for degree in degree_list:
if degree < 0:
return False
if degree != 0:
remove_val = degree_list.pop( 0 )
for index in range( remove_val ):
degree_list[index] -= 1
havel_hakimi_algo( degree_list )
return True print havel_hakimi_algo( list1 )
print havel_hakimi_algo( list2 )
Havel--Hakimi定理推断可图化 python的更多相关文章
- POJ1659 Frogs' Neighborhood(Havel–Hakimi定理)
题意 题目链接 \(T\)组数据,给出\(n\)个点的度数,问是否可以构造出一个简单图 Sol Havel–Hakimi定理: 给定一串有限多个非负整数组成的序列,是否存在一个简单图使得其度数列恰为这 ...
- HDU 2454 Degree Sequence of Graph G(Havel定理 推断一个简单图的存在)
主题链接:pid=2454">http://acm.hdu.edu.cn/showproblem.php?pid=2454 Problem Description Wang Haiya ...
- Havel-Hakimi定理---通过度数列判断是否可图化
0.可图:一个非负整数组成的序列如果是某个无向图的度序列,则该序列是可图的. 1.度序列:Sequence Degree,若把图G所有顶点的度数排成一个序列,责成该序列为图G的一个序列.该序列可以是非 ...
- docker容器化python服务部署(supervisor-gunicorn-flask)
docker容器化python服务部署(supervisor-gunicorn-flask) 本文系作者原创,转载请注明出处: https://www.cnblogs.com/further-furt ...
- poj Transferring Sylla(怎样高速的推断一个图是否是3—连通图,求割点,割边)
Transferring Sylla 首先.什么是k连通图? k连通图就是指至少去掉k个点使之不连通的图. 题目: 题目描写叙述的非常裸.就是给你一张图要求你推断这图是否是3-连通图. 算法分析: / ...
- 14 张思维导图构建 Python 核心知识体系
ZOE是一名医学生,在自己博客分享了很多高质量的思维导图.本文中所列的 14 张思维导图(高清图见文末),是 17 年作者开始学习 Python 时所记录的,希望对大家有所帮助.原文:https:// ...
- 关于可图化序列的一点结论 NEU 1429
Graphic Sequence A graphic sequence is a sequence of numbers which can be the degree sequence of som ...
- poj 1659 Frogs' Neighborhood 度序列可图化 贪心
题意: 对一个无向图给出一个度序列,问他是否可简单图化. 分析: 依据Havel定理,直接贪心就可以. 代码: //poj 1659 //sep9 #include <iostream> ...
- 使用七牛云存储----大家自己的图床[python]
##写博客什么的总得贴图吧,图床选来选去还是七牛吧.嗯,就是你了 [OSchaina 源码] 结合FastStone Capture 简直爽歪歪. FastStone Capture 自动保存图片到文 ...
随机推荐
- Problem A: 调用函数,求三个数中最大数
#include<stdio.h> int max(int a,int b,int c); int main() { int a,b,c; while(scanf("%d %d ...
- Spring IOC 中三种注入方式
项目错误知识点记录 正文 最近在项目的时候,用到Spring框架,Spring框架提供了一种IOC的自动注入功能,可以很轻松的帮助我们创建一个Bean,这样就省的我们四处写new Object()这样 ...
- OC语言基础之NSDictionary
1.NSDictionary字典的创建 1: // key value 2: // key -==> value 3: NSDictionary *dict = [NSDictionary di ...
- iOS 获取自定义cell上按钮所对应cell的indexPath.row的方法
在UITableView或UICollectionView的自定义cell中创建一button,在点击该按钮时知道该按钮所在的cell在UITableView或UICollectionView中的行数 ...
- CSS3:box-sizing 怪异盒模型
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- t-sql 笔记(2)
1.用标点符号分隔的字符串,转换成表 -- SELECT * FROM dbo.split('581:579:519:279:406:361:560',':') ), )) )) AS BEGIN D ...
- react使用echarts
1.安装echarts: npm install echarts --save 2.制作线性图组件,只引入echart必要的js内容 /** * Created by yongyuehuang on ...
- GSM模块_GPRS数据传输机制和原理
通信专业术语 BSS--基站子系统,通过无线接口与移动台直接联系,负责在一定区域内和移动台通信.(GSM) BTS--基站收发台,可以看作一复杂的无线调制器,BSS的主要部分,每个分配有若干信道.(G ...
- mahout运行测试与数据挖掘算法之聚类分析(一)kmeans算法解析
在使用mahout之前要安装并启动hadoop集群 将mahout的包上传至linux中并解压即可 mahout下载地址: 点击打开链接 mahout中的算法大致可以分为三大类: 聚类,协同过滤和分类 ...
- Node.js meitulu图片批量下载爬虫1.06版
//====================================================== // https://www.meitulu.com图片批量下载Node.js爬虫1. ...