运筹优化算法面试题——回忆版

一次惨痛的运筹优化算法面试经历

  • 项目方面
  • 基础知识
  • 总结

项目方面

  我有三个项目经验,分别是:一个多目标进化算法的子算法,一个城际网约车订单分配算法,一个实习过程中提出的多主体寻路算法。

项目序号 项目名称 提问内容 回答
1 基于自适应局部搜索链的多目标模因算法 1)多目标解的评价标准?2)类比于EA(种群的初始化,交叉、变异、选择等),说说提出的算法的对应关系;3)解的构造方法。 1)帕累托占优;
2 网约车智能调度系统算法与应用研究      此项目是实际应用项目?问题是什么?现在有没有应用。 具体问题的描述

基础知识

1.STL相关知识
  STL:(standard template libaray --标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构和算法的软件框架。
  中心思想:将数据容器和算法分隔开,彼此独立设计,最后再用黏合剂将它们撮合在一起。容器和算法的泛型化,可以用C++的class template和function template来实现,而二者的黏合剂就是迭代器了。
  六大组件:容器(Containers)、算法(algorithms)、迭代器(iterators)、仿函数(functors)、适配器(配接器 adapters)和配置器(allocators)。

2.拓扑排序的思想
  先统计所有节点的入度,对于入度为0的节点就可以分离出来,然后把这个节点指向的节点的入度减一。一直做该操作,直到所有的节点都被分离出来。

3.在排序算法中,时间复杂度为 O ( n l o g n ) O(nlogn) O(nlogn)的算法有哪些?时间复杂度为 O ( n ) O(n) O(n)的算法有哪些?
O(nlogn):shell、快速、堆和归并。
O(n):桶排序、计数排序和基数排序
4,图的遍历算法有哪些?深度优先遍历与广度优先遍历的比较?
实现方式:深度优先遍历用栈,广度优先遍历用队列;
与树的遍历关系:深度优先遍历对应树的先序、中序和后序三种遍历, 广度优先遍历对就树的层次遍历。
应用:深度优先遍历可以用来判断有向图是否有环。
5.迪杰特斯拉的原理?
运筹优化算法面试题——回忆版_第1张图片
1)指定一个节点,例如我们要计算 ‘A’ 到其他节点的最短路径
2)引入两个集合(S、U),S集合包含已求出的最短路径的点(以及相应的最短长度),U集合包含未求出最短路径的点(以及A到该点的路径,注意 如上图所示,A->C由于没有直接相连 初始时为∞)
3)初始化两个集合,S集合初始时 只有当前要计算的节点,A->A = 0,U集合初始时为 A->B = 4, A->C = ∞, A->D = 2, A->E = ∞
4)从U集合中找出路径最短的点,加入S集合,例如 A->D = 2
5)更新U集合路径,if ( ‘D 到 B,C,E 的距离’ + ‘AD 距离’ < ‘A 到 B,C,E 的距离’ ) 则更新U
6)循环执行 4、5 两步骤,直至遍历结束,得到A 到其他节点的最短路径
6.红黑树的特性?左红右黑是什么鬼?
以平衡二叉树实现,左右子树是最大深度差为多少呢

总结

  不想多说,是自己菜。

你可能感兴趣的:(智能调度)