问题标签 [heuristics]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 选择 Java 集合实现的经验法则?
任何人都有一个很好的经验法则来选择 Java Collection 接口的不同实现,如 List、Map 或 Set?
例如,通常为什么或在什么情况下我更喜欢使用 Vector 或 ArrayList、Hashtable 或 HashMap?
algorithm - 确定数字音频数据是否剪辑的算法?
是否有一种算法或一些启发式方法来确定数字音频数据是否正在剪辑?
language-agnostic - 有哪些游戏具有相当简单的启发式来评估位置?
我正在教一个孩子编程,目前正在介绍一些基本的人工智能概念。首先,我们将实现一个井字游戏,它搜索整个游戏树并因此完美地进行游戏。一旦我们完成了,我想将相同的概念应用到一个有太多位置来评估每一个位置的游戏,因此我们需要实现一个启发式来评估中间位置。
我能想到的最好的东西是Dots and Boxes。它的好处是我可以将棋盘大小设置为任意大以阻止他搜索整棵树,并且我可以制作一个非常基本的评分函数,即我的盒子数量减去对手盒子的数量。不幸的是,这意味着在游戏开始的大部分时间里,每个位置都将被等同地评估为 0 分,因为在玩家真正开始制作盒子之前需要相当多的动作。
有人对游戏有更好的想法吗?(或者对点和框有更好的评分功能)?
algorithm - 如何选择显示值的单位?
我有一个值,我知道它的单位是
米mn/md * kg kn/kd * s sn/sd * K Kn/Kd * A An/Ad
注:指数为有理数,m 0.5为单位有效
问题是如何选择如何将单位分解成更紧凑的东西
例如,如果
我可以使用 N/m
我怀疑这是离散优化问题的某个子集。
artificial-intelligence - 滑动瓷砖问题的启发式
这个想法是将所有右侧元素移动到左侧,将左侧移动到右侧,中间有一个空白空间。元素可以跳过一个或两个部分进入一个空白空间。
我正在尝试为这项任务考虑启发式方法。启发式是为了帮助找到可能的解决方案,还是实际上返回一些移动作为解决方案?我将如何表达这样的启发式?
language-agnostic - 如何在文本中搜索一个人的名字?(启发式)
我有一个巨大的人名列表,我必须在一个巨大的文本中搜索。
只有部分名称可能出现在文本中。并且有可能拼写错误、输入错误或缩写。文本没有标记,所以我不知道文本中人名的开始位置。而且我不知道这个名字是否会出现在文本中。
例子:
我的列表中有“Barack Hussein Obama”,因此我必须检查以下文本中是否出现了该名称:
- ...The candidate Barack Obama was elected the president of the United States... (incomplete)
- ...The candidate Barack Hussein was elected the president of the United States... (incomplete)
- ...The candidate Barack HO was elected the president of the United States... (abbreviated)
- ...The candidate Barack ObaNa was elected the president of the United States... (misspelled)
- ...The candidate Barack OVama was elected the president of the United States... (misstyped, B is next to V)
- ......候选人约翰麦凯恩在选举中失败......(没有出现奥巴马的名字)
当然,它没有确定性的解决方案,但是......
对于这种搜索,什么是好的启发式方法?
如果必须,你会怎么做?
performance - 优化磁盘数据的位置以进行顺序访问
我需要将大量数据存储在大约 1k 个块中。我将以一种难以预测但可能存在模式的方式访问这些对象。
是否有一种算法或启发式方法可以根据我的访问模式重新排列磁盘上的对象,以尝试最大化顺序访问,从而最小化磁盘寻道时间?
language-agnostic - 何时使用和不使用每种开发范式?
鉴于开发的各种有条不紊的方法,我们是否可以一起得出一些启发式方法,哪些方法在什么情况下是合适的,例如
- 案例驱动开发
- 模型驱动开发
- 行为驱动的发展
- 测试驱动开发
- Rational 统一过程
- 杰克逊结构化设计
- 等人
没有任何方法太老、太专业或“不存在”;-)
请每个答案仅列出一种方法,并包括最合适和最不合适的情况。例如:
方法
黑客攻击
最合适的
- 单独编写无关紧要的事情时
- 在尝试弄清楚某些事情是如何真正起作用时,而不是:
- 你认为它是如何工作的
- 医生说它有效
- 谷歌说它有效
- 它应该工作
最不合适
- 编写生产代码时
- 在团队环境中工作时
注意:寻找每种方法的细节,而不是一般建议。谢谢你。