昨天校园的傍晚,漂亮吧!
大三了,研究方向必须确定了。机器学习,人工智能是我倾心的方向,但是,也是当今最热门的方向,一波大牛们都在这个地盘里抢项目,这里会有我的一席之地吗?目测,一波波牛人正蜂拥而来。
机器学习,最关键的是数学基础要好,因为机器学习最核心的其实在于算法,算法伊始,最基本的是复杂度的定义,世界七大数学难题之首的P和NP问题不是随便说说的,普林斯顿大学计算机系楼更是高调将二进制代码表述的“P=NP?”问题刻进顶楼西面的砖头上。
在浏览机器学习的论文的时候,NP-Hard这个词更是频繁出现在各大主流顶尖的Paper里,那么,什么是P,NP,NP-Hard问题?
如果基本语句的执行次数是一个常数,那么我们用O(1)表示。通常说来,如果算法中不存在循环语句,那么,他的时间复杂度就是O(1)。以下表达称为多项式时间,包含O(log2n)、O(n)、O(nlog2n)、O(n2)和O(n3),而O(2n)和O(n!)表达是指数时间。显而易见,当n足够大时,指数型时间比多项式时间要大很多。计算机科学家们认为多项式时间复杂度的算法是有效算法,把这类问题称为P(Polynomial,多项式)类问题,而指数时间复杂度的算法则称为NP(Non-Deterministic Polynomial, 非确定多项式)问题。NP问题是指解的正确性能够被“很容易检查”的问题,这里所说的“很容易检查”指的是存在一个多项式算法来验证结果正确性。若NP中所有问题到某一个问题是图灵可归约的,则该问题为NP-hard问题。
最典型的NP-Hard问题是:推销员旅行问题(traveling salesman problem),假设一个推销人员员需要从上海出发,经过广州,北京,武汉,…,等 n 个城市, 最后返回上海。 任意两城市之间飞机直达,但票价是不等的。如果公司只能够报销 C 块钱,问是否存在一个行程的安排,使得他能游遍所有城市,而且总路费小于 C?这样当n足够大的时候,这个数字将会是一个天文数字。