如何在Haskell中创建两个具有内部状态的相互生产者/消费者?

我有一个智能体,它接收状态并返回动作,同时保持状态/动作对的效用的内部表示。我还有一个环境,它接收动作并返回状态/奖励对。

我需要能够使用一个起始状态来设置智能体,然后不断地从智能体 -(动作)-> 环境 -(状态,奖励)-> 智能体 -(动作)->…
但是,内部状态(需要在每次迭代中更新)需要保持私有(即,在智能体或环境内部)。这意味着我不能简单地在智能体中使用状态和动作作为参数来调用环境作为函数。

我是Haskell新手,所以我不确定这是否可能。


回答:

两个问题:

  • 如果智能体必须使用状态来计算动作,那么您如何期望对智能体保密状态的表示?

  • 如果环境期望根据动作产生状态(和奖励),那么您如何期望对环境保密状态的表示?

这两种情况都是可能的,但每一种都必须涉及某种查询状态或创建状态的抽象。我对这个设计没有好的感觉。

通过以下方式澄清问题会有帮助:

  • 提供感兴趣的函数的类型签名

  • 确定您希望状态的表示暴露给哪些函数。

附:这些困难与Haskell完全分离,并且无论选择哪种实现语言,都会出现问题(前提是该实现语言支持某种形式的隐私)。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注