Алгоритм ветвей и границ для поиска классифицир-х последовательностей
Требуется реализовать алгоритм ветвей и границ для поиска разделяющих последовательностей. Задача такова.
На вход подается txt файл с записями вида
НомерКласса: последовальность и предельные ошибки 1 и 2 рода.
Например:
1: b,a,d,c
1: a,d,c,b
2: b,b,b,d
2: a,b,b,d
На каждом шаге берется самый частый элемент, стоящий на первом месте, и добавляется в имеющийся префикс. В данном примере возьмем элемент b. Затем происходит деление таблицы на 2 подтаблицы (одна содержит b в качестве префикса, другая содержит НЕ(b))
b:
1: a,d,c
1:[] (пусто, т.к. b стоит на последнем месте)
2: b,b,d
2: b,d
НЕ(b):
1: a,d,c
1: a,d,c,b
2: d
2: a,b,b,d
Для каждой таблицы расчитываются ошибки 1 и 2 рода. Если для какой-то таблицы ошибка 1 рода больше наперед заданной, то данную таблицу более не рассматриваем. Далее действуем итерационно до тех пор, пока не сделаем "полный перебор".
Реализовать нужно на с++ в один поток.