OperantKit 是一个用 Swift 编写的用于操作性条件反射 (工具性条件反射) 实验的工具包。
日本語:jp:: README_JP.md
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)))
将此添加到你的 Podfile
中
pod 'OperantKit'
并且
$ pod install
将此添加到你的 Cartfile
中
github "YutoMizutani/OperantKit"
并且
$ carthage update
将此添加到你的 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
Yuto Mizutani, yuto.mizutani.dev@gmail.com
我的“动力”完全由连续强化 (FR1) 程序表控制 :)
OperantKit 在 MIT 许可证下可用。