标签: artificial-intelligence

映射应用的聚类算法

我正在研究地图上的聚类点(纬度/经度).对于快速且可扩展的合适算法,是否有任何建议?

更具体地说,我有一系列纬度/经度坐标和一个地图视口.我试图聚集在一起的点,以消除混乱.

我已经有了问题的解决方案(见这里),只是我想知道是否有任何正式的算法可以有效地解决问题.

algorithm maps artificial-intelligence cluster-analysis machine-learning

25
推荐指数
2
解决办法
3万
查看次数

如何利用Hebbian学习?

我想升级我的进化模拟器以使用Hebb学习,就像一样.我基本上希望小动物能够学习如何找到食物.我通过基本的前馈网络实现了这一点,但我仍然坚持理解如何使用Hebb学习.Hebb学习的基本原理是,如果两个神经元一起发射,它们就会连在一起.

所以,权重更新如下:

weight_change = learning_rate * input * output
Run Code Online (Sandbox Code Playgroud)

我发现的关于它如何有用的信息是非常稀缺的,我不明白.

在我当前版本的模拟器中,当一个生物吃掉一块食物时,动作和输入(动作,眼睛)之间的权重会增加,我无法看到它如何转化为这个新模型.在这里没有空间来判断它是否正确或错误,因为唯一的参数是输入和输出!基本上,如果一个输入激活一个方向的运动,无论该生物是否在吃东西,重量都会继续增加!

我是以错误的方式应用Hebb学习吗?仅供参考,我正在使用Python.

artificial-intelligence machine-learning neural-network evolutionary-algorithm

25
推荐指数
1
解决办法
6913
查看次数

乒乓球:球拍如何知道击球的位置?

在实施Pacman和Snake后,我正在实施下一个非常经典的游戏:Pong.

实现非常简单,但我只剩下一个小问题.当其中一个桨(我不确定它是否被称为桨)由计算机控制时,我无法将其定位在正确的位置.

球具有当前位置,速度(现在是恒定的)和方向角.所以我可以计算它将撞到计算机控制桨的一侧的位置.所以我可以把桨放在那里.但是在真实游戏中,计算机的球拍有可能会错过球.我该如何实现这个概率?

如果我只使用0.5的概率,计算机的球拍将会击球,问题就解决了,但我认为并不那么简单.

从原始游戏中我认为概率取决于当前球拍位置与球将击中边界的位置之间的距离.

有没有人有任何提示如何计算?

algorithm artificial-intelligence pong

24
推荐指数
4
解决办法
2万
查看次数

曼哈顿距离过度估计并让我发疯

我正在用曼哈顿距离实现一个星型算法来解决8-puzzle(在C中).它似乎工作得非常好并且通过了大量的单元测试,但是在一个案例中找不到最短路径(它找到了27个步骤而不是25个步骤).

当我将启发式函数更改为汉明距离时,它会找到25个步骤.当我使曼哈顿距离函数返回实际成本的一半时,还可以找到25个步骤.

这就是为什么我认为这个问题存在于曼哈顿距离函数的某个地方,并且它过度估算成本(因此不可接受).我想在C程序中可能还有别的东西出错了,所以我写了一个小的Python脚本来测试和验证曼哈顿距离函数的输出,它们都产生完全相同的结果.

我真的很困惑,因为启发式函数似乎是唯一的失败点,它似乎同时是正确的.

8拼图开始目标

你可以试试这个求解器,然后像"2,6,1,0,7,8,3,5,4"这样选择格式顺序.选择算法曼哈顿距离,它可以找到25步.现在将其更改为曼哈顿距离+线性冲突,它会找到27个步骤.

但我的曼哈顿距离(没有线性冲突)分为27步.

这是我的一般算法:

manhattan_distance = 0
iterate over all tiles
if the tile is not the blank tile:
find the coordinates of this tile on the goal board
manhattan_distance += abs(x - goal_x) + abs(y - goal_y)
Run Code Online (Sandbox Code Playgroud)

我认为如果某些重要部分出现了严重错误,那么它将无法通过所有25个以上的测试,因此这可能是某种边缘情况.

这里评论C中的曼哈顿距离函数:

