在Swift中使用iOS做出决定的最佳方法是什么

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Swift中使用iOS做出决定的最佳方法是什么相关的知识,希望对你有一定的参考价值。

我想用一个简单的AI制作一个简单的应用程序。我进行了研究,发现了一些有关决策树,规则和行为树的文章。

[我看了WWDC2016的视频,其中展示了新的GKDecisionTree。也许这可能是我应用程序的简单解决方案。

我尝试了此代码,但在此行中出现错误:

let tree = GKDecisionTree(attribute: "anrgy?")

参数类型'String'不符合预期的类型'NSObjectProtocol'

        // SETUP TREE
        let tree = GKDecisionTree(attribute: "anrgy?")
        let root = tree?.rootNode
        // ADD BRANCH

        // Create branches
        root.createBranch(value: true, attribute: "attack")
        let goAway = root.createBranch(value: false, attribute: "goAway")


        // Create actions for when nearby
        goAway.createBranch(withWeight: 9, attribute: "Left")
        goAway.createBranch(withWeight: 1, attribute: "Right")

        // Find action for answers
        // Find action for answers
        let answers = ["anrgy?" : true]
        tree.findActionForAnswers(answers: answers)

[请让我知道简单的AI是否有更好的方法或如何解决此示例。

谢谢您的帮助。

答案

此代码有效:

        // SETUP TREE
        let tree = GKDecisionTree(attribute: "anrgy?" as NSObjectProtocol)
        let root = tree.rootNode
        // ADD BRANCH

        // Create branches
        root?.createBranch(value: true, attribute: "attack" as NSObjectProtocol)
        let goAway = root?.createBranch(value: false, attribute: "goAway" as NSObjectProtocol)


        // Create actions for when nearby
        goAway?.createBranch(weight: 9, attribute: "Left" as NSObjectProtocol)
        goAway?.createBranch(weight: 1, attribute: "Right" as NSObjectProtocol)

        // Find action for answers
        // Find action for answers
        let answers = ["anrgy?" : false]
        let decisionAction = tree.findAction(forAnswers: answers as [AnyHashable : NSObjectProtocol])
        print("Answer: \(String(describing: decisionAction!))")
    

但是这是一种好的编码风格吗?有没有比使用GKDecisionTree更好的方法?

以上是关于在Swift中使用iOS做出决定的最佳方法是什么的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 你如何为你的 iOS 应用决定最佳的“部署目标”

衡量 iOS 应用性能的策略

在Realm swift中重命名类的最佳方法

在 Swift Vapor 中返回响应可表示对象集合的最佳方法是啥?

在 iOS (Swift) 中使用后台位置更新的最佳方式 [关闭]

使用 WiFi 在 iOS 设备之间同步音频的最佳方法是啥?