AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
random_pattern.h
1#ifndef PDBS_RANDOM_PATTERN_H
2#define PDBS_RANDOM_PATTERN_H
3
4#include "downward/pdbs/types.h"
5
6#include <memory>
7
8class TaskProxy;
9
10namespace utils {
11class LogProxy;
12class RandomNumberGenerator;
13} // namespace utils
14
15namespace pdbs {
16/*
17 This function computes a pattern for the given task. Starting with the given
18 goal variable, the algorithm executes a random walk on the causal graph. In
19 each iteration, it selects a random causal graph neighbor of the current
20 variable (given via cg_neighbors). It terminates if no neighbor fits the
21 pattern due to the size limit or if the time limit is reached.
22*/
23extern Pattern generate_random_pattern(
24 int max_pdb_size,
25 double max_time,
26 utils::LogProxy& log,
27 const std::shared_ptr<utils::RandomNumberGenerator>& rng,
28 const TaskProxy& task_proxy,
29 int goal_variable,
30 std::vector<std::vector<int>>& cg_neighbors);
31
32} // namespace pdbs
33
34#endif