int ManhattanDistance(Puzzle p, State b){
   State goal = getFinalState(p);
   int size = getSize(b);
   int distance = 0;
   if (getSize(goal) == size){ // both …
Run Code Online (Sandbox Code Playgroud)

c algorithm artificial-intelligence heuristics path-finding

24
推荐指数
1
解决办法
6502
查看次数

自然语言处理教程

我最近参加了一个类coursera关于"自然语言处理",我学到了很多分析,IR和其他有趣的方面,例如Q&A等,虽然我掌握的概念很好,但我实际上并没有得到任何实用知识.任何人都可以建议我为自然语言处理提供良好的在线教程或书籍吗?

谢谢

algorithm nlp artificial-intelligence machine-learning

24
推荐指数
3
解决办法
3万
查看次数

隔离游戏中的蒙特卡洛树搜索代理-调试建议

TLDR

MCTS代理程序的实现在本地运行时没有错误,相对于启发式驱动的minimax,成功率达到了40%以上,但自动分级器却没有通过-这是提交项目之前的要求。自动平地机抛出IndexError: Cannot choose from an empty sequence。我正在寻找最有可能引发此异常的代码方面的建议。

嗨,我目前停留在这个项目上,我需要在2个星期的时间内完成该项目,然后才能完成所注册的程序的清理。我已经完成的任务是在两个国际象棋骑士之间的隔离游戏中实现一个代理,以与启发式驱动的minimax代理进行对抗。完整的游戏实施细节可以在这里找到。对于我的项目,将使用位板编码在9 x 11的板上玩游戏。我的MCTS实现非常简单,紧随本文(第6页)提供的伪代码。

本质上,一般的MCTS方法包括这4个部分,它们分别由CustomPlayer类中的以下嵌套函数实现:

  1. 选择-tree_policy
  2. 扩展-best_child,扩展
  3. 模拟-default_policy
  4. 反向传播-backup_negamax,update_scores

    import math
    import random
    import time
    import logging
    
    from copy import deepcopy
    from collections import namedtuple
    
    from sample_players import DataPlayer
    
    
    class CustomPlayer(DataPlayer):
        """ Implement your own agent to play knight's Isolation
        The get_action() method is the only required method for this project.
        You can modify the interface for get_action by adding named parameters
        with default values, but the …
    Run Code Online (Sandbox Code Playgroud)

python artificial-intelligence python-3.x monte-carlo-tree-search

24
推荐指数
1
解决办法
494
查看次数

良好的AI参考所需的建议

我被要求用AI帮助XNA项目.我不是全新的概念(寻路,植绒等),但这将是第一个"真正的"代码.我非常感谢任何资源(链接或书籍); 我想确保我做对了.

xna artificial-intelligence

23
推荐指数
3
解决办法
1824
查看次数

java简单神经网络设置

我决定在Java中使用一些涉及神经网络的简单概念,并且在调整我在论坛上找到的一些无用的代码时,我已经能够为典型的初学者的XOR仿真创建一个非常简单的模型:


public class MainApp {
    public static void main (String [] args) {
        Neuron xor = new Neuron(0.5f);
        Neuron left = new Neuron(1.5f);
        Neuron right = new Neuron(0.5f);
        left.setWeight(-1.0f);
        right.setWeight(1.0f);
        xor.connect(left, right);

        for (String val : args) {
            Neuron op = new Neuron(0.0f);
            op.setWeight(Boolean.parseBoolean(val));
            left.connect(op);
            right.connect(op);
        }

        xor.fire();

        System.out.println("Result: " + xor.isFired());

    }
}
Run Code Online (Sandbox Code Playgroud)

public class Neuron {
    private ArrayList inputs;
    private float weight;
    private float threshhold;
    private boolean fired;

    public Neuron (float t) {
        threshhold = t;
        fired = …
Run Code Online (Sandbox Code Playgroud)

java simulation artificial-intelligence neural-network

23
推荐指数
2
解决办法
3万
查看次数

谓词与一阶逻辑中的函数

关于一阶逻辑中谓词和函数之间的区别,我最近一直很困惑.

到目前为止我的理解是,

谓词是显示比较或显示两个对象之间的关系,如,

President(Obama, America)
Run Code Online (Sandbox Code Playgroud)

函数用于指定特定对象的内容,例如

Human(Obama)
Run Code Online (Sandbox Code Playgroud)

现在我正在走上正确的道路来区分这两个术语,或者我完全错了,需要一个简短的解释,我希望得到专家的意见来澄清我的知识(或批准我的理解).提前致谢

克里奥尔语

algorithm logic artificial-intelligence agent first-order-logic

23
推荐指数
3
解决办法
1万
查看次数

如何继续NLP任务以识别意图和插槽

我想写一个关于天气问题的程序.我应该开始研究哪些算法和技术.

例如:这个周末在芝加哥会不会是晴天.我想知道intent = weather查询,date =这个周末,location = chicago.

用户可以以多种形式表达相同的查询.

我想解决一些约束形式,并寻找如何开始的想法.解决方案需要足够好.

text-processing nlp artificial-intelligence machine-learning

23
推荐指数
2
解决办法
1万
查看次数