Abstract
We study the problem of computing the so called minimum and maximum witnesses for Boolean vector convolution. We also consider a generalization of the problem which is to determine for each positive value at a coordinate of the convolution vector, q smallest (largest) witnesses, where q is the minimum of a parameter k and the number of witnesses for this coordinate. We term this problem the smallest k-witness problem or the largest k-witness problem, respectively. We also study the corresponding smallest and largest k-witness problems for Boolean matrix product. First, we present an tilde{O}(n^{1.5}k^{0.5})-time algorithm for the smallest or largest k-witness problem for the Boolean convolution of two n-dimensional vectors, where the notation tilde{O}( ) suppresses polylogarithmic in n factors. In consequence, we obtain new upper time bounds on reporting positions of mismatches in potential string alignments and on computing restricted cases of the (min , +) vector convolution. Next, we present a fast (substantially subcubic in n and linear in k) algorithm for the smallest or largest k-witness problem for the Boolean matrix product of two ntimes n Boolean matrices. It yields fast algorithms for reporting k lightest (heaviest) triangles in a vertex-weighted graph.
Highlights
For a potential alignment of a pattern string with a text string over the same alphabet, a position in the alignment where the pattern symbol is different from the text symbol is a witness to the symbol mismatch while a position where the pattern and text symbol are equal is a witness to the symbol match
The problems of finding “witnesses” have been extensively studied for several decades, at the beginning independently within stringology and graph algorithms relying on matrix computations
We study the problem of computing minimum and maximum witnesses for Boolean vector convolution
Summary
For a potential alignment of a pattern string with a text string over the same alphabet, a position in the alignment where the pattern symbol is different from the text symbol is a witness to the symbol mismatch while a position where the pattern and text symbol are equal is a witness to the symbol match. – an O (n1.5)-time algorithm for reporting minimum and maximum witnesses for the Boolean convolution of two n-dimensional vectors, and more generally, an O (n1.5k0.5)-time algorithm for the smallest or largest k-witness problem for the convolution; – as corollaries, O (n1.5k0.5) time bounds for the smallest or largest k-witness problems in string matching; – in part as corollaries, several upper time bounds on computing the (min, +) integer vector convolution in restricted cases, summarized in Table 1; – an O(n2+λk)-time algorithm for the smallest or largest k-witness problem for the Boolean matrix product of two n × n Boolean matrices, where λ is a solution to the equation ω(1, λ, 1) = 1 + 2 λ + logn k; – as a corollary, an O(n2+λk) time bound for the problem of reporting for each edge of a vertex-weighted graph k lightest (heaviest) triangles containing it, where λ satisfies the aforementioned equation; an O(min{nωk + n2+o(1)k, n2+λk}). Time bound for the problem of reporting k lightest (heaviest) triangles in the input vertex-weighted graph
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.