介绍:

哈维尔[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的更多相关文章

  1. POJ1659 Frogs' Neighborhood(Havel–Hakimi定理)

    题意 题目链接 \(T\)组数据,给出\(n\)个点的度数,问是否可以构造出一个简单图 Sol Havel–Hakimi定理: 给定一串有限多个非负整数组成的序列,是否存在一个简单图使得其度数列恰为这 ...

  2. HDU 2454 Degree Sequence of Graph G(Havel定理 推断一个简单图的存在)

    主题链接:pid=2454">http://acm.hdu.edu.cn/showproblem.php?pid=2454 Problem Description Wang Haiya ...

  3. Havel-Hakimi定理---通过度数列判断是否可图化

    0.可图:一个非负整数组成的序列如果是某个无向图的度序列,则该序列是可图的. 1.度序列:Sequence Degree,若把图G所有顶点的度数排成一个序列,责成该序列为图G的一个序列.该序列可以是非 ...

  4. docker容器化python服务部署(supervisor-gunicorn-flask)

    docker容器化python服务部署(supervisor-gunicorn-flask) 本文系作者原创,转载请注明出处: https://www.cnblogs.com/further-furt ...

  5. poj Transferring Sylla(怎样高速的推断一个图是否是3—连通图,求割点,割边)

    Transferring Sylla 首先.什么是k连通图? k连通图就是指至少去掉k个点使之不连通的图. 题目: 题目描写叙述的非常裸.就是给你一张图要求你推断这图是否是3-连通图. 算法分析: / ...

  6. 14 张思维导图构建 Python 核心知识体系

    ZOE是一名医学生,在自己博客分享了很多高质量的思维导图.本文中所列的 14 张思维导图(高清图见文末),是 17 年作者开始学习 Python 时所记录的,希望对大家有所帮助.原文:https:// ...

  7. 关于可图化序列的一点结论 NEU 1429

    Graphic Sequence A graphic sequence is a sequence of numbers which can be the degree sequence of som ...

  8. poj 1659 Frogs&#39; Neighborhood 度序列可图化 贪心

    题意: 对一个无向图给出一个度序列,问他是否可简单图化. 分析: 依据Havel定理,直接贪心就可以. 代码: //poj 1659 //sep9 #include <iostream> ...

  9. 使用七牛云存储----大家自己的图床[python]

    ##写博客什么的总得贴图吧,图床选来选去还是七牛吧.嗯,就是你了 [OSchaina 源码] 结合FastStone Capture 简直爽歪歪. FastStone Capture 自动保存图片到文 ...

随机推荐

  1. Arena | 用Excel设计的RPG游戏

    文章目录 写在前面 支持的软件 下载地址 游戏界面截图 写在前面 你在用Excel做报表的时候,世界的某个角落,有位大神早就用它做出了一款RPG游戏--Arena.xlsm 加拿大大学生Cary Wa ...

  2. Activity组件(传递数据)

    (一) 1.效果图:点击按钮“调用第二个Activity”,转到第二页面,之后点击“返回数据”,将第二个页面的数据传到第一个页面         2. activity_main.xml <?x ...

  3. IOS之Block的应用-textFeild的回调应用

    Block的一点优点为可以省略回调函数,简化代码今天我就应用了以下. 以下是代码片段. _testTextField1=[[MyTextField alloc] init]; [self.view a ...

  4. <摘录>字节对齐(强制对齐以及自然对齐)

    struct {}node; 32为的x86,window下VC下sizeof(node)的值为1,而linux的gcc下值为0: 一.WINDOWS下(VC--其实GCC和其原理基本一样,象这种问题 ...

  5. HTML5无刷新实现跳转页面技术

    window.onpopstate window.onpopstate是popstate事件在window对象上的事件句柄. 每当处于激活状态的历史记录条目发生变化时,popstate事件就会在对应w ...

  6. Firefox中好用的几个快捷键

    对于一些经常用FF(firefox)上网的朋友来说, 怎样加快上网的操作速度呢, 使用Firefox快捷键是很好的方法. 本人也经常遇到一些Firefox的很好的快捷键,现在我来告诉大家Firefox ...

  7. jQuery--样式

    Jquery(一)——样式篇1.$(document).ready 的作用是等页面的文档(document)中的节点都加载完毕后,再执行后续的代码, 因为我们在执行代码的时候,可能会依赖页面的某一个元 ...

  8. 【Sofa】Sofa比赛成绩记录

    最高得到过第4名,然后后面跌倒了第7名,现在追到了第6名.虽然名次还不是最高,但是很开心,今天能在一道一直困扰的题目上有突破,就是那个自行车预测的题目,开始过拟合了.后面进行了一些处理,效果很明显.继 ...

  9. python之web路径扫描工具

    # coding: UTF-8 import sys, os, time, httplibimport relist_http=[]  #http数组 def open_httptxt():  #打开 ...

  10. Thinkphp2.1爆出重大安全漏洞

    thinkphp 2.1的版本 我们来分析下漏洞吧 官方发布了一个安全补丁 表述是:该URL安全漏洞会造成用户在客户端伪造URL,执行非法代码. 官方的补丁: /trunk/ThinkPHP/Lib/ ...