其实数学配对法的问题并不复杂,但是又很多的朋友都不太了解最佳配对算法,因此呢,今天小编就来为大家分享数学配对法的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
本文目录
属虎男和哪个属相最佳,属虎的男生和什么属相的女生最相配天干地支配对排列组合算法遗传算法--GA提起属虎男和哪个属相最佳,大家都知道,有人问男属虎最佳婚配属相,另外,还有人想问属虎的最佳配偶,你知道这是怎么回事?其实属虎的最佳配对属相是什么?下面就一起来看看属虎的男生和什么属相的女生最相配,希望能够帮助到大家!
属虎男和哪个属相最佳宜配:马、狗、猪大吉,同心永结,德高望重,家业终成,富贵荣华,子孙昌盛。
忌配:蛇、猴,夫妻不和,忧愁不断,无成功之望,有破财之兆,空虚寂寞。寅虎与亥猪,因此最宜找个属猪的对象,此乃上上等婚配。
其次是与午马戌狗三合,此乃上等婚配,故也宜找个属马或属狗的。
寅虎与申猴相冲,因此最忌找属猴的,此乃下下等婚配。
寅虎又与巳蛇、申猴构成三刑,故最忌找属蛇属猴的,此乃下等婚配。
生肖相冲合表示什么
1、相冲代表意见不合、容易有冲突、彼此相克。
2、相合、三合代表和合、相处融洽、容易沟通、互相生旺。
3、相刑代表性格不合、互有刑克。
古人云:
白马怕青牛;自来白马怕青牛,十人近着九人愁,匹配若犯青牛马,光女家住不停留。
羊鼠一旦休;羊鼠相交一旦休,婚姻匹配自难留,诸君若犯羊与鼠,夫妻不利家宁。
蛇虎如刀错;蛇虎配婚如刀错,男女分歧抵触多,生儿养女定何伤,总有骨肉相脱离。
兔蛇泪;兔儿见龙泪,合婚不幸皱眉头,一双男女犯争斗,若如黄莲夕梦愁。
金鸡怕玉犬;金鸡玉犬难回避,合婚双方不可遇,两属相争大不宜,众人必定要禁忌。
猪猴不到头;猪与猿猴不到头,朝朝日日泪,男女不溶共久长,合家不幸一笔勾。
属虎男和哪个属相最佳:男属虎最佳婚配属相属相,又叫生肖。是我国和东亚地区的一些用十二地支与十二种动物相配合来记人出生年份,如卯年出生则属兔。属相的一轮周期为12年。属相应该以农历立春为准,属相广泛流行于亚洲各和东欧、北非的某些之中。
属相与十二地支之间存在着一一对应的关系,加之古人采用的是干支纪年法。于是,天干地支二者的组合,产生了六十甲子,又与十二生肖自然结合地在了一起。以甲子鼠年为始,依次类推,属相按照十二年一个,天干地支按照六十年一个。这样一来,就出现了“甲子鼠年”这类的称谓。
我国古籍中记载,我国古代的中原地区,最初使用的是“干支纪年法”,即用10个天干号甲、乙、丙、丁、戊、己、庚、辛、壬、癸和12个地支号子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥相配合来纪年。在我国西北地区的少数游牧则以动物来纪年。
每个星宿都以一种动物命名。从每个时辰值班的动物中挑选某种常见的作某一年的代称等等,不一而足。
尽管人们不能确定12生肖的确切来历,但因为它的通俗、方便又具有趣味性,所以一直沿用至今,成为古人留给我们的一种仍有实用价值的宝贵遗产。
属虎的最佳配对属相是什么?生肖是以立春开始算,民俗也有按初一开始算的。但是,按天干地支的算法,应该是立春开始。算命之类的占卜就要按立春开始了。
属鼠人:
宜配:龙、猴、牛大吉,心心相印,富贵幸福,万事易成功,享福终身。其他属相次之。
忌配:马、兔、羊,不能富家,不得安宁。
属牛人:
宜配:鼠、蛇、鸡大吉,天做良缘,家道大着阵,财盛家宁。
忌配:马、羊、狗,吉凶各有,甘苦共存,无进取心,内心多忧疑苦惨。
属虎人:
宜配:马、狗大吉,配属猪的吉凶各半,同心永结,德高望重,家业终成,富贵荣华,子孙昌盛。
忌配:蛇、猴,夫妻不和,忧愁不断,无成功之望,有破财之兆,空虚寂寞。
属兔人:
宜配:羊、狗、猪,功业成就,安居乐业,专利兴家。
忌配:龙、鼠,家庭难有幸福,逆境之象,事业不成,历尽痛苦。
属龙人:
宜配:鼠、猴、鸡大吉,缔结良缘,勤俭发家,日见昌盛,富贵成功,子孙继世。
忌配:狗、兔,不能和睦终世,离别,不得心安。
属蛇人:
宜配:牛、鸡,此中属相相配为福禄鸳鸯,智勇双全,功业垂成,足立宝地,名利双收,一生幸福。
忌配:猪、虎,家境虽无大的困苦和失败,但夫妻离心离德,子息缺少,晚景不祥。
属马人:
宜配:虎、羊、狗大吉,夫妻相敬,紫气东来,福乐安详,家道昌隆。
忌配:鼠、牛,中年运气尚可,难望幸福,一生辛苦,子女别离。
属羊人:
宜配:兔、马、猪大吉,天赐良缘,家道谐和,大业成而有德望。
忌配:牛、狗,夫妻一生难得幸福,多灾多难,一生劳碌,早失配偶或子孙。
属猴人:
宜配:鼠、蛇、龙,此中属相相配为珠联璧合,一帆风顺,富贵成功,子孙兴旺。
忌配:虎、猪,晚景尚可,但恐寿不到永,疾病困难。
属鸡人:
宜配:牛、龙、蛇,此中属相相配祥开白事,有天赐之福,并有名望,功利荣达,家事亨通。
忌配:狗,金鸡玉犬难逃避,合婚双份不可迁,多灾多难。
属狗人:
宜配:虎、兔、马大吉,天做之合,处处成功,福碌永久,家运昌隆。
忌配:龙、鸡、牛,钱财散败,一生艰辛,事与愿违。
属猪人:
宜配:羊、兔、虎大吉,五事其昌,安富尊荣,子孙健壮,积财多福。
忌配:猴、蛇,猪猴不到头,朝朝日日泪,比能共长久,终生难于幸福。
以上就是与属虎的男生和什么属相的女生最相配相关内容,是关于男属虎最佳婚配属相的分享。看完属虎男和哪个属相最佳后,希望这对大家有所帮助!
首先我们先要明白天干与地支是如何搭配的
天干:甲、乙、丙、丁、戊、己、庚、辛、壬、癸
地支:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥。十天干与十二地支按顺序两两相配,从甲子到癸亥,共六十个组合,即六十甲子。(10与12的最小公倍数是60)
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
壬子癸丑甲寅乙卯丙辰丁巳戊午己未庚申辛酉壬戌癸亥
序号 1 2 3 4 5 6 7 8 9 10
天干甲乙丙丁戊己庚申壬癸
序号 1 2 3 4 5 6 7 8 9 10 11 12
地支子丑寅卯辰巳午未申酉戌亥
1894年是甲午年,那么1895年的天干是乙,依此类推,1900年的天干就是庚;同样,1894年的地支是午,1900年的地支就是子;所以1900年是庚子年。如果大家还想到1901年八国联军胁迫清政府签订了《辛丑条约》,就是1901年是辛丑年,那么天干与地支的序号都往前推一下,也可以推出来1900年是庚子年。(《辛丑条约》中的所涉及的赔款,因为是针对1900年(庚子年)的义和团运动而规定,所以也叫庚子赔款。)
如果没有告诉你相邻的某个年份是什么年,那么又怎样推算呢?比如,1861年用干支纪年应是?1984年用干支纪年应是?
这里有一个计算的公式:N=X-3-60m(0≦N﹤60,m是一个自然数)
N是60个干支的序号,比如N=1时就是甲子,X就是公元某某年。
那么按照这个公式,1861年的序号就是:1860-3-60m,那么就取m=29,这样N=58,如果取m=30的话,N=-2,这时就要加60,也就是说0≦N﹤60,如果N=0,那么就是第60个干支。现在知道与1861年对应干支是第58个,但是如果没有上面那个表格可供查阅,怎么办呢?我们知道天干是10个,地支是12个,10天干与12地支按顺序两两相配,那么第58号对应的天干的序号应是58÷10的余数,余数是8,第八个天干是申;同样,第58号对应的地支的序号是58÷12的余数,余数是10,第十个地支是酉,所以1861年是农历辛酉年。
所以天干的序号A=mod(N,10),地支的序号B= mod(N,12)
(大家就是对于m应该取多少,不用去想,很简单,就像小学生列除法算式一样,N-3那个数除以60,所得的商数就是m,余数就是N)
注意:这里的公式只适用于公元后的年份
公元前的计算公式应是N=X-2-60m,(因为公元前1年后就是公元元年也就是公元1年,没有公元0年),(X就是一个负数了,m也取负数)
不过不知道这个公式是否准确。前面的公式N=X-3-60m来源于《简明天文学教程》作者:余明;出版社:科学出版社。
遗传算法(GA)属于人工智能启发式算法,启发式算法的目标就是寻找原始问题的最优解,该算法的定义为
人类通过直观常识和生活经验,设计出一种以搜索最优解为目的,通过仿真大自然规律的算法,该算法在可以在接受的花销(计算时间和存储空间)范围内找到问题实例的一个可行解,且该可行解和真实最优解的误差一般不可以被估计
当下主要有的启发式算法包括遗传算法、退火法,蚁群算法、人工神经网络等,这篇文章主要介绍遗传算法
遗传算法的基本原理是模拟达尔文进化论"物竞天择,适者生存"的自然法则,其核心思想为
(1)将原始问题的参数,抽象为基因编码
(2)将原始问题的可行解,抽象为基因排列的染色体组合
(3)将原始问题的解集规模,抽象为一定数量染色体组成的种群
(4)寻找可行解的过程,抽象为种群的进化过程(染色体选择、交叉、变异等)
(5)比较可行解的优劣,抽象为量化比较不同种群对当前环境的适应程度
(6)逼近最优解的过程,抽象为淘汰适应度差的种群,保留适应度高的种群进行下一次进化
(7)问题的最优解,抽象为经过多次进化后,最终生存下来的精英种群
理论上,通过有限次种群进化,生存下来的种群都是精英染色体,是最适合当前环境条件的种群,也就可以无限逼近原始问题的最优解
相关生物学术语:
为了大家更好了解遗传算法,在此之前先简单介绍一下相关生物学术语,大家了解一下即可。
基因型(genotype):性状染色体的内部表现;
表现型(phenotype):染色体决定的性状的外部表现,或者说,根据基因型形成的个体的外部表现;
进化(evolution):种群逐渐适应生存环境,品质不断得到改良。生物的进化是以种群的形式进行的。
适应度(fitness):度量某个物种对于生存环境的适应程度。
选择(selection):以一定的概率从种群中选择若干个个体。一般,选择过程是一种基于适应度的优胜劣汰的过程。
复制(reproduction):细胞分裂时,遗传物质DNA通过复制而转移到新产生的细胞中,新细胞就继承了旧细胞的基因。
交叉(crossover):两个染色体的某一相同位置处DNA被切断,前后两串分别交叉组合形成两个新的染色体。也称基因重组或杂交;
变异(mutation):复制时可能(很小的概率)产生某些复制差错,变异产生新的染色体,表现出新的性状。
编码(coding):DNA中遗传信息在一个长链上按一定的模式排列。遗传编码可看作从表现型到基因型的映射。
解码(decoding):基因型到表现型的映射。
个体(individual):指染色体带有特征的实体;
种群(population):个体的集合,该集合内个体数称为种群
大体实现过程
遗传算法中每一条染色体,对应着遗传算法的一个解决方案,一般我们用适应性函数(fitness function)来衡量这个解决方案的优劣。所以从一个基因组到其解的适应度形成一个映射。遗传算法的实现过程实际上就像自然界的进化过程那样。
基本遗传算法概述
1.[开始]生成n个染色体的随机群体(适合该问题的解决方案)
2.[适应度]评估群体中每个染色体x的适应度f(x)
3.[新种群]通过重复以下来创建新种群直到新种群完成的步骤
3.1 [选择]根据种群的适合度选择两个亲本染色体(更好的适应性,更大的选择机会)
3.2 [交叉]以交叉概率跨越父母形成新的后代(儿童))。如果没有进行交叉,后代就是父母的确切副本。
3.3 [突变]突变概率突变每个基因座(染色体中的位置)的新后代。
4.[接受]在新种群中放置新后代[替换]使用新生成的种群进一步运行算法
5.[测试]如果满足结束条件,则停止并返回当前种群中的最佳解
6。[循环]转到步骤2
影响GA的因素
从遗传算法概述可以看出,交叉和变异是遗传算法中最重要的部分。性能主要受这两个因素的影响。在我们解释有关交叉和变异的更多信息之前,我们将给出一些有关染色体的信息。
染色体编码
染色体应该以某种方式包含它所代表的解决方案的信息。最常用的编码方式是二进制字符串。然后染色体看起来像这样:
每个染色体由二进制字符串表示。字符串中的每个位都可以表示解决方案的一些特征。另一种可能性是整个字符串可以表示一个数字-这已在基本的GA小程序中使用。当然,还有许多其他的编码方式。编码主要取决于解决的问题。例如,可以直接编码整数或实数,有时对某些排列等进行编码很有用。
染色体交叉
在我们确定了将使用的编码之后,我们可以继续进行交叉操作。 Crossover对来自亲本染色体的选定基因进行操作并产生新的后代。最简单的方法是随机选择一些交叉点,并在此点之前从第一个父项复制所有内容,然后在交叉点之后复制另一个父交叉点之后的所有内容。交叉可以说明如下:(|是交叉点):
还有其他方法可以进行交叉,例如我们可以选择更多的交叉点。交叉可能非常复杂,主要取决于染色体的编码。针对特定问题进行的特定交叉可以改善遗传算法的性能。
4.染色体突变
在执行交叉之后,发生突变。突变旨在防止群体中的所有解决方案落入解决问题的局部最优中。突变操作随机改变由交叉引起的后代。在二进制编码的情况下,我们可以将一些随机选择的位从1切换到0或从0切换到1.突变可以如下所示:
突变(以及交叉)技术主要取决于染色体的编码。例如,当我们编码排列时,可以将突变作为两个基因的交换来进行。
GA的参数
1.交叉和突变概率
GA有两个基本参数-交叉概率和变异概率。
交叉概率:交叉的频率。如果没有交叉,后代就是父母的精确副本。如果存在交叉,则后代由父母染色体的部分组成。如果交叉概率为100%,那么所有后代都是由交叉产生的。如果它是0%,那么全新一代都是从旧种群的染色体的精确拷贝制成的(但这并不意味着新一代是相同的!)。交叉是希望新染色体将包含旧染色体的良好部分,因此新染色体将更好。但是,将旧人口的一部分留给下一代是好的。
突变概率:染色体部分突变的频率。如果没有突变,则在交叉(或直接复制)后立即生成后代而不进行任何更改。如果进行突变,则改变染色体的一个或多个部分。如果突变概率为100%,则整个染色体发生变化,如果是0%,则没有变化。突变通常会阻止GA陷入局部极端。突变不应该经常发生,因为GA实际上会改变为随机搜索。
2.其他参数
种群规模:种群中有多少染色体(一代)。如果染色体太少,GA几乎没有可能进行交叉,只探索了一小部分搜索空间。另一方面,如果染色体太多,GA会减慢。研究表明,经过一定的限制(主要取决于编码和问题),使用非常大的种群是没有用的,因为它不能比中等规模的种群更快地解决问题。
3 选择
正如您从GA概述中已经知道的那样,从群体中选择染色体作为交叉的父母。问题是如何选择这些染色体。根据达尔文的进化论,最好的进化能够创造出新的后代。选择最佳染色体的方法有很多种。例如轮盘赌选择,Boltzman选择,锦标赛选择,等级选择,稳态选择和其他一些选择。
1.轮盘赌选择
父母根据他们的健康状况选择。染色体越好,它们被选择的机会就越多。想象一下轮盘赌轮,人口中的所有染色体都放在那里。轮盘中截面的大小与每条染色体的适应度函数的值成比例-值越大,截面越大。有关示例,请参见下图。
轮盘赌中放入一块大理石,并选择停止的染色体。显然,具有较大适应值的染色体将被选择更多次。
该过程可以通过以下算法来描述。
[Sum]计算总体中所有染色体拟合度的总和-总和S.
[Select]从区间(0,S)-r生成随机数。
[循环]遍历总体并从0-总和中求和。当总和s大于r时,停止并返回您所在的染色体。当然,对于每个群体,步骤1仅执行一次。
2.排名选择
当健身值之间存在很大差异时,先前的选择类型会出现问题。例如,如果最佳染色体适应度是所有拟合度总和的90%,那么其他染色体将很少被选择的机会。等级选择首先对群体进行排序,然后每个染色体接收由该等级确定的适合度值。最差的将是健身1,第二个最差的2等等,最好的将具有适应度N(人口中的染色体数量)。您可以在下面的图片中看到,在更改适应性与排名确定的数字后情况如何变化。
排名前的情况(适合度图)
排名后的情况(订单号图)
现在所有染色体都有机会被选中。然而,这种方法会导致收敛速度变慢,因为最好的染色体与其他染色体的差别不大。
3.稳态选择
这不是选择父母的特定方法。这种选择新种群的主要思想是染色体的很大一部分可以存活到下一代。稳态选择GA以下列方式工作。在每一代中,选择一些好的(具有更高适应性)染色体来创建新的后代。然后去除一些不好的(具有较低适合度)染色体并将新的后代放置在它们的位置。其余人口幸存下来。
4.精英
精英主义的想法已经被引入。当通过交叉和变异创建新的种群时,我们有很大的机会,我们将失去最好的染色体。精英主义是首先将最佳染色体(或少数最佳染色体)复制到新种群的方法的名称。其余人口以上述方式构建。精英主义可以迅速提高GA的性能,因为它可以防止丢失最佳找到的解决方案。
交叉(Crossover)和突变(Mutation)
交叉和变异是GA的两个基本运算符。 GA的表现非常依赖于它们。运算符的类型和实现取决于编码以及问题。有多种方法可以执行交叉和变异。在本章中,我们将简要介绍一些如何执行多个编码的示例和建议。
1.二进制编码
交叉
单点交叉-选择一个交叉点,从第一个父项复制从染色体开始到交叉点的二进制字符串,其余从另一个父项复制
选择两点交叉-两个交叉点,从第一个父节点复制从染色体开始到第一个交叉点的二进制字符串,从第一个父节点复制从第一个交叉点到第二个交叉点的部分,其余的是再次从第一个父级复制
均匀交叉-从第一个父项或第二个父项中随机复制位
算术交叉-执行一些算术运算以产生新的后代
突变
位反转-选择的位被反转
2.置换编码
交叉
单点交叉-选择一个交叉点,将排列从第一个父项复制到交叉点,然后扫描另一个父项,如果该数字还没有在后代中,则添加它注意:还有更多方法如何在交叉点之后产生休息
(1 2 3 4 5 6 7 8 9)+(4 5 3 6 8 9 7 2 1)=(1 2 3 4 5 6 8 9 7)
变异
顺序更改-选择并交换两个数字
(1 2 3 4 5 6 8 9 7)=>(1 8 3 4 5 6 2 9 7)
3.值编码
交叉
可以使用来自二进制编码的所有交叉
变异
添加一个小数字(用于实数值编码)-将一个小数字添加到(或减去)所选值
(1.29 5.68 2.86 4.11 5.55)=>(1.29 5.68 2.73 4.22 5.55)
4.树编码
交叉
树交叉-在父母双方中选择一个交叉点,父母在该点被分割,交换点下面的部分被交换以产生新的后代
变异
更改运算符,数字-选定节点已更改
补充:
疑惑点:
初始种群是啥:
利用二进制(一般)表示最终解
例如:需要求解z=x^2+y^2的最大值,x={1,5,3,8},y={5,4,0,6}
用六位二进制数表示由x,y组成的解,例如:001100表示x=1,y=4
001100称为一条基因序列,表示的是该问题的一种解决方案
种群是包含多个基因序列(解决方案/个体)的集合
适应度函数是啥,有什么作用:
适应度函数可以理解成“游戏规则”,如果问题较为复杂,需要自定义适应度函数,说明如何区分优秀与不优秀的个体;如果问题比较简单,例如上述求最大值的问题,则直接用此函数式作为适应度函数即可。作用:评定个体的优劣程度,从而决定其遗传机会的大小。
怎么选择:
定义“适者生存不适者淘汰”的规则,例如:定义适应度高的被选择的概率更大
怎么交叉:
利用循环,遍历种群中的每个个体,挑选另一个体进行交叉。例如,通过遍历为基因序列A挑选出B配对,则取A的前半部分,B的后半部分,组合成新的个体(基因序列)C
如何变异:
随机挑选基因序列上的某一位置,进行0-1互换
建议 GA的参数
如果您决定实施遗传算法,本章应该为您提供一些基本建议。这些建议非常笼统。您可能希望尝试使用自己的GA来解决特定问题,因为没有一般理论可以帮助您针对任何问题调整GA参数。
建议通常是对GA的经验研究的结果,这些研究通常仅在二进制编码上进行。
交叉率
交叉率一般应高,约为80%-95%。(但是有些结果表明,对于某些问题,交叉率约为60%是最好的。)
突变率
另一方面,突变率应该非常低。最佳利率似乎约为0.5%-1%。
人口规模
可能令人惊讶的是,非常大的人口规模通常不会改善GA的性能(从找到解决方案的速度的意义上说)。良好的人口规模约为20-30,但有时大小为50-100是最好的。一些研究还表明,最佳种群规模取决于编码字符串(染色体)的大小。这意味着如果你有32位染色体,那么人口应该高于16位染色体。
选择
可以使用基本的轮盘赌选择,但有时排名选择可以更好。查看有关选择优缺点的章节。还有一些更复杂的方法可以在GA运行期间更改选择参数。基本上,这些表现类似于模拟退火。如果您不使用其他方法来保存最佳找到的解决方案,则应确保使用精英主义。您也可以尝试稳态选择。
编码
编码取决于问题以及问题实例的大小。查看有关编码的章节以获取一些建议或查看其他资源。
交叉和变异
运算符取决于所选的编码和问题。查看有关操作员的章节以获取一些建议。您还可以查看其他网站。
搜索空间
如果我们正在解决问题,我们通常会寻找一些最好的解决方案。所有可行解决方案的空间(所需解决方案所在的解决方案集)称为搜索空间(也称为状态空间)。搜索空间中的每个点代表一种可能的解决方案。每个可能的解决方案可以通过其对问题的值(或适应度)进行“标记”。通过GA,我们在众多可能的解决方案中寻找最佳解决方案-以搜索空间中的一个点为代表。然后寻找解决方案等于在搜索空间中寻找一些极值(最小值或最大值)。有时可以很好地定义搜索空间,但通常我们只知道搜索空间中的几个点。在使用遗传算法的过程中,随着进化的进行,寻找解决方案的过程会产生其他点(可能的解决方案)。
问题是搜索可能非常复杂。人们可能不知道在哪里寻找解决方案或从哪里开始。有许多方法可用于寻找合适的解决方案,但这些方法不一定能提供最佳解决方案。这些方法中的一些是爬山,禁忌搜索,模拟退火和遗传算法。通过这些方法找到的解决方案通常被认为是很好的解决方案,因为通常不可能证明最佳方案。
NP-hard Problems
NP问题是一类无法用“传统”方式解决的问题。我们可以快速应用许多任务(多项式)算法。还存在一些无法通过算法解决的问题。有很多重要问题很难找到解决方案,但是一旦有了解决方案,就很容易检查解决方案。这一事实导致了NP完全问题。 NP代表非确定性多项式,它意味着可以“猜测”解决方案(通过一些非确定性算法),然后检查它。如果我们有一台猜测机器,我们或许可以在合理的时间内找到解决方案。为简单起见,研究NP完全问题仅限于答案可以是或否的问题。由于存在输出复杂的任务,因此引入了一类称为NP难问题的问题。这个类并不像NP完全问题那样受限。 NP问题的一个特征是,可以使用一个简单的算法,可能是第一眼看到的,可用于找到可用的解决方案。但是这种方法通常提供了许多可能的解决方案-只是尝试所有可能的解决方案是非常缓慢的过程(例如O(2 ^ n))。对于这些类型问题的更大的实例,这种方法根本不可用。今天没有人知道是否存在一些更快的算法来提供NP问题的确切答案。对于研究人员来说,发现这样的算法仍然是一项重大任务(也许你!:-))。今天许多人认为这种算法不存在,因此他们正在寻找替代方法。替代方法的一个例子是遗传算法。 NP问题的例子是可满足性问题,旅行商问题或背包问题。可以获得NP问题汇编。
参考:
jianshu/p/ae5157c26af9
jianshu/p/b36b520bd187
OK,本文到此结束,希望对大家有所帮助。