All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.citec.tcs.alignment.package-info Maven / Gradle / Ivy

/* 
 * TCS Alignment Toolbox
 * 
 * Copyright (C) 2013-2015
 * Benjamin Paaßen, Georg Zentgraf
 * AG Theoretical Computer Science
 * Centre of Excellence Cognitive Interaction Technology (CITEC)
 * University of Bielefeld
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 * 
 * This program 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 Affero General Public License for more details.
 * 
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see .
 */
/**
 * This module defines the interface for AlignmentAlgorithms as
 * well as some helper classes. An AlignmentAlgorithm computes an alignment
 * of two given input sequences, given an AlignmentSpecification. An
 * AlignmentSpecification in turn is a vector of Comparators (refer to the
 * respective module for more information), such that the distance between
 * two elements of the input sequences can be computed. In that sense all
 * an AlignmentAlgorithm has to do is to implement the computation of an
 * Alignment, under the assumption that a distance between sequence
 * elements is given as the weighted sum of comparator distances, as
 * specified in the AlignmentSpecification.
 *
 * An AlignmentAlgorithm does not need to calculate just a real-valued
 * distance between the input sequences but may also provide additional
 * information about the alignment in order to calculate a derivative.
 *
 * To store such additional information this module contains the
 * AlignmentDerivativeAlgorithm. A usual implementation of this is classic
 * backtracing, which can be stored in an AlignmentPath object. If an
 * AlignmentAlgorithm returns several possible AlignmentPaths, they can
 * be stored in the PathList or PathMap datastructure.
 *
 * To make an alignment distance differentiable, we usually employ the
 * Softmin approximation of the strict minimum. A standard implementation
 * is provided in the Softmin class.
 *
 * For faster (parallel) computation of many different alignments or
 * derivatives we also provide the ParallelProcessingEngine, the
 * ParallelDerivativeEngine and the ParallelWeightDerivativeEngine.
 * 
 * @author Benjamin Paassen - [email protected]
 */
package de.citec.tcs.alignment;




© 2015 - 2025 Weber Informatics LLC | Privacy Policy