理解JavaScript中的箭头函数
但是,很明显这种算法是指数时间复杂度O(2^n),其复杂度会随着n的增加成指数增长,当n取到一定大时,将需要很长的时间,显然这不是一种最优的算法。不过,仔细观察上图的各个分解项,我们会发现图中有很多重复的子项,这就是上面这种递归算法复杂度较高的原因。那么,还能不能进行优化呢?答案是肯定的。 我们可以通过动态规划的思想来优化上面这个算法,为了避免大量的重复计算,我们可以从最底层的子问题开始计算,并通过一个表来存储这些子问题的值,当再次遇到这个值就不需要再重新计算。
如下面的程序,我们从最小的子问题n=1,2开始向上计算,并且定义了一个vector容器用来存储被计算过的子问题的值,下次再计算大问题时直接调用容器里的值即可。 动态规划(Dynamic Programming),简称DP,这个名字给人的感觉是一种非常高大上非常复杂的算法,很多同学看到这个名字可能就会望而却步,在面试的时候也非常害怕被问到动态规划的题目。实际上,它并不是不是一种确定的算法,它是一种最优化的方法求解问题的思想或方法。它是由美国数学家贝尔曼(Bellman)在研究多阶段决策过程的优化问题时提出。不过,与之对应的还有一些与时间无关的静态规划,如:线性规划、非线性规划等。在运筹学中,动态规划是的非常重要的内容,在各个行业领域都有着广泛的应用。我们如何理解动态规划? 如果一个问题的最优解可以通过其子问题的最优解经过推导得到,那么,我们就可以先求出其子问题的最优解,根据子问题的解得出原问题的最优解。如果子问题有较多的重复出现,为了减少重复计算,降低时间复杂度,则可以自底向上从最终子问题向原问题逐步求解并先将子问题存储起来,在求解大的子问题时可以直接从表中查询子问题的解,这就是动态规划的基本思想。 简单来来理解就是将一个大问题简化成若干子问题,并存入一个表中,再根据数据表中子问题的解求出大问题的解。这种算法看上去是不是很熟悉?其实,动态规划和分治算法类似,我们也常常将其和分治算法进行比较。它们都需要将其分解成若干子问题并求解子问题。不同的是分治算法是自顶向下求解各子问题,然后合并子问题的解从而得到原问题的解;而动态规划是将子问题拆解之后,自底向上求解子问题的解并将存储结果存储起来,在求解大的子问题时直接查询子问题的解,算法效率也将大大的提高。 理论描述太过生硬和枯燥,我们直接来看一个例子。
斐波那契数列 这表明,采用 VAR 技术的赛事或与 VAR 相关的事件都会给观众带来明显的不满情绪。 那么如何减少观众们的消极评估,除了进一步提升技术减少乌龙事件外,研究人员在此也给提出了两条建议:
AI 赋能体育的可能性 可见,基于视觉技术的 AI,在赛事直播和辅助裁判方面还远不够成熟。 不过从现实考量来看,AI 想要做好这件事确实不容易。因为包括足球赛在内的任何大型体育赛事,不仅现场瞬息万变,涉及运动员众多,而且场地也足够大,这些外在因素对 AI、对硬件、对算法都提出了非常高的要求。 另外,它还要求系统必须有一个强大的后台大脑,能够能实时地分析若干数据,在最短的时间内提供最为科学的现场报告,这一点在辅助裁判方面体现的尤为明显。 虽然目前的 AI 技术存在明显的局限性,但这并不妨碍它在赋能体育市场的可能性。 最近几年,AI 加速渗透到体育领域,在多次翻车事件之后,其实我们可以看到 AI 技术的不断升级、优化,看到它在更多潜在应用场景的价值,比如用 AI 分析球队打法、预防球员受伤、评价球员积极性等等。
总之,热血澎湃的体育赛场需要 AI,只是一切需要慢慢来! (编辑:济南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |