@@ -3,13 +3,18 @@ export Trajectory,
3
3
EpisodicTrajectory,
4
4
CombinedTrajectory,
5
5
CircularCompactSATrajectory,
6
+ VectCompactSATrajectory,
7
+ ElasticCompactSATrajectory,
6
8
CircularCompactSALTrajectory,
7
9
CircularCompactSARTSATrajectory,
10
+ VectCompactSARTSATrajectory,
11
+ ElasticCompactSARTSATrajectory,
8
12
CircularCompactPSARTSATrajectory,
9
13
CircularCompactSALRTSALTrajectory,
10
14
CircularCompactPSALRTSALTrajectory
11
15
12
16
using MacroTools: @forward
17
+ using ElasticArrays
13
18
14
19
# ####
15
20
# Trajectory
175
180
176
181
isfull (t:: CombinedTrajectory ) = isfull (t. t1) && isfull (t. t2)
177
182
183
+ # ####
184
+ # VectCompactSATrajectory
185
+ # ####
186
+
187
+ const VectCompactSATrajectory = CombinedTrajectory{
188
+ <: SharedTrajectory {
189
+ <: Vector ,
190
+ <: NamedTuple{(:state, :next_state, :full_state)} ,
191
+ },
192
+ <: SharedTrajectory {
193
+ <: Vector ,
194
+ <: NamedTuple{(:action, :next_action, :full_action)} ,
195
+ }
196
+ }
197
+
198
+ function VectCompactSATrajectory (;
199
+ state_type = Int,
200
+ action_type = Int,
201
+ )
202
+ CombinedTrajectory (
203
+ SharedTrajectory (
204
+ Vector {state_type} (),
205
+ :state ,
206
+ ),
207
+ SharedTrajectory (
208
+ Vector {action_type} (),
209
+ :action ,
210
+ ),
211
+ )
212
+ end
213
+
178
214
# ####
179
215
# CircularCompactSATrajectory
180
216
# ####
@@ -209,6 +245,40 @@ function CircularCompactSATrajectory(;
209
245
)
210
246
end
211
247
248
+ # ####
249
+ # ElasticCompactSATrajectory
250
+ # ####
251
+
252
+ const ElasticCompactSATrajectory = CombinedTrajectory{
253
+ <: SharedTrajectory {
254
+ <: ElasticArray ,
255
+ <: NamedTuple{(:state, :next_state, :full_state)} ,
256
+ },
257
+ <: SharedTrajectory {
258
+ <: ElasticArray ,
259
+ <: NamedTuple{(:action, :next_action, :full_action)} ,
260
+ },
261
+ }
262
+
263
+ function ElasticCompactSATrajectory (;
264
+ state_type = Int,
265
+ state_size = (),
266
+ action_type = Int,
267
+ action_size = (),
268
+ )
269
+ CombinedTrajectory (
270
+ SharedTrajectory (
271
+ ElasticArray {state_type} (undef, state_size... , 0 ),
272
+ :state ,
273
+ ),
274
+ SharedTrajectory (
275
+ ElasticArray {action_type} (undef, action_size... , 0 ),
276
+ :action ,
277
+ ),
278
+ )
279
+ end
280
+
281
+
212
282
# ####
213
283
# CircularCompactSALTrajectory
214
284
# ####
@@ -240,6 +310,35 @@ function CircularCompactSALTrajectory(;
240
310
CircularCompactSATrajectory (; capacity = capacity, kw... ),
241
311
)
242
312
end
313
+
314
+ # ####
315
+ # VectCompactSARTSATrajectory
316
+ # ####
317
+
318
+ const VectCompactSARTSATrajectory = CombinedTrajectory{
319
+ <: Trajectory {
320
+ <: NamedTuple {
321
+ (:reward , :terminal ),
322
+ <: Tuple{<:Vector,<:Vector} ,
323
+ },
324
+ },
325
+ <: VectCompactSATrajectory ,
326
+ }
327
+
328
+ function VectCompactSARTSATrajectory (;
329
+ reward_type = Float32,
330
+ terminal_type = Bool,
331
+ kw... ,
332
+ )
333
+ CombinedTrajectory (
334
+ Trajectory (
335
+ reward = Vector {reward_type} (),
336
+ terminal = Vector {terminal_type} (),
337
+ ),
338
+ VectCompactSATrajectory (; kw... ),
339
+ )
340
+ end
341
+
243
342
# ####
244
343
# CircularCompactSARTSATrajectory
245
344
# ####
@@ -271,6 +370,37 @@ function CircularCompactSARTSATrajectory(;
271
370
)
272
371
end
273
372
373
+ # ####
374
+ # ElasticCompactSARTSATrajectory
375
+ # ####
376
+
377
+ const ElasticCompactSARTSATrajectory = CombinedTrajectory{
378
+ <: Trajectory {
379
+ <: NamedTuple {
380
+ (:reward , :terminal ),
381
+ <: Tuple{<:ElasticArray,<:ElasticArray} ,
382
+ },
383
+ },
384
+ <: ElasticCompactSATrajectory ,
385
+ }
386
+
387
+ function ElasticCompactSARTSATrajectory (;
388
+ reward_type = Float32,
389
+ reward_size = (),
390
+ terminal_type = Bool,
391
+ terminal_size = (),
392
+ kw... ,
393
+ )
394
+ CombinedTrajectory (
395
+ Trajectory (
396
+ reward = ElasticArray {reward_type} (undef, reward_size... , 0 ),
397
+ terminal = ElasticArray {terminal_type} (undef, terminal_size... , 0 ),
398
+ ),
399
+ ElasticCompactSATrajectory (; kw... ),
400
+ )
401
+ end
402
+
403
+
274
404
# ####
275
405
# CircularCompactSALRTSALTrajectory
276
406
# ####
0 commit comments