LAL: Linear Arrangement Library 24.10.00
A library focused on algorithms on linear arrangements of graphs.
|
Implementation of Anderson's algorithm for chunking. More...
#include <Anderson.hpp>
Public Member Functions | |
chunks_Anderson (const graphs::rooted_tree &rt, const arrangement_t &arr) noexcept | |
Constructor. | |
void | chunk_input_tree () noexcept |
Main method of this class. | |
const linarr::chunk_sequence & | get_chunk_sequence () const noexcept |
Returns a constant reference to the chunk sequence m_sequence. | |
linarr::chunk_sequence && | retrieve_chunk_sequence () noexcept |
Moves the chunk sequence m_sequence. | |
Private Types | |
typedef chunks_generic< arrangement_t > | generic |
Useful typedef. | |
Private Member Functions | |
bool | can_be_added (const node r, const node u) const noexcept |
Can node u be added to the same chunk as r. | |
void | assign_chunk_indices (const node_t r, std::size_t &chunk_idx) noexcept |
Assign chunk indices to all vertices of the subtree rooted at r. | |
void | relabel_chunks () noexcept |
Relabels the chunks obtained in method assign_chunk_indices. | |
void | make_chunks () noexcept |
Actually builds the sequence of chunks. | |
void | set_parent_chunk (linarr::chunk &c) noexcept |
Set the parent node of a chunks. | |
void | set_chunk_index (const node u, const std::size_t i) noexcept |
Sets the chunk index of node u to index i. | |
std::size_t | node_to_chunk (const node u) const noexcept |
Returns the chunk index of node u. | |
linarr::chunk & | last_chunk () noexcept |
Returns a reference to the last chunk in the sentence. | |
Private Attributes | |
linarr::chunk_sequence | m_sequence |
The sequence of chunks obtained. | |
const uint64_t | m_n |
Number of vertices of the tree. | |
const arrangement_t | m_arr |
Linear arrangement. | |
const graphs::rooted_tree & | m_rt |
Input rooted tree. | |
Implementation of Anderson's algorithm for chunking.
Chunking applied to syntactic dependency trees alone (a.k.a., rooted trees).
See [12] and [11] for a complete definition of Anderson (et al.)'s chunks.
arr_t | Type of arrangement. |
|
inlinenoexcept |
Constructor.
rt | Input rooted tree. |
arr | Input linear arrangement. |
|
inlineprivatenoexcept |
Assign chunk indices to all vertices of the subtree rooted at r.
r | Root of the current subtree. | |
[in,out] | chunk_idx | Current chunk index. |
|
inlinenoexcept |
Main method of this class.
Calling this method will chunk the input rooted tree using Anderson (et al.)'s definition.
|
inlineprivatenoexcept |
Actually builds the sequence of chunks.
Puts all equally-labelled nodes in the same chunk and computes the parent node for each chunk.
|
inlineprivatenoexcept |
Relabels the chunks obtained in method assign_chunk_indices.
Reassigns labels to chunks so that the leftmost chunk is labelled 0.