1
Fork 0
mirror of https://github.com/Jaxan/hybrid-ads.git synced 2025-04-27 23:17:44 +02:00
hybrid-ads/lib/create_adaptive_distinguishing_sequence.hpp
2015-03-19 17:25:33 +01:00

32 lines
720 B
C++

#pragma once
#include "mealy.hpp"
#include <vector>
#include <utility>
struct result;
struct distinguishing_sequence;
// Creates a distinguishing sequence based on the output of the first algorithm
distinguishing_sequence create_adaptive_distinguishing_sequence(result const & splitting_tree);
// The adaptive distinguishing sequence as described in Lee & Yannakakis
// This is really a tree!
struct distinguishing_sequence {
distinguishing_sequence(size_t N, size_t depth)
: CI(N)
, depth(depth)
{
for(size_t i = 0; i < N; ++i)
CI[i] = {i, i};
}
// current, initial
std::vector<std::pair<state, state>> CI;
std::vector<input> word;
std::vector<distinguishing_sequence> children;
size_t depth;
};