de.learnlib.algorithms.lstargeneric.closing.ClosingStrategy Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of learnlib-lstar-generic Show documentation
Show all versions of learnlib-lstar-generic Show documentation
A flexible, optimized version of Dana Angluin's L* algorithm
/* Copyright (C) 2013 TU Dortmund
* This file is part of LearnLib, http://www.learnlib.de/.
*
* LearnLib is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 3.0 as published by the Free Software Foundation.
*
* LearnLib is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with LearnLib; if not, see
* .
*/
package de.learnlib.algorithms.lstargeneric.closing;
import java.util.List;
import de.learnlib.algorithms.lstargeneric.table.ObservationTable;
import de.learnlib.algorithms.lstargeneric.table.Row;
import de.learnlib.api.MembershipOracle;
/**
* A closing strategy, determining how to proceed when an observation table needs to be closed.
*
* @author Malte Isberner
*
* @param type variable for input symbol upper bound.
* @param type variable for output symbol upper bound.
*/
public interface ClosingStrategy {
/**
* Given a list of row equivalence classes, this method selects for each of the classes
* one (representative) row which is being closed. This corresponds to selecting one of several
* long prefixes (i.e., transitions reaching an unknown state) to be an access sequence.
*
* By contract, the size of the the returned list must equal the size of the
* unclosedClasses argument.
*
* @param unclosedClasses the list of row equivalence classes
* @param table the observation table
* @param oracle the membership oracle
* @return a selection of representative rows to be closed.
*/
public
List> selectClosingRows(List>> unclosedClasses, ObservationTable table,
MembershipOracle oracle);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy