3-colorability
1.1 3-colorability
一个图的三着色问题:要使得边两头的结点颜色互不相同。
1.1.1 3元可满足规约到3着色
首先文法中的每一个变量和它自己的"非"连接。创建3个新结点分别为T,F,B并且将他们连接在一个三角形中。然后每一个文法都连接到B结点,对于每一个子句添加6个结点和13条边。其中B结点是基本颜色,这里假定为蓝色。
1.1.2 证明充分和必要性
定理:如果一个图是可以三着色的当且仅当这个图所对应的文法是可满足的。
Pf. ⇒ Suppose graph G is 3-colorable.
・Consider assignment that sets all T literals to true.
・(iv) ensures each literal is T or F. ・(ii) ensures a literal and its negation are opposites.
・(v) ensures at least one literal in each clause is T
如果一个图是可以三着色的,我们考虑几种分配方式使得所有的T文法都为True,确保所有的文法要么为T要么为F,至少保证有一个文法块为T。
ps:上面说的好乱,后来上油管看了下MIT的公开课才顿悟了!我们从头来理解一下:
这张图构造得很巧妙,它这样构造的目的是保证X1的值只能为true或者false而与它相连的x1'非'就只能是另外一种结果。
这张图也很巧妙也证明也为什么x1,x2,x3都为红(false)的时候文法式为false,它通过三着色原则强制让x1下面的结点为蓝,然后T结点右边第一个就只能为false(红色)依次推下去,发现推到F结点左边第一个结点的时候,该结点只能为红色(图中标记为黑色表示此节点跟相邻的结点有颜色冲突!)。
这个图反过来证明了为什么文法中只要一个为真就行了,可自行下来推一推。
随机推荐
- pytest框架: fixture之conftest.py
原文地址:https://blog.csdn.net/BearStarX/article/details/101000516 一.fixture优势1.fixture相对于setup和teardown ...
- 氵0x a
从今天开始记录这些东西,希望以后自己不出现在这上
- npoi 设置单元格格式
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- spring boot:用redis+lua实现表单接口的幂等性(spring boot 2.2.0)
一,什么是幂等性? 1,幂等: 幂等操作:不管执行多少次,所产生的影响都和一次执行的影响相同. 幂等函数或幂等方法:可以使用相同的参数重复执行,并能获得相同的结果的函数/方法. 这些函数/方法不用担心 ...
- 第七章 HTTP协议原理
一.HTTP协议概述 1.什么是HTTP? HTTP 全称:Hyper Text Transfer Protocol 中文名:超文本传输协议 http就是将用户的请求发送到服务器,将服务器请求到的内容 ...
- c++数组的替代品
- 为C量身定制的Matrix库
Matrix库的诞生让矩阵操作在C中也可以玩的很溜! 项目地址:https://github.com/SJ2050SJ/Matrix 文章目录 Matrix的设计框架 Matrix的上手简历 Matr ...
- MySQL关于月份日期的操作
#获取当前日期 SELECT CURDATE(); #获取本月最后一天 SELECT LAST_DAY(CURDATE()); #获取本月的第一天 SELECT DATE_ADD(CURDATE(), ...
- .net core autofac asyncinterceptor 异步拦截器开发
autofac使用拦截器实现AOP,是基于Castle.Core的.然而Castle.Core并未提供原生异步支持.所以需要使用帮助类实现,这在autofac官方文档的已知问题中有详细说明: http ...
- JUC---00创建线程的方式
一.继承Thread类 1 package com.jenne.mydemo; 2 3 public class TestMyThread { 4 public static void main(St ...