OperantKit
OperantKit 是一个用 Swift 编写的用于操作性条件反射(操作条件反射)实验的工具包。
日语
用法
import OperantKit
import RxSwift
func main() {
let schedule = FR(5) // Fixed ratio 5 schedule
let events: Observable<Void> = ... // Observable events
schedule.decision(events)
.filter({ $0.isReinforcement }) // Filtering responses of reinforcement
.subscribe(onNext: {
print("Reinforcement")
})
.disposed(by: DisposeBag())
}
示例
支持的时间表
简单日程表
固定日程表
日程表名称 | 代码 |
---|---|
固定比率日程表 | FR(5) |
变比率日程表 | VR(5) ※ |
随机比率日程表 | RR(5) |
※ 变比率日程表的迭代次数默认为“12”,
VR(10, iterations: 12)
也可以更改迭代次数等。
间隔日程表
日程表名称 | 代码 |
---|---|
固定间隔日程表 | FI(5) |
变间隔日程表 | VI(5) |
随机间隔日程表 | RI(5) |
时间间隔默认为.seconds
,
FI(5, unit: .minutes)
也可以更改单位。
时间日程表
日程表名称 | 代码 |
---|---|
固定时间日程表 | FT(5) |
变时间日程表 | VT(5) |
随机时间日程表 | RT(5) |
时间间隔默认为.seconds
,
FI(5, unit: .minutes)
也可以更改单位。
其他日程表
日程表名称 | 代码 |
---|---|
连续强化 | CRF() |
灭绝日程表 | EXT() |
组合日程表
日程表名称 | 代码 |
---|---|
并行日程表 | Conc(FR(5), VI(10)) ※ |
※ 当一个常规计划适用于两个或更多种类型的操作数,如并发链式计划中的内部链接,可以使用 Shared()
关键字来处理。例如:Conc(Shared(VI(10)))
安装
CocoaPods
将此内容添加到您的 Podfile
pod 'OperantKit'
然后
$ pod install
Carthage
将此内容添加到您的 Cartfile
github "YutoMizutani/OperantKit"
然后
$ carthage update
Swift Package Manager
将此内容添加到您的 Package.swift
dependencies: [
.package(url: "https://github.com/YutoMizutani/OperantKit.git", "0.0.1" ..< "1.0.0"),
]
然后
$ swift build
依赖
文档
请参阅 https://yutomizutani.github.io/OperantKit/
操作条件作用(工具性条件作用)
清洁架构
响应式编程
开发安装
克隆此存储库,
$ git clone https://github.com/YutoMizutani/OperantKit.git
并使用make
命令,
$ make deps-all
$ make open
参考文献
作者
Midori Sato, [email protected]
捐赠
我的“动力”完全受控于持续强化(FR1)计划 :)
许可证
OperantKit是在MIT许可证下提供的。