MEDEIROS, J. M. L.; http://lattes.cnpq.br/4031894209730794; MEDEIROS, João Marcos Lima.
Resumo:
In the context of graph theory, it is common to find optimizations centered on the “inside of the
algorithm”, to try to reduce its asymptotic complexity. However, in certain cases, it is not possible to
reduce the complexity of the algorithm, but this does not define the minimum number of operations
to be performed to solve a given problem. This happens because manipulations can be made on the
graph received as input, allowing a specific algorithm to run more efficiently. In this context, we
present an optimization that allows creating edges from a vertex to all vertices of a given interval in a
graph or even creating edges between all vertices of two intervals, with a cost equivalent to adding
just O(log(u) + log(v) edges, with u and v being the size of the first and second intervals respectively.
This can be done by adding two segment trees to the graph, preserving its distances and connectivity.
After that, we verified the edge reduction level obtained by this algorithm in dense graphs, where
there may be several edges between vertex intervals, even if it happens randomly. With this
optimization, we were able to reduce the number of edges by about 50% in graphs with at least 80%
of the possible edges present.