|
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.