问题标签 [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.

0 投票
11 回答
23935 浏览

java - 选择 Java 集合实现的经验法则?

任何人都有一个很好的经验法则来选择 Java Collection 接口的不同实现,如 List、Map 或 Set?

例如,通常为什么或在什么情况下我更喜欢使用 Vector 或 ArrayList、Hashtable 或 HashMap?

0 投票
5 回答
1637 浏览

algorithm - 确定数字音频数据是否剪辑的算法?

是否有一种算法或一些启发式方法来确定数字音频数据是否正在剪辑

0 投票
12 回答
4027 浏览

language-agnostic - 有哪些游戏具有相当简单的启发式来评估位置?

我正在教一个孩子编程,目前正在介绍一些基本的人工智能概念。首先,我们将实现一个井字游戏,它搜索整个游戏树并因此完美地进行游戏。一旦我们完成了,我想将相同的概念应用到一个有太多位置来评估每一个位置的游戏,因此我们需要实现一个启发式来评估中间位置。

我能想到的最好的东西是Dots and Boxes。它的好处是我可以将棋盘大小设置为任意大以阻止他搜索整棵树,并且我可以制作一个非常基本的评分函数,即我的盒子数量减去对手盒子的数量。不幸的是,这意味着在游戏开始的大部分时间里,每个位置都将被等同地评估为 0 分,因为在玩家真正开始制作盒子之前需要相当多的动作。

有人对游戏有更好的想法吗?(或者对点和框有更好的评分功能)?

0 投票
1 回答
246 浏览

algorithm - 如何选择显示值的单位?

我有一个值,我知道它的单位是

mn/md * kg kn/kd * s sn/sd * K Kn/Kd * A An/Ad

注:指数为有理数,m 0.5为单位有效

问题是如何选择如何将单位分解成更紧凑的东西

例如,如果

我可以使用 N/m

我怀疑这是离散优化问题的某个子集。

0 投票
3 回答
906 浏览

artificial-intelligence - 滑动瓷砖问题的启发式

这个想法是将所有右侧元素移动到左侧,将左侧移动到右侧,中间有一个空白空间。元素可以跳过一个或两个部分进入一个空白空间。

我正在尝试为这项任务考虑启发式方法。启发式是为了帮助找到可能的解决方案,还是实际上返回一些移动作为解决方案?我将如何表达这样的启发式?

0 投票
8 回答
1833 浏览

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)
  • ......候选人约翰麦凯恩在选举中失败......(没有出现奥巴马的名字)

当然,它没有确定性的解决方案,但是......

对于这种搜索,什么是好的启发式方法?

如果必须,你会怎么做?

0 投票
5 回答
1123 浏览

performance - 优化磁盘数据的位置以进行顺序访问

我需要将大量数据存储在大约 1k 个块中。我将以一种难以预测但可能存在模式的方式访问这些对象。

是否有一种算法或启发式方法可以根据我的访问模式重新排列磁盘上的对象,以尝试最大化顺序访问,从而最小化磁盘寻道时间?

0 投票
1 回答
1742 浏览

artificial-intelligence - 哪种方法在 TSP 问题中产生更短的旅行:最近邻或遗传算法?

在过去的几天里,我注意到一些网站展示 了使用遗传算法的 TS 解决方案。

哪种方法会在 TSP 问题中产生更短的行程:最近邻算法还是遗传算法?

0 投票
3 回答
899 浏览

algorithm - 系统设计:预防/检测投票欺诈

鉴于最近发生的投票欺诈事件,我想知道是否有人熟悉构建系统以防止或检测不良投票行为。我想这项技术被广泛用于搜索引擎、在线广告(例如点击欺诈)和社区网站(例如 Digg、reddit),但令人惊讶的是,由于显而易见的原因很少公开。

所以这是我的问题:考虑到复杂性和用户体验,你将如何设计这样一个系统?是否有一些学术研究领域对此进行了研究?

PS:这不是关于欺诈检测机制的问题,也不是您最近的个人经历;为此,请参阅另一个问题

0 投票
2 回答
300 浏览

language-agnostic - 何时使用和不使用每种开发范式?

鉴于开发的各种有条不紊的方法,我们是否可以一起得出一些启发式方法,哪些方法在什么情况下是合适的,例如

  • 案例驱动开发
  • 模型驱动开发
  • 行为驱动的发展
  • 测试驱动开发
  • Rational 统一过程
  • 杰克逊结构化设计
  • 等人

没有任何方法太老、太专业或“不存在”;-)

请每个答案仅列出一种方法,并包括最合适和最不合适的情况。例如:


方法

黑客攻击

最合适的

  • 单独编写无关紧要的事情时
  • 在尝试弄清楚某些事情是如何真正起作用时,而不是:
    • 你认为它是如何工作的
    • 医生说它有效
    • 谷歌说它有效
    • 它应该工作

最不合适

  • 编写生产代码时
  • 在团队环境中工作时

注意:寻找每种方法的细节,而不是一般建议。谢谢你。