Next Article in Journal
SVseg: Stacked Sparse Autoencoder-Based Patch Classification Modeling for Vertebrae Segmentation
Next Article in Special Issue
Complexity of Solutions Combination for the Three-Index Axial Assignment Problem
Previous Article in Journal
An Efficient Algorithm to Compute the Linear Complexity of Binary Sequences
Previous Article in Special Issue
Decomposition of the Knapsack Problem for Increasing the Capacity of Operating Rooms
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Special Type Routing Problems in Plane Graphs

by
Tatiana Makarovskikh
*,† and
Anatoly Panyukov
Department of System Programming, South Ural State University, 454080 Chelyabinsk, Russia
*
Author to whom correspondence should be addressed.
These authors contributed equally to this work.
Mathematics 2022, 10(5), 795; https://doi.org/10.3390/math10050795
Submission received: 10 February 2022 / Revised: 25 February 2022 / Accepted: 26 February 2022 / Published: 2 March 2022
(This article belongs to the Special Issue Recent Advances of Disсrete Optimization and Scheduling)

Abstract

:
We considered routing problems for plane graphs to solve control problems of cutting machines in the industry. According to the cutting plan, we form its homeomorphic image in the form of a plane graph G. We determine the appropriate type of route for the given graph: O E -route represents an ordered sequence of chains satisfying the requirement that the part of the route that is not passed does not intersect the interior of its passed part, A O E -chain represents O E -chain consecutive edges which are incident to vertex v and they are neighbours in the cyclic order O ± ( v ) , N O E -route represents the non-intersecting O E -route, P P O E -route represents the Pierce Point N O E -route with allowable pierce points that are start points of O E -chains forming this route. We analyse the solvability of the listed routing problems in graph G. We developed the polynomial algorithms for obtaining listed routes with the minimum number of covering paths and the minimum length of transitions between the ending of the current path and the beginning of the next path. The solutions proposed in the article can improve the quality of technological preparation of cutting processes in CAD/CAM systems.

1. Introduction

Simulation of some control and automation design problems [1,2] explains interest in routing problems for CAD/CAM systems. Lots of them devoted to finding the routes satisfying certain constraints have arisen from specific practical situations. All kinds of trajectory problems are universal mathematical models of optimization and control tasks. The examples of them are the following: (1) heuristic algorithms for constructing routes (N.A. Eapen and R.B. Heckendorn [3], S.Q. Xie [4], Y. Jing and C. Zhige [5], M.K. Lee and K.B. Kwon [6], J. Hoeft and U.S. Palekar [7]); (2) trajectory stabilization of mobile robots (V.A. Utkin [8]); (3) management of routing process and optimization (A.A. Lazarev [9]); (4) problems of obtaining the routes in graphs (H. Fleischner [10]); (5) the routing problem for cutting blanks from sheet material (V.M. Kartak [11], A.A. Petunin [12,13], A.G. Chentsov [14,15], I. Landovskaya [16]).
The capabilities of modern equipment for cutting sheet material allow using the cutting plans with the combining of contours for cut-out of separate parts. This combining of cuts allows reducing the material loss, the cutting length and the number of idle passes.
Algorithms for obtaining the cutting plans for tasks with combined cuts do not fundamentally differ from algorithms that do not allow any combining. However, the algorithms for finding the routes of the cutter moving are fundamentally different. Therefore, the development of algorithms for finding the route of the cutter for plans allowing the combining of the cut parts contours is still an open task.
In this paper, we consider the routing problems in plane graphs. These graphs are homeomorphic images of cutting plans. The cutter path is defined as a path covering all the boundaries of the cut parts. The main constraint on this path is that the faces of the route’s initial part do not intersect with the edges of the remaining part. For flame cutting, we need the following additional constraints on a path: (1) absence of self-intersections of the cutting path (NOE-condition), and (2) allowance to start cutting from allowable pierce vertices (PPOE-condition).
In practice, the most common approach does not involve a combination of the contours of the cut parts. This method is material and energy-consuming [13,17,18]. In one of such papers [3], the shapes are considered to be polygons. There are two different ways to cut each polygon: (1) entirely (complete cutting approach) or (2) partially (partial cutting approach) before cutting the next one. The authors of [3] proposed the approximation algorithm that uses such concepts as matching, spanning tree, and triangulation (MASTRI). This algorithm runs a time not greater than O ( n log n ) , where n is the total number of all the polygons vertices. The cutting path computed by algorithm [3] is guaranteed to be within a factor of 3/2 of the optimum distance of the cutter. Hence, MASTRI algorithm can be used for computing cutting paths in industries like sheet metal cutting. It should be noted that the possibility of using concepts of matching, spanning tree, and triangulation was noted in our article [19].
The first attempts of constructing the routes in which the passed part of the route does not cover the edges of the remaining part were made in the work of U. Manber and S. Israni [20] where the image of the cutting plan is represented as an equivalent graph. The objective of this research is to cover this graph with a minimum number of chains starting in the pierce points or breakthroughs. Since the graph has 2 k vertices of odd degree, then k pierce points are necessary and sufficient to traverse the graph. The cutter path problem formulation includes such parameters as manufacturing cost, efficiency, and distortion considerations. Some algorithms solving this task are considered in [20]. However, these algorithms do not have sufficient formalization, and the formulation of the problem does not take into account some technological constraints for flame cutting. Later, U. Manber and S.W. Bent [21] noted the need to construct a self-intersecting route and provided proof that this task belongs to the N P  class. This proof is a compilation H. Fleischner’s results [22] introducing the concept of an A-chain. This chain has the allowed transitions between edges, that are specified in a cyclic order at each vertex of the graph. H. Fleischner also proved that the task of constructing the A-chain is NP -hard in general, but there are some special cases for which this task is solvable in polynomial time. One of such cases is a 4-regular graph. U. Manber and S.W. Bent in fact use A-chain instead of a self-intersecting chain. If we consider the partial case when the cutting plan is a plane Euler graph, then it is known that its dual face graph is bichromatic. For this case, S.B. Bely [23] proved the existence of an Euler cycle homeomorphic to a plane Jordan curve without self-intersections. However, it is unclear how to use this possibility for CAD/CAM systems for technological preparation of cutting processes.
The listed above problems have been solved by the authors. A rigorous formalization of these problems in terms of O E -chains is given in our paper [24]; however, the O E -chain allows the possibility of self-intersection of the trajectory. Representation of a plane Euler graph in the form of a self-intersecting Jordan curve has been announced at conferences [25,26]. We proved the necessary and sufficient conditions of P P O E -routes existence and built the polynomial algorithm P P O E -routing constructing such routes for any plane graph. The correctness of this algorithm has been announced at the conference [27]. The purpose of this article is to present the results obtained using a single terminology.

2. Methods

2.1. Abstracting the Cutting Plan to a Plane Graph

The information on the part shape is not used when we determine the sequence of cutting the fragments of the cutting. Hence, all the curves without self-intersections and contacts on the plane, representing the shape of the parts, are interpreted as the edges of the graph. All the points of intersection and contact are represented as the vertices of the graph. So, it is necessary to introduce additional functions on the set of vertices, faces and edges of the resulting graph to analyse the implementation of the given technological constraints.
We consider a plane S as a model of cutting plan, then a plane graph G ( V , E ) with outer face f 0 S be the cutting plan model. The set of edges E ( G ) S of this graph is the Jordan curves with pairwise disjoint interiors and homeomorphic to open segments. Hence, the set of vertices V ( G ) S is the set of bounding points of these segments. For any part of the graph J G , we denote the set-theoretic union of its interior faces (the union of all connected components of S \ J that do not contain an outer face) by Int J . Then, Int ( J ) can be interpreted as a part cut off a sheet. The sets of vertices, edges and faces of the graph G we denote as V ( G ) , E ( G ) and F ( G ) , respectively. Since we consider graph G as a model of a cutting plan, there is no case when G is non-planar.
Theorem 1.
The topological representation of plane graph G = ( V , E ) on plane S up to homeomorphism is defined by the following functions for each edge e E , k = 1 , 2 :
  • v k ( e ) is the pair of vertices incident to e,
  • l k ( e ) is the edges obtained by rotating edge e counter-clockwise around a vertex v k ,
  • r k ( e ) is the edges obtained by rotating edge e clockwise around a vertex v k ,
  • f k ( e ) is the face placed on the left when moving along the edge e from the vertex v k ( e ) to the vertex v 3 k ( e ) .
Proof. 
An illustration of the functions from the Theorem 1 is given in Figure 1.
Since functions v k ( e ) , f k ( e ) , l k ( e ) , k = 1 , 2 for graph G edges define incident vertices, faces, and adjacent edges for each e E ( G ) this statement is obvious.  □
Figure 2 illustrates an example of a cutting plan. Its homeomorphic image is given in Figure 3 and the named functions for its computer representation are given in Table 1. We can interpret any path obtained in graph G as a trajectory of the cutter since we know the inverse images of all the vertices.

2.2. O E -Routing

2.2.1. Basic Definitions

Let us consider the formulation and solution of the problem for constructing the routes in a plane graph that satisfy the condition that the interior faces of any their initial parts do not intersect with the edges of the remaining part. Formally, such routes are defined as an ordered sequence of O E -chains (ordered enclosing chains) of the graph G = ( V , E ) and form a class of O E -paths. The definitions, proofs and notations of the theory of routes with ordered enclosing ( O E -routes) are introduced in [19]. Let us give these definitions to avoid the loss of generality.
Definition 1.
Chain C = v 1 e 1 v 2 e 2 v k in plane graph G has ordered enclosing (is an O E -chain), if for any its initial part C l   =   v 1 e 1 v 2 e 2 e l , l ( | E | ) the condition Int C l E = holds.
Theorem 2
([19]). Let G = ( V , E ) be a plane Euler graph. For any vertex v V ( G ) incident to outer (infinite) face of graph G there exists Euler O E -cycle C   =   v e 1 v 1 e 2 v 2 v | E |     1 e | E | v .
The proof of this theorem gives the recursive algorithm of O E -cycle constructing. This algorithm has computing complexity O ( | E | 2 ) . However, there exists non-recursive approach with computing complexity O ( | V | · log | E | ) [28].
Let’s generalize Definition 1 up to the notion of O E -route plane graphs (it is possible non-Eulerian and disconnected).
Definition 2.
The ordered sequence of edge-disjoint O E -chains
C 0 = v 0 e 1 0 v 1 0 e 2 0 . . . e k 0 0 v k 0 0 , C 1 = v 1 e 1 1 v 1 1 e 2 1 e k 1 1 v k 1 1 , , C n 1 = v n 1 e 1 n 1 v 1 n 1 e 2 n 1 e k n 1 n 1 v k n 1 n 1 ,
covering graph G and such that
m : m < n , l = 0 m 1 Int ( C l ) l = m n 1 C l =
is a route with ordered enclosing ( O E -route).
Definition 3.
Let a route consisting of a minimal (in cardinality) ordered sequence of edge-disjoint O E -chains in a plane graph G be called an Euler route with ordered enclosing (Euler O E -route), and O E -chains forming it be the Euler O E -cover.
Theorem 3
([27]). Let G connected plane graph, V o d d ( G ) be the set of its odd vertices, then the cardinality N of Euler O E -cover of G satisfies the inequality
k = | V o d d ( G ) | 2 N | V o d d ( G ) | = 2 k
holds. The upper and lower bounds are reachable.
The cover capacity is significantly influenced by the presence of bridges in the graph. In their absence, the lower bound is reached, in the case of the existence of vertices of odd degree incident to the outer face; or, if there are no such vertices, the cardinality of the cover is one higher than the lower bound.
The construction of the O E -route of the graph G solves the considered cutting problem in the absence of restrictions on self-intersections and the placement of starting (i.e., pierce) points for all chains.

2.2.2. Algorithms Constructing O E -Chains for Connected Graph G

Algorithms for constructing O E -routes in plane Eulerian graphs are known [28]. The possibility of constructing an O E route in an arbitrary plane graph demonstrates Theorem 4 [24].
Theorem 4.
Let G = ( V , E ) be plane connected graph without bridges on S. There exists the set of edges H : ( H S ) \ V = so that graph G ^ = ( V , E H ) be Euler, and there exists Euler cycle in graph G ^ , such that C   =   v 1 e 1 v 2 e 2 e n v 1 , n   =   E   +   H , for any its initial part C l   =   v 1 e 1 v 2 e 2 v l , l     E   +   H the condition Int ( C l ) G = holds.
We use the concept of the edge e rank while considering the algorithms of O E -routes constructing.
Definition 4.
The rank of edge e E ( G ) be the value of function rank ( e ) : E ( G ) N recursively defined as following:
  • let E 1 = { e E : e f 0 } be the set of edges bounding outer face f 0 of graph G ( V , E ) , then e E 1 rank ( e ) = 1 ;
  • let E k ( G ) be the set of edges of rank 1 for graph
    G k V , E \ l = 1 k 1 E l ,
    then e E k rank ( e ) = k .
Definition 5
([28]). Let rank of face f F ( G ) be a value of function rank : F ( G ) N 0 :
rank ( f ) = 0 , i f   f = f 0 , min e E ( f ) rank ( e ) , o t h e r w i s e ,
where E ( f ) be a set of edges incident to outer face f F .
Definition 6
([28]). Let rank of vertex v V ( G ) be a value of function rank : V ( G ) N : rank ( v ) = min e E ( v ) rank ( e ) where E ( v ) is a set of edges incident to vertex v V .
We developed the following polynomial time algorithms for constructing O E -routes for plane graphs:
  • Euler O E -cycle in plane Euler graph (algorithm OE-CYCLE, computing complexity O ( | V | 2 ) [29]);
  • connected O E -route of Chinese postman for any plane connected graph; removing re-traversed edges will result in a O E -route; this route is not optimal either in terms of the number of covering chains or the length of idle passes (algorithm CPP_OE, computing complexity O ( | E ( G ) | · | V ( G ) | ) [30]);
  • a route in plane connected graph without bridges being the O E -cover optimal by the number of chains, the length of idle passes may not be optimal (algorithm OECover, computing complexity O E · log | V | [19]);
  • O E -route in plane connected graph without bridges with additional edges, connecting the odd vertices (algorithm M-COVER with computing complexity O E · log | V | ); this algorithm appended by algorithm of finding the shortest matching between odd vertices allows to obtain O E -cover with minimal summary length of additional edges (computing complexity O ( | E | · | V | ) ) [19].
In this paper, we describe in details those of them that are not published in open access for the convenience of the reader.
Algorithm 1 OECover covers the plane graph G by an ordered sequence of O E -chains. The graph G is encoded by the list of edges, and for each edge e the functions considered in Theorem 1 are defined.
Algorithm 1 Algorithm OECover
Require: 
G = ( V , E ) be a plane graph; V o d d V be the set of odd vertices;
Ensure: 
f i r s t E , l a s t E , mark 1 : E E ;
1:
Initiate();                     ▷ Assign the initial values of all used variables
2:
Order();           ▷ Define the ranks of edges, and form the ordered lists for vertices
3:
SortOdd();                  ▷ Sorting of odd vertices by decreasing of their rank
4:
if { v V o d d | v f 0 } then                ▷ Define the starting value of a chain
5:
     v 0 arg max v V o d d rank ( v ) ; V o d d V o d d \ { v 0 } ;
6:
else v 0 v | v f 0 ;
7:
end if
8:
while ( t r u e ) do
9:
     v FormChain ( v 0 ) ;             ▷ Form a chain from the defined vertex
10:
     V o d d V o d d \ { v } ;      ▷ Exclude the starting vertex of current chain from the list
11:
    if ( then V o d d = )             ▷ Check the possibility to construct one more chain
12:
        break;
13:
    end if
14:
     v 0 arg max v V o d d rank ( v ) ;
15:
end while
In the body of the procedure Initiate, the initial values of all used variables are assigned, and the first edge e 0 E belonging to the boundary of the outer face f 0 is defined.
Procedure Order Algorithm 2 functional purpose of the Order procedure is in:
(1)
defining the value rank ( e ) for each edge e E (note that the rank of any edge of a plane graph can be determined in time O ( | E | ) using this procedure);
(2)
forming the list Q ( v ) of incident edges for each vertex (the edges are ordered in descending order of the rank ( ) value).
Algorithm 2 Procedure Order
1:
procedure Order
2:
    while  f i r s t  do
3:
        while ( mark ( n e ) = ) and ( l a s t n e ) do
4:
           M1:                     ▷ Forming the queue of M 1 -marked edges
5:
            rank ( n e ) k ;                      ▷ Define the rank of an edge
6:
            mark 1 ( l a s t ) n e ;
7:
           if  v 2 ( n e ) v  then
8:
               REPLACE( n e );
9:
           end if
10:
            v v 1 ( n e ) ; l a s t n e ; n e l 1 ( n e ) ;
11:
        end while
12:
         e f i r s t ; f i r s t mark 1 ( f i r s t ) ; v v 2 ( e ) ; n e l 2 ( e ) ;
13:
        M2:       ▷ Placing the M 1 -marked edges to the lists of the corresponding vertices
14:
         k rank ( e ) + 1 ; mark 1 ( e ) S t a c k ( v 1 ( e ) ) ; mark 2 ( e ) S t a c k ( v ) ;
15:
        if  mark 1 ( e ) 0  then
16:
          ▷ Form queue of M 1 -marked edges of all unmarked edges bounding f 1 ( e )
17:
           if  v 1 ( e ) = v 1 ( mark 1 ( e ) )  then
18:
                prev 1 ( mark 1 ( e ) ) e ;
19:
           else
20:
                prev 2 ( mark 1 ( e ) ) e ;
21:
           end if
22:
        end if
23:
        if  mark 2 ( e ) 0 then      ▷ Pushing of edge to stacks of vertices v 1 ( e ) and v 2 ( e )
24:
           if  v = v 1 ( mark 2 ( e ) )  then
25:
                prev 1 ( mark 2 ( e ) ) e ;
26:
           else
27:
                prev 2 ( mark 2 ( e ) ) e ;
28:
           end if
29:
            S t a c k ( v ) e ; S t a c k ( v 1 ( e ) ) e ;
30:
        end if
31:
    end while
32:
end procedure
After executing the Initiate and Order procedures, the odd vertices v V o d d are ordered in ascending order of their rank using the SortOdd procedure. The rank of the vertex v is the value of the function rank ( S t a c k ( v ) ) . Then, the loop dowhile is executed using the FormChain procedure (see Algorithm 3). This cycle constructs a sequence of | V o d d | / 2 simple paths between pairs of odd vertices. If none of the odd vertices is adjacent to the outer face, then it is necessary to construct a | V o d d | / 2 + 1 chain, where the first of the constructed paths C 0 starts at vertex of even degree v 0 f 0 , adjacent outer face, and ends at an odd vertex. All the chains of the cover C 1 , C n 1 are connecting the odd vertices, and the last one C n starts at odd vertex, and ends at vertex v 0 f 0 .
The aim of FormChain procedure is to obtain the O E -chain starting in a given vertex w and ending in some odd vertex v V o d d , v w . As a result of the procedure, a simple chain will be obtained C i = v 0 i e 1 i v 1 i e 2 i e k i v k i , for which v 1 i , v 2 i , v k 1 V o d d i , and for i 0 and i n vertices v 0 i , v k i V o d d , if i = 0 vertex v k i V o d d , and if i = n vertex v 0 i V o d d ,
e i = arg max e E ( v i ) \ { e l | l < i } rank ( e ) , v i + 1 = v 1 ¯ ( e i ) , i = 1 , 2 , , k ,
moreover, for any initial part C l = v 0 e 1 v 1 e 2 v 2 e l , l k and for any vertex v V the inequality
min e E ( v ) E C l rank ( e ) > max e E ( v ) \ E C l rank ( e )
holds.
Algorithm 3 Procedure FormChain
1:
procedureFormChain(In: w starting vertex of a chain; Out: v ending vertex of a chain)
2:
     v w ; e Q ( v ) ;
3:
    do
4:
     e 1 = arg max e Q ( v ) rank ( e ) ;
5:
     e 2 = arg max e Q ( v ) : f 1 ( e ) = f 2 ( e ) rank ( e ) ;
6:
    if  rank ( e 1 ) = rank ( e 2 ) then      ▷ Find the edge of maximal rank, a bridge if possible
7:
         e = e 2 ;
8:
    else
9:
         e = e 1 ;
10:
    end if
11:
    if  v = v 1 ( e )  then
12:
        REPLACE(e);    ▷ Change the indexes of functions for edge e from k to 3 k , k = 1 , 2
13:
    end if
14:
     E ( G ) E ( G ) \ { e } ;          ▷ Delete edge e and delete faces divided by edge e
15:
     T r a i l T r a i l { e } ;
16:
     v v 1 ( e ) ;
17:
    while ( v V o d d & Q ( v ) );
18:
    return v;
19:
end procedure
Theorem 5.
Let G = ( V , E ) be a plane connected bridgeless graph on S, and V o d d V be the set of odd vertices. For any matching M on set V O d d in graph G ^ = ( V , E M ) , there exists Euler cycle C   =   v 1 e 1 v 2 e 2 e n v 1 , n   =   E   +   M , for any initial part C l   =   v 1 e 1 v 2 e 2 v l , l     E   +   M of which, the condition Int ( C l ) G = holds.
The proof of Theorem 5 is constructive and consists in proving the efficiency of the algorithm M-Cover (see Algorithm 4) for constructing a cover for any matching on the set of odd vertices [19].
Algorithm 4 Algorithm M-Cover
Require: 
plane connected graph G, functions v k ( e ) , l k ( e ) e E ( G ) k = 1 , 2 ; vertex v 0 V ( G )
incident to outer face; matching M on set of odd vertices V O d d ; boolean function
Idle M : V O d d { false , true } on set of odd vertices V O d d ;
Ensure: 
almost ordered set C of O E -chains of graph G, being the O E -cover of graph G;
1:
Order (G);                   ▷ Define rank ( ) for all e E ( G ) , v V ( G )
2:
v : = v 0 ;                                 ▷ Constructing
3:
while  Q ( v )  do
4:
    FormChain( v , v );
5:
    if  Idle M ( v ) ( Q ( v ) = )  then
6:
         u M ( v ) ;               ▷ Vertex u is a pair for vertex v in matching M
7:
         V O d d V O d d \ { u , v }                 ▷ Delete vertices u , v from V O d d
8:
         v u ;                     ▷ Finish constructing the current chain
9:
    end if
10:
end while
11:
End of algorithm
The main difference of this algorithm from O E -Cover is that for each vertex v V O d d the next one u = M ( v ) V O d d is fixed. It is the vertex to which the transition is made. Algorithm M-Cover can finish constructing the current chain both at the first visit to the vertex v V O d d , and at the moment when the vertex becomes dead-end (i.e., Q ( v ) = ). To determine at what moment to finish the constructing of the chain, the values of
Idle M ( v ) = ( rank ( v ) rank ( M ( v ) ) ) f M ( v ) f v , v V O d d ,
are used, where f w = arg min f : v f F ( G ) rank ( f ) , w V O d d . Here ⪰ is partial ordering on F ( G ) induced by tree T f 0 G of shortest paths to vertex f 0 F :
( f i f j ) f j belongs   to   chain T f 0 G   between   f i   a n d   f 0 .
To construct the optimal cover (i.e., cover with a minimal length of additional edges) it is enough to take the shortest matching on set of odd vertices V o d d as M. This task is realized by the following Algorithm 5.
Algorithm 5 OptimalCover
Require: 
plane graph G represented by the list of edges with defined functions v k ( e ) , l k ( e ) , f k ( e ) , k = 1 , 2
Ensure: 
cover of graph G by O E -chains C j , j = 1 , , | V o d d | / 2
1:
Define the shortest matching M on set V o d d
2:
Run algorithm M-Cover for graph G and matching M
3:
Stop
Obviously, Algorithm 5 allows us to construct the optimal O E -cover, and its computing complexity is not greater than O ( | V | 3 ) (but by using special data structures and algorithms, it is possible to run this algorithm by the time not exceeding O ( | E ( G ) | · | V ( G ) | ) ). This estimation is defined by the computing complexity of Step 1.

2.3. Constructing of Routes Satisfying the Combination of Constraints

During the technological preparation of the cutting process, various constraints on the trajectory of the cutting tool may appear. One of them is the task considered above, where the cut off part of the sheet of the obtained route does not require additional cuts. However, in practice, it is required to fulfil additional constraints on the absence of intersection of cuts and on allowable pierce points that are start points of O E -chains forming this route.
To solve a problem of the cuts intersection absence at each vertex of the graph, a cyclic order of traversing the edges is specified, and the continuation of the traversal along the chain is carried out only by this cyclic order. In the general case, the problem of finding such a chain in a graph belongs to the class of NP -complete problems, but there are effective algorithms of its solution for some special cases.

2.3.1. A O E -Routs

Let us consider Euler chain
T = v 0 , k 1 , v 1 , , k n , v n , v n = v 0
in graph G = ( V , E ) . Let we know the cyclic order O ± ( v ) defining the transitions system A G ( v ) O ± ( v ) for each vertex v V . In the case when v V ( G ) A G ( v ) = O ± ( v ) the transitions system A G ( v ) is called the full transitions system, and chain satisfying this system is A G -compatible.
Definition 7.
A G -compatible chain T is called A-chain. Thus, consecutive edges in the chain T incident to vertex v are the neighbours in the cyclic order O ± ( v ) [31].
Definition 8.
The chain is called A O E -chain if it is O E -chain and A-chain simultaneously [32].
Theorem 6.
If there is A-chain in a plane graph G then there is also A O E -chain in this graph [32].
Theorem 7.
Plane connected 4-regular graph G has A O E -chain.
To prove this theorem, we need to introduce some definitions and prove some propositions.
Definition 9.
The partial graph G k of graph G for which E ( G k ) = { e E ( G ) : rank ( e ) k } is called partial graph of rank k.
Preliminarily, the “correct” splitting of all cut-vertices of partial graphs G k is performed, so that as a result of the splitting, we get a graph for which any partial graph G k has no cut-vertices. The vertices splitting is a local operation, hence the sequence of splitting does not affect the total result. The “correct” transition is one between arcs corresponding of a cyclic order and incident to the different pairs of faces (see Figure 4b)). The splitting result, in this case, is shown in Figure 4b).
These propositions imply the effectiveness of the CUT-POINT-SPLITTING Algorithm 6 running in time not greater than O ( | E ( G ) | log | V ( G ) | ) .
Theorem 8.
Algorithm  A O E -CHAIN constructs A O E -chain for plane connected 4-regular graph G any partial graph G k , k = 1 , 2 , of which has no cut-vertices. Algorithm solves the problem by the time O ( | E ( G ) | · log | V ( G ) | ) .
The proof of this algorithm’s effectiveness [32] finishes the proof of Theorem 7.
Proposition 1.
Vertex incident to four edges bounding outer face is cut-vertex.
Proposition 2.
The outer face of a partial graph G k is the union of all faces of rank k in graph G.
Let us consider the Algorithm 7 for constructing the A O E -chain for plane connected 4-regular graph [32,33].
Algorithm 6 CUT-POINT-SPLITTING
Require: 
plane connected 4-regular graph G = ( V , E ) represented for all e E ( G ) by functions
v s , l s , r s , s = 1 , 2 .
Ensure: 
homeomorphic image of graph G = ( V , E ) for which any partial graph G k has no
cut-vertices.
Supplementary data  v V ( G ) :
point ( v ) is the array of pointers to one of edges incident to vertex v;
rank ( v ) is the array of vertices ranks;
count ( v ) is the counter of incident edges of one rank for each vertex;
Supplementary data  f F ( G ) : array r a n k ( f ) .
1:
Initiate():
2:
for all  v V ( G )  do      ▷ Zero the counter of edges of the same rank incident to a vertex
3:
     point ( v ) : = 0 ; count ( v ) : = 0
4:
end for
5:
Ranking(G)          ▷ Determining the rank of all vertices, edges and faces of a graph
6:
Finding():       ▷ Defining the cut-vertices
7:
for all  e E ( G )  do
8:
     point ( v 1 ( e ) ) : point ( v 2 ( e ) ) : = e = e
9:
end for
10:
for all  v V ( G )  do                   ▷ To look through all the vertices
11:
    
12:
     e : = point ( v ) ; k : = rank ( v )         ▷ Save the rank value k of the incident edge e
13:
    if  v = v 1 ( e )  then                    ▷ Define the direction of edge e
14:
         s : = 1
15:
    else
16:
         s : = 2
17:
    end if
18:
     e : = l s ( e )           ▷ Counting the number of rank k edges incident to vertex v
19:
    for  i = 1  up to 4 do
20:
        if  rank ( e ) = k  then
21:
            count ( v ) : = count ( v ) + 1
22:
           if  i < 4  then
23:
                e : = l s ( e )
24:
           end if
25:
        end if
26:
    end for
27:
    if  count ( v ) = 4 then                 ▷ Split the vertex if it is cut-vertex
28:
        if ( f s ( e ) = f s ( l s ( e ) ) and f 3 s ( e ) = f 3 s ( l s ( e ) ) ) or
29:
                  or ( f s ( e ) = f 3 s ( l s ( e ) )  and  f 3 s ( e ) = f s ( l s ( e ) ) ) then
30:
            e * : = l s ( e ) , l s ( e ) : = r s ( e ) , r s ( r s ( e ) ) : = e ,
31:
            r s ( e * ) : = l s ( e * ) , l s ( l s ( e * ) ) : = e *
32:
        else
33:
            e * : = r s ( e ) , r s ( e ) : = l s ( e ) , l s ( l s ( e ) : = e ,
34:
            l s ( e * ) : = r s ( e * ) , r s ( r s ( e * ) ) : = e *
35:
        end if
36:
    end if
37:
end for

2.3.2. N O E -Routes

Algorithm 6 A O E -CHAIN is used for running the algorithm NOE-CHAIN (see Algorithm 8) to obtain the non-intersecting O E -chain for plane connected graph [26].
Definition 10
([26]). Let Eulerian cycle C of plane graph G be non-intersecting if it is homeomorphic to a closed Jordan curve without intersections obtained from graph G by applying of O ( | E ( G ) | ) splittings of its vertices.
Algorithm 7 Algorithm A O E -CHAIN
Require: 
plane connected 4-regular graph G = ( V , E ) defined by functions v k , l k , r k , k = 1 , 2 (see
Theorem 1);   starting vertex v V ( f 0 ) .
Ensure: 
A C h a i n – output stream containing A O E -chain obtained by the algorithm.
1:
Initiate(G, v 0 );
2:
Ranking(G);
3:
CUT_POINT_SPLITTING (G);       ▷ Deleting of cut-vertices in partial graphs of each rank
4:
                                       ▷ Constructing
5:
e = arg max e E ( v ) rank ( e )         ▷ Choose the edge of maximal rank incident to vertex v
6:
repeat
7:
    if  v v 1 ( e )  then
8:
        REPLACE(e)
9:
    end if             ▷ If necessary, adjust the numbering of functions for the edge e
10:
     A C h a i n Print( v , e )           ▷ Add edge e to the resulting sequence A C h a i n
11:
     mark ( e ) : = false ; counter:=counter+1; v : = v 2 ( e )       ▷ Mark the current edge as passed
12:
    if ( rank ( r 2 ( e ) ) rank ( l 2 ( e ) ) ) then    ▷ Choose the next edge of maximal possible rank
13:
        if  mark ( r 2 ( e ) ) then             ▷ Check if the chosen edge is already passed
14:
            e : = r 2 ( e )             ▷ The passed edges have False value in the arra m a r k
15:
        else
16:
            e : = l 2 ( e )
17:
        end if
18:
    else
19:
        if ( mark ( l 2 ( e ) ) then                    ▷ Choose the not passed edge
20:
            e : = l 2 ( e )
21:
        else
22:
            e : = r 2 ( e )
23:
        end if
24:
    end if
25:
until (counter > | E ( G ) | )           ▷ Finish the cycle when all the edges are scanned
26:
End of Algorithm
Algorithm 8 NOE-CHAIN (G)
Require: 
plane Euler graph G defined by functions v k ( e ) , l k ( e ) , r k ( e ) , f k ( e ) , k = 1 , 2 (see Theorem 1) and rank ( e ) ;
Ensure: 
C as N O E -chain in graph G;
1:
G ^ = NonIntersecting ( G ) ;                       ▷ Split all vertices of degree higher than 4
2:
C * =AOE_CHAIN( G ^ );                           ▷ Obtain A O E -chain in graph G ˜
3:
C=Absorb( C * );                   ▷ Absorb all split vertices and obtain the resulting N O E -chain
Its execution means transforming the initial graph to a plane connected 4-regular graph by splitting the vertices of degree greater than 4. To obtain the Euler N O E -cycle in a plane Euler graph without given transitions system, we can act as follows. Let us define boolean function
Checked ( v ) = true , if   the   vertex   is   viewed ; false ,   otherwise ;
on the set of vertices V ( G ) . When performing initialization, declare all vertices not viewed. Function NonIntersecting (G) (Algorithm 9) splits all vertices v V ( G ) of degree more than 2 k 1 ( k 3 ) to k fictive vertices of degree 4 and introduces k fictive edges incident to the vertices obtained as a result of splitting and forming a cycle (see Figure 5).
Algorithm 9 Function NonIntersecting (G)
Require: 
plane Euler graph G defined by functions v k ( e ) , l k ( e ) , r k ( e ) , f k ( e ) , k = 1 , 2 (see Theorem 1)
and rank ( e ) ;
Ensure: 
plane connected 4-regular graph G * defined as the same;
1:
for all  v V ( G )  do                   ▷ Initialization of C h e c k e d ( v ) function
2:
     C h e c k e d ( v ) : = false ;
3:
end for
4:
for all ( e E ( G ) ) do       ▷ Searching of vertices of degree greater than 4 and their splitting
5:
     k : = 1 ;                 ▷ Consider vertex with index 1, then vertex with index 2
6:
    while ( k 2 ) do
7:
        if (! C h e c k e d ( v k ( e ) ) ) then          ▷ Process only a previously unprocessed vertex
8:
           if ( k = 2 ) then                           ▷ Improve the indexes
9:
               REPLACE(e);                          ▷ Process vertices v 1 ( e )
10:
           end if
11:
            Handle ( e);                    ▷ Call the function to process vertex v 1 ( e )
12:
            C h e c k e d ( v 1 ( e ) ) : = true ;                ▷ Mark the vertex as considered
13:
        end if
14:
         k : = k + 1 ;
15:
    end while
16:
end for
End of function
In the body of function we use the procedure Handle (e, v k ( e ) , k), which processes each unconsidered graph vertex.
Procedure Algorithm 10 during cycle repeat–until (lines 6–11) counts the degree d of current vertex v. If d > 4 , then the second cycle repeat–until (lines 12–23) runs. Here the handled vertex is split to d / 2 fictive vertices, and d fictive edges incident to these vertices. There fictive edges form a cycle.
In lines 18–23, we not only change the pointers to edges, but also create a new (fictive) face F, incident to all fictive vertices and edges, and also define the ranks of fictive edges [26].
Definition 11.
The rank of fictive edge (line 20) is equal to the rank of the initial graph face incident to the entered fictive edge.
The introduced by Handle procedure k / 2 fictive vertices and k fictive edges incident to these vertices are forming a cycle. As a result of processing all graph G vertices, we obtain the modified plane connected 4-regular graph G * . Algorithm AOE-CHAIN() constructing A O E -chain T * can be implemented to graph G * . The considered procedure is realized in algorithm NonIntersecting (see Algorithm 9). If then in T * all the fictive edges and the incident vertices obtained by splitting the vertex v are replaced by v, then we obtain the N O E -chain T in the original graph G.
Algorithm 10 Procedure Handle (e)
1:
procedure Handle(e)
2:
     v : = v 1 ( e ) ;                                    ▷ Splitting vertex
3:
     e f i r s t : = e ;                             ▷ Save the first considered edge
4:
     d : = 0 ;                         ▷ Initialization of a counter for vertex degree d
5:
     F : = F a c e N u m ( ) + 1 ;                     ▷ Define the number of a new face
6:
    repeat                              ▷ Pass 1: Defining the degree of v
7:
         l e : = l 1 ( e ) ;
8:
        if ( v 1 ( l e ) v ) then REPLACE( l e );
9:
       end if                            ▷ Change the indexing of functions if necessary
10:
         e : = l e ; d : = d + 1 ;  ▷ Consider the edge when calculating the degree and move on to the next one
11:
    until ( e = e f i r s t );                ▷ Repeat until all edges incident v have been considered
12:
    if ( d > 4 ) then                   ▷ If the degree of current vertex is greater than 4
13:
         e : = e f i r s t ;                         ▷ Begin from the first considered edge
14:
         l e : = l k e ;                        ▷ Define the number of its left neighbour
15:
         e n e x t : = l k l e ;                       ▷ Save the edge for the next iteration
16:
         f l : = new EDGE; f l e : = f l ; e f i r s t : = e ;          ▷ Introduce a fictive edge adjacent to l e
17:
        repeat                               ▷ Put the pointers for edges
18:
            e : = e n e x t ; l e : = l k e ; f r : = f l ;
19:
            f 1 ( f l ) : = F ; f 2 ( f l ) : = f 2 ( e ) ;             ▷ Define faces adjacent to a fictive edge
20:
            rank ( f l ) : = facerank ( f 2 ( f l ) ) ;                 ▷ Define ”rank” of fictive edge
21:
                       ▷ Function facerank() defines the rank of a face according to the definition
22:
            f l : = new EDGE; e n e x t : =   l k l e ;
23:
        until ( l k ( l e ) = e f i r s t );
24:
    end if
25:
end procedure
Theorem 9.
Algorithm NOE-CHAIN solves the task of constructing the N O E -chain for plane Euler graph by the time O ( | E ( G ) | 2 ) [26].
Note that this algorithm constructs a N O E -chain in a plane Euler graph. In the case of a plane non-Euler (generally disconnected) graph G, it is necessary to split all vertices of degree higher than 4 by the Algorithm 10. As a result, we get a graph with vertex degrees equal to 3 or 4. For this graph, we apply the algorithm for constructing an A O E -cover. In the chains of the resulting cover, remove all artificial edges and absorb all split vertices. As a result, we get N O E -cover.

2.3.3. P P O E -Routes

Let us consider a problem arising in the case of intrusion of constraints on the location of pierce points. Obviously, the number of pierce points is determined by the number of covering chains. According to Theorem 3, the number of pierce points is at least | V o d d | / 2 . This problem can be formalized as following.
  • Let faces F i n ( G ) F ( G ) allow piercing.
  • Let odd vertices v V i n ( G ) V ( G ) be incident to face F i n ( G ) .
  • Let for odd vertices v + V o u t = V o d d \ V i n piercing is forbidden.
If the constructed route in the graph is an O E route and all the initial vertices of the covering chains belong to V i n ( G ) , then this route can be used as a basis for constructing a route for the cutter trajectory for laser cutting process. Let these routes be called P P O E -routes [27].
Definition 12.
Let chain C = v 1 e 1 v 2 e 2 v k be called  P P O E -chain , if it is O E -chain and starts from vertex v 1 V i n ( G ) .
Definition 13.
Let P P O E -cover of graph G be such an O E -cover of G, consisting of P P O E -chains.
Definition 14.
An ordered sequence of edge-disjoint P P O E -chains in a plane graph G of the minimal cardinality is called an Euler P P O E -cover.
The problem of determining the realizability of a cutting plan can be formulated as determining the existence of an Euler P P O E -cover for a plane graph that is a homeomorphic image of the corresponding cutting plan. Following the existing restrictions, we can formulate the following necessary condition for the existence of a P P O E -cover.
Theorem 10.
Plane connected graph G ( V , F , E ) without bridges has P P O E -cover if and only if the cardinality of minimal { V i n , V o u t } -cut is at least | V o u t | .
Proof. 
The validity of the necessary condition is obvious, sufficiency follows from the effectiveness of Algorithm 11 solves the problem of constructing P P O E -cover for a plane graph G ( V , E ) without bridges.    □
To find minimal { V i n , V o u t } -cut let us construct a network
N V { w } , A { w } × V i n
(i.e., directed graph with source w), in which
  • a pair of arcs u , v ,   v , u A ( N ) of capacity 1 corresponds to edge e =   u , v   E ( G ) ;
  • vertices v + V o u t ( N ) , i.e., points of possible end of chain, are the sinks of a unit power flow;
  • vertices v V i n ( N ) , i.e., possible pierce points, may be source of the unit.
Cardinality of minimal { V i n , V o u t } -cut can be obtained as optimal value of problem
( u , v ) A ( N ) x ( u , v ) min ,
v : ( u , v ) A ( N ) x ( u , v ) v : ( v , u ) A ( N ) x ( v , u ) = 1 , u V o u t ( N ) ,
v : ( u , v ) A ( N ) x ( u , v ) + v : ( v , u ) A ( N ) x ( v , u ) = x ( w , u ) , u V i n ( N ) ,
v : ( u , v ) A ( N ) x ( u , v ) v : ( v , u ) A ( N ) x ( v , u ) = 0 , u V \ ( V o u t ( N ) V i n ( N ) ) ,
v V i n ( N ) x ( w , v ) = | V o u t ( N ) | ,
0 x ( u , v ) 1 , ( u , v ) A ( N ) ,
0 x ( w , u ) 1 , u V i n ( N ) ,
where w is a common source with capacity | V o u t | adjacent to all v V i n to network N.
Let x : A   0 , 1 be optimal solution of problem (1)–(7). Let us construct a sequence of disjoint chains C 1 , C 2 , C | V o u t | , containing all the flow holders of x and only them. It is possible to «correctly» split each vertex v V ( G ) to the dummy vertices with «correct» union of active arcs lists, while it is possible (i.e., taking into account the cyclic order on the set of arcs and their orientations). The examples of «correct» splitting and uniting are shown in Figure 6. The result of this step is a sequence of disjoint chains C 1 , C 2 , C | V o u t | , containing all the flow holders and only them. The above allows us to propose the Algorithm 11 P P O E -covering.
Algorithm 11 Algorithm P P O E -covering
Require: 
plane graph G ( V , F , E ) without bridges, defined for all e E ( G )
functions v k ( e ) , l k ( e ) , r k ( e ) , f k ( e ) , k = 1 , 2 (see Theorem 1) rank ( e ) ,
functions rank ( v ) , v V ( G ) , rank ( f ) , f F ( G ) ;
subsets V o u t , V i n V : | V i n | | V o u t | ;
subset { F i n F } of faces that allow piercing.
Ensure: 
PPOE-cover of graph G ( V , E ) : C ˜ 1 , C ˜ 2 , C ˜ | V o u t | , C | V o u t | + 1 , , C M .
1:
Construct a network N V { w } , A { w } × V i n .
2:
if ( V o u t = ) then
3:
     Run Algorithm 5 OptimalCover for graph G
4:
    Return(Cover of graph G by O E -chains C j , j = 1 , . . . , | V o d d ( G ) | / 2 )
5:
end if
6:
if problem (2)–(7) is unsolvable then
7:
    Rteurn( P P O E -cover does not exist)
8:
else
9:
    Let x : A ( N )     0 , 1 be optimal solution of problem (2)–(7)
10:
    For each active arc ( u , v ) : x ( u , v ) = 1 create a list, including this arc and only it
11:
    Find a sequence of disjoint chains C 1 , C 2 , C | V o u t | , containing all the flow holders and only them with usage for each vertex v V ( G ) of «correctly» splitting to the dummy vertices (see Figure 6)
12:
    Construct a partial graph
G ˜ = G \ ( i = 1 | V o u t | C i ) , E ( G ˜ ) = E ( G ) \ i = 1 | V o u t | C i ,
in which all vertices v V o u t , for which piercing is forbidden, are the vertices of even degree.
13:
end if
14:
For G ˜ run algorithm OptimalCover 5. The result of this step is a sequence of disjoint chains
C | V o u t | + 1 , , C | V o u t | + | M | .
15:
Return( C ˜ 1 , C ˜ 2 , C ˜ | V o u t | , C | V o u t | + 1 , , C M . )
16:
End of algorithm
Theorem 11.
Algorithm  P P O E -covering solves the problem of constructing P P O E -cover for a plane graph G ( V , E ) without bridges by the time not exceeding O ( | V | 3 ) .
Proof. 
The route consisting of chains C 1 , C 2 , C | V o u t | is the edge-disjoint O E -route (due to unit carrying capacity of arcs). Partial graph G ˜ does not contain any edges belonging to chains C i , i = 1 , , | V o u t | by definition. All graph G ˜ vertices avoiding piercing have even degree due to constructions. As a result of running Step 9, we get the continuation
C | V o u t | + 1 , , C | V o u t | + | M |
of route which is the O E -route in graph G ˜ covering all edges of graph G ˜ , and starting vertex v     V i n of each chain C i , i   =   | V o u t |   +   1 , | V o u t |   +   | M | is permissible for piercing. Hence, the route
C 1 , C 2 , C | V o u t | , C | V o u t | + 1 , , C | V o u t | + | M |
is P P O E -cover of initial graph G.
Let us estimate the computing complexity of this algorithm. Step 1 allows to get the network by time O ( | E | ) . Step 2 verifies the condition and it is completed in O ( 1 ) . Circulation in step 3 may be obtained by time not exceeding O ( | V | 3 ) [34]. Step 4 verifies the condition and it is completed in O ( 1 ) . In step 5, we introduce a sequence of chains along with a set of active arcs. This operation is performed at a time not exceeding O ( | E | ) . In step 6, at each vertex v, a ”merging” of lists is performed in a time not exceeding O ( | V | · deg ( v ) ) . Thus, the computing complexity of step 6 does not exceed the value O ( | V | · | E | ) . Step 7 runs by time not exceeding O ( | E | ) . The complexity of Step 7 is defined by the complexity of algorithm O E -Cover [19] and amounts to O ( | E ( G ) | · log 2 | V ( G ) | ) . Obtaining the partial graph G ˜ at Step 7 claims the time not exceeding O ( | E | ) . The complexity of Step 9 does not exceed O ( | V | 3 ) used for the shortest matching obtaining. Thus, the complexity of algorithm P P O E -routing does not exceed the value of O ( | V | 3 ) . □
Let us consider the application of algorithm PPOE-Routing to cutting plan in Figure 2 with geomorphic image presented in Figure 3 and in Table 1. We have V o u t ( N ) = { v 1 , v 5 , V 11 } , V i n ( N ) = { v 2 , v 3 , v 7 , v 9 } , V ( N ) \ ( V o u t ( N ) V i n ( N ) ) = { v 4 , v 6 , v 8 , v 10 , v 12 } . Figure 7 demonstrates network N V { w } , A { w } × V i n constructed in Step 1 and optimal solution of problem (1)–(7) found in Step 2. Bold lines highlight carriers of non-zero flow.
After running steps 3–6, we obtain the chains C 1 = e 3 e 2 e 9 , C 2 = e 21 e 22 , C 3 = e 13 . Partial graph constructed by step 7 is shown in Figure 8.
In this graph algorithm M-Cover constructs the only chain
C 4 = e 5 e 7 e 11 e 16 e 12 e 8 e 10 e 15 e 20 e 19 e 18 e 17 e 14 e 23 e 1 e 4 e 6 .
So, the P P O E -cover for this graph is { C 1 , C 2 , C 3 , C 4 } .
Thus, the construction of the P P O E -cover of the G graph allows us to solve the problems of the cutter movement routing for a realizable cutting plan with restrictions on possible pierce points.

2.4. Algorithms for Disconnected Graphs

The problem of constructing O E -routes in disconnected graphs is also of practical value. In this case, the task of finding the O E -covering of the graph by chains can be reduced to several tasks of lower dimension (to construct a cover for each connected component separately). This approach is reasonable if the resulting graph does not contain nested components. However, in the presence of nesting of the connected components, the problem becomes somewhat more complicated and the following restrictions on the order of traversing the connected components arise: the connected components consisting of edges of higher rank must be traversed before the components consisting of edges of lower rank. To solve the problem in common for plane disconnected graph algorithms MultiComponent (computing complexity O ( | E ( G ) | · log 2 | V ( G ) | ) ), Bridging, DoubleBridging) and FaceCutting (Figure 9) are developed.
The proofs of these results [19] are constructive and, in fact, are reduced to describing and proving the effectiveness of algorithms for constructing the desired cycles (routes).
Algorithms Bridging and DoubleBridging use the approach of reducing the initial disconnected graph to a connected one.
Definition 15.
Let face f F ( G ) be called separating, if it is incident to two or more connected components.
Let graph G ˜ be obtained from graph G by adding bridges belonging to separating faces between the components. Obviously, the obtained graph G ˜ be a plane connected graph and it is possible to construct the O E -route R ( G ˜ ) for it. This O E -route R ( G ) can be obtained from route R ( G ˜ ) if vertices incident to the introduced bridges are to be the ends of the current chain and the beginnings of the next ones (i.e., introduced bridges are the idle passes).
Let us consider the way of constructing the bridges connecting graph G and having a minimal summary length (see Algorithm 12).
Algorithm 12 Bridging
Require: 
plane disconnected graph G
Ensure: 
plane connected graph G ˜ and set B of introduced bridges
1:
G ˜ : = G ; B = ;
2:
Define the set C F of all separating faces.
3:
for all  f C F  do
4:
    Find the set S ( f ) of connected components of graph G incident to face f.
5:
    Construct the full abstract graph T the vertices of which are the components S ( f ) , and lengths of edges are equal to the distance between the components.
6:
    Obtain the minimal spanning tree T ( T ) in T .
7:
    Add the edges of the obtained spanning tree to graph G ˜ : E ( G ˜ : = E ( G ˜ ) E ( T ( T ) ) , B : = B E ( T ( T ) ) .
8:
end for
9:
end
Plane graph G ˜ obtained by algorithm Bridging contains bridges, hence it is possible to apply only algorithm CPP_OE [30] constructing the Chinese postman O E -route for plane graph [30]. Note that both the OECover algorithm and the M-Cover algorithm require no bridges in the graph. To avoid errors in the execution of the algorithms, it is necessary to add the edges of the spanning tree T ( T ) to the graph twice (see line 6 of the Algorithm 12). The algorithm adjusted in this way is called DoubleBridging. The complexity of the Bridging and DoubleBridging algorithms is polynomial, depending on the method used to determine the distances between the connectivity components. If the distances are given it can be estimated as O ( | E ( G ) | · log | V ( G ) | ) .
Theorem 12.
If, for each component G k of graph G, the degrees of vertices incident to separating faces of G are even, then the path of the minimal length of additional edges can be realized by algorithm DoubleBridging.
Algorithm FaceCutting [35] is one other way to obtain graph G ˜ without bridges. It consists in splitting the separating face using the Hamiltonian cycle. In fact, if for abstract graph T we use the minimal weight Hamiltonian cycle H ( T ) instead of spanning tree T ( T ) , then the resulting graph G ˜ does not contain any bridges and, hence, we can use algorithm M-Cover (see Algorithm 4) to obtain the O E -route with a minimal length of idle passes.

3. Discussion

In our article, we provide an overview of the plane graph routing problem statements since the 1980s. In the early works [20,21], the formalization of the tasks posed is not accurate enough, there is no classification of routes by the type of restrictions imposed. In this regard, mainly heuristic algorithms were developed. In the works of the authors (2007–2020), an exact formalization of some previously considered statements is given, classes of routes in plane graphs satisfying constraints are introduced, and polynomial exact algorithms for solving these problems are described.
Of particular note is the proof of the NP -completeness of the problem of finding non-intersecting Euler chains [21], where the author takes an A-chain as a self-non-intersecting Euler chain. The authors have shown the existence of a polynomial algorithm for finding an Euler self-non-intersecting chain in a plane graph. The question of NP -completeness of the problem of finding a self-non-intersecting chain remains open.

4. Conclusions

In our paper, we introduced a class of routes with ordered enclosing ( O E -routes) in plane graphs. The routes of this class represent an ordered sequence of paths that satisfy the requirement that the inner edges of the traversed part of the route do not intersect with the edges of its non-traversed part.
We showed that the presence of bridges in the graph has a significant effect on the cover cardinality. If there are no bridges in a graph, the minimum number of O E -chains covering the graph is equal to the minimum number of paths covering the given graph (in the case of the existence of vertices of odd degree incident to the outer face). If there are no vertices of odd degree adjacent to the outer face, then the cardinality of the covering is one higher than the minimum number of paths covering the given graph. In general, the cardinality N of Euler O E -cover of graph G satisfies the inequality k = | V o d d ( G ) | 2 N | V o d d ( G ) | = 2 k . The upper and lower bounds are reachable.
We discussed the polynomial algorithms for constructing the O E -cover for different cases: plane Euler graph, any plane connected graph (CPP and O E -cover constructing problems), any disconnected plane graph. We developed the polynomial time algorithm for obtaining an O E -route with the minimum number of covering paths and an algorithm for constructing an O E -route with a minimum length of transitions between the end of the current path and the beginning of the next path.
To discover the chains with the complex groups of restrictions we introduced classes of A O E -chains, N O E -chains, and P P O E -chains. (1) Class of A O E -chains includes the chains with additional local restriction according to which the neighbouring edges need to satisfy the transitions system of A-chain. Algorithm AOE-CHAIN allows obtaining a chain belonging to class A O E for a plane connected 4-regular graph. The algorithm allows to obtain it by the time O ( | E ( G ) | · log | V ( G ) | ) . (2) Class of N O E is the extension of class A O E and contains all O E -chains with non-intersecting transitions. Algorithm Non-intersecting allows obtaining such a chain. Its implementation consists in reducing the original plane graph to a plane connected 4-regular graph by splitting vertices of degree higher than 4 and further executing the AOE-CHAIN algorithm. (3) Class of P P O E -chains contains O E -chains with fixed sets of starting and ending vertices, and algorithm P P O E -covering allows for correctly solving the problem of constructing this type of cover for a plane graph G ( V , E ) without bridges by the time not exceeding O ( | V | 3 ) [36].
All our algorithms are implemented using the C++ programming language, and the initial data can be read either from text files with the table of functions for edges (see Theorem 1) or by conversion of JSON-files used in known CAD/CAM systems to the table of these functions [36].

Author Contributions

Conceptualization, T.M. and A.P.; Formal analysis, A.P.; Methodology, T.M.; Software, T.M.; Validation, A.P.; Writing—original draft, T.M.; Writing—review & editing, A.P. All authors have read and agreed to the published version of the manuscript.

Funding

The work was supported by Act 211 Government of the Russian Federation, contract No. 02.A03.21.0011. The work was supported by the Ministry of Science and Higher Education of the Russian Federation (government order FENU-2020-0022).

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

Not applicable.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Velayutham, K.; Waran, V.; Gurusamy, S. Optimisation of laser cutting of SS 430 plate using advanced Taguchi entropy weighted-based GRA methodology. Int. J. Mechatron. Manuf. Syst. 2018, 11, 148. [Google Scholar] [CrossRef]
  2. Liang, F.; Kang, C.; Fang, F. Tool path planning on triangular mesh surfaces based on the shortest boundary path graph. Int. J. Prod. Res. 2021, 1–20. [Google Scholar] [CrossRef]
  3. Eapen, N.A.; Heckendorn, R.B. Cutting path optimization for an automatic cutter in polynomial time using a 3/2 approximation algorithm. Int. J. Adv. Manuf. Technol. 2021, 113, 3667–3679. [Google Scholar] [CrossRef]
  4. Xie, S.; Gan, J. Optimal process planning for compound laser cutting and punch using Genetic Algorithms. Int. J. Mechatron. Manuf. Syst. 2009, 2, 20–38. [Google Scholar] [CrossRef]
  5. Jing, Y.; Chen, Z.C. An Optimized Algorithm of Numberical Cutting-Path Control in Garment Manufacturing. Adv. Mater. Res. 2013, 796, 454–457. [Google Scholar] [CrossRef]
  6. Lee, M.K.; Kwon, K.B. Cutting path optimization in CNC cutting processes using a two-step genetic algorithm. Int. J. Prod. Res. 2006, 44, 5307–5326. [Google Scholar] [CrossRef]
  7. Hoeft, J.; Palekar, U.S. Heuristics for the plate-cutting traveling salesman problem. IIE Trans. 1997, 29, 719–731. [Google Scholar] [CrossRef]
  8. Kochetkov, S.A.; Utkin, V. Method of decomposition in mobile robot control. Autom Remote Control 2011, 72, 2084–2099. [Google Scholar] [CrossRef]
  9. Arkhipov, D.; Battaia, O.; Lazarev, A. Long-term production planning problem: Scheduling, makespan estimation and bottleneck analysis. IFAC-PapersOnLine 2017, 50, 7970–7974. [Google Scholar] [CrossRef]
  10. Fleischner, H. Eulerian Graphs and Related Topics. Part 2. Ann. Discret. Math. 1991, 50, 336. [Google Scholar]
  11. Kartak, V.M.; Ripatti, A.V.; Scheithauer, G.; Kurz, S. Minimal proper non-IRUP instances of the one-dimensional Cutting Stock Problem. Discret. Appl. Math. 2015, 187, 120–129. [Google Scholar] [CrossRef] [Green Version]
  12. Tavaeva, A.; Petunin, A.; Ukolov, S.; Krotov, V. A Cost Minimizing at Laser Cutting of Sheet Parts on CNC Machines. In Mathematical Optimization Theory and Operations Research, Proceedings of the 18th International Conference, MOTOR 2019, Ekaterinburg, Russia, 8–12 July 2019; Springer International Publishing: New York, NY, USA, 2019; Volume 1090, pp. 422–437. [Google Scholar] [CrossRef]
  13. Petunin, A.A.; Polishchuk, E.G.; Ukolov, S.S. On the new Algorithm for Solving Continuous Cutting Problem. IFAC-PapersOnLine 2020, 52, 2320–2325. [Google Scholar] [CrossRef]
  14. Chentsov, A.G.; Khachay, M.Y.; Khachay, D.M. Linear Time Algorithm for Precedence Constrained Asymmetric Generalized Traveling Salesman Problem. IFAC-PapersOnLine 2016, 49, 651–655. [Google Scholar] [CrossRef]
  15. Chentsov, A.G.; Grigoryev, A.M.; Chentsov, A.A. Solving a Routing Problem with the Aid of an Independent Computations Scheme. Bull. South Ural State Univ. Ser. Math. Model. Program. Comput. Softw. 2018, 11, 60–74. [Google Scholar] [CrossRef]
  16. Landovskaya, I. A processing algorithm of fabric particle interaction with solid object faces during computer simulation. Proc. Russ. Higher Sch. Acad. Sci. 2016, 2, 78–93. (In Russian) [Google Scholar] [CrossRef] [Green Version]
  17. Dewil, R.; Vansteenwegen, P.; Cattrysse, D.; Laguna, M.; Vossen, T. An improvement heuristic framework for the laser cutting tool path problem. Int. J. Prod. Res. 2015, 53, 17611776. [Google Scholar] [CrossRef]
  18. Dewil, R.; Vansteenwegen, P.; Cattrysse, D. A review of cutting algorithms for laser cutters. Int. J. Manuf. Technol. 2016, 87, 1865–1884. [Google Scholar] [CrossRef]
  19. Panyukov, A.V.; Makarovskikh, T.A.; Savitskiy, E.A. Mathematical models and routing algorithms for economical cutting tool paths. Int. J. Prod. Res. 2018, 56, 1171–1188. [Google Scholar] [CrossRef]
  20. Manber, U.; BentIsrani, S. Pierce Point Minimization and Optimal Torch Path Determination in Flame Cutting. J. Manuf. Syst. 1984, 3, 1. [Google Scholar] [CrossRef]
  21. Manber, U.; Bent, S.W. On Non-intersecting Eulerian Circuits. Discret. Appl. Math. 1987, 18, 87–94. [Google Scholar]
  22. Fleischner, H.; Beineke, L.; Wilson, R. Selected Topics in Graph Theory. Part 2; Academic Press: London, UK, 1983. [Google Scholar]
  23. Bely, S. On self-non-intersecting and non-intersecting chain. Math. Notes 1983, 34, 625–628. [Google Scholar]
  24. Panioukova, T. Eulerian cover with ordered enclosing for flat graphs. Electron. Notes Discret. Math. 2007, 28, 17–24. [Google Scholar] [CrossRef]
  25. Makarovskikh, T.A.; Panyukov, A.V. The Cutter Trajectory Avoiding Intersections of Cuts. IFAC PapersOnLine 2017, 50, 2284–2289. [Google Scholar] [CrossRef]
  26. Makarovskikh, T.A.; Panyukov, A.V. Mathematical model for a cutting path avoiding intersections. IFAC-PapersOnLine 2020, 53, 10455–10460. [Google Scholar] [CrossRef]
  27. Makarovskikh, T.A.; Panyukov, A.V. Construction of a Technologically Feasible Cutting with Pierce Points Placement Constraints. Commun. Comput. Inf. Sci. 2020, 1340, 186–197. [Google Scholar] [CrossRef]
  28. Panioukova, T. Chain sequences with ordered enclosing. J. Comput. Syst. Sci. Int. 2007, 46, 83–92. [Google Scholar] [CrossRef]
  29. Panioukova, T.A.; Panyukov, A.V. Algorithms for Construction of Ordered Enclosing Traces in Planar Eulerian Graphs. In Proceedings of the International Workshop on Computer Science and Information Technologies’ 2003, Ufa, Russia, 16–18 September 2003; Ufa State Technical University: Ufa, Russia, 2003; Volume 1, pp. 134–138. [Google Scholar]
  30. Panyukova, T.A. Constructing of OE-postman Path for a Planar Graph. Bull. South Ural State Univ. Ser. Math. Model. Program. Comput. Softw. 2014, 7, 90–101. [Google Scholar] [CrossRef]
  31. Fleischner, H. Eulerian Graphs and Related Topics; Elsevier Science Publishers B.V.: Amsterdam, The Netherlands, 1990; 450p. [Google Scholar]
  32. Makarovskikh, T.A.; Panyukov, A.V. AOE-Trails Constructing for a Plane Connected 4-Regular Graph. In Proceedings of the Supplementary Proceedings of the 9th International Conference on Discrete Optimization and Operations Research and Scientific School (DOOR 2016), Vladivostok, Russia, 19–23 September 2016; Volume 1623, pp. 62–71. [Google Scholar]
  33. Makarovskikh, T.A.; Panyukov, A.V. Algorithm for constructing AOE circuit in a connected flat 4-regular graph. In Proceedings of the XII International Scientific Seminar “Discrete Mathematics and Its Applications” Academician Lupanov; Mechanics and Mathematics Faculty of Moscow State University: Moscow, Russia, 2016; p. 293296. (In Russian) [Google Scholar]
  34. Papadimitriou, C.H.; Steiglitz, K. Combinatorial Optimization. Algorithms and Complexity, Unabridged edition; Dover Publications: Mineola, NY, USA, 1998. [Google Scholar]
  35. Makarovskikh, T.A.; Panyukov, A.V.; Savitskiy, E.A. Mathematical Models and Routing Algorithms for CAD Technological Preparation of Cutting Processes. Autom. Remote Control 2017, 78, 868–881. [Google Scholar] [CrossRef]
  36. Makarovskikh, T.; Panyukov, A.; Savitsky, E. Software Development for Cutting Tool Routing Problems. Procedia Manuf. 2019, 29, 567–574. [Google Scholar] [CrossRef]
Figure 1. Functions representing graph edges.
Figure 1. Functions representing graph edges.
Mathematics 10 00795 g001
Figure 2. Example of cutting plan.
Figure 2. Example of cutting plan.
Mathematics 10 00795 g002
Figure 3. Geomorphic image of cutting plan in Figure 2.
Figure 3. Geomorphic image of cutting plan in Figure 2.
Mathematics 10 00795 g003
Figure 4. Splitting of cut-vertices of rank k. (a) The correct transitions system for splitting the cut-vertex of partial graph G k . (b) Splitting according to the transitions system in cut-vertex for partial graph G k .
Figure 4. Splitting of cut-vertices of rank k. (a) The correct transitions system for splitting the cut-vertex of partial graph G k . (b) Splitting according to the transitions system in cut-vertex for partial graph G k .
Mathematics 10 00795 g004
Figure 5. Splitting of vertex (the edges of graph G are bold lines, and the fictive ones are thick lines) and modification of the pointers according to the splitting processed.
Figure 5. Splitting of vertex (the edges of graph G are bold lines, and the fictive ones are thick lines) and modification of the pointers according to the splitting processed.
Mathematics 10 00795 g005
Figure 6. Example of the «correct» splitting, where → is flow hold arc, and ⤏ is arc without flow. (a) A vertex and arcs incident to it. (b) The «correct» splitting.
Figure 6. Example of the «correct» splitting, where → is flow hold arc, and ⤏ is arc without flow. (a) A vertex and arcs incident to it. (b) The «correct» splitting.
Mathematics 10 00795 g006
Figure 7. Network N for graph in Figure 3.
Figure 7. Network N for graph in Figure 3.
Mathematics 10 00795 g007
Figure 8. Rest of network N after running steps 3–6.
Figure 8. Rest of network N after running steps 3–6.
Mathematics 10 00795 g008
Figure 9. Examples of combining separated components. (a) Bridging; (b) DoubleBridging; (c) FaceCutting.
Figure 9. Examples of combining separated components. (a) Bridging; (b) DoubleBridging; (c) FaceCutting.
Mathematics 10 00795 g009
Table 1. Encoding of the plane graph in Figure 3.
Table 1. Encoding of the plane graph in Figure 3.
e v 1 ( e ) v 2 ( e ) l 1 ( e ) l 2 ( e ) r 1 ( e ) r 2 ( e ) f 1 ( e ) f 2 ( e )
e 1 v 2 v 9 e 4 e 21 e 3 e 23 f 0 f 1
e 2 v 4 v 6 e 3 e 8 e 7 e 9 f 1 f 2
e 3 v 2 v 4 e 1 e 5 e 4 e 2 f 1 f 3
e 4 v 2 v 3 e 3 e 6 e 1 e 5 f 3 f 0
e 5 v 3 v 4 e 4 e 7 e 6 e 3 f 3 f 5
e 6 v 3 v 7 e 5 e 23 e 4 e 13 f 5 f 0
e 7 v 4 v 1 e 2 e 13 e 5 e 8 f 2 f 5
e 8 v 6 v 1 e 10 e 7 e 2 e 11 f 7 f 2
e 9 v 6 v 5 e 2 e 15 e 10 e 20 f 1 f 12
e 10 v 6 v 10 e 9 e 11 e 8 e 15 f 12 f 7
e 11 v 1 v 10 e 8 e 16 e 12 e 10 f 7 f 8
e 12 v 1 v 12 e 11 e 14 e 13 e 16 f 8 f 6
e 13 v 1 v 7 e 12 e 6 e 7 e 14 f 6 f 5
e 14 v 7 v 12 e 13 e 17 e 23 e 12 f 6 f 4
e 15 v 5 v 10 e 20 e 10 e 9 e 19 f 11 f 12
e 16 v 10 v 12 e 18 e 12 e 11 e 17 f 9 f 8
e 17 v 12 v 11 e 16 e 22 e 14 e 18 f 9 f 4
e 18 v 10 v 11 e 19 e 17 e 16 e 22 f 10 f 9
e 19 v 10 v 8 e 15 e 22 e 18 e 20 f 11 f 10
e 20 v 5 v 8 e 9 e 19 e 15 e 21 f 1 f 11
e 21 v 9 v 8 e 23 e 20 e 1 e 22 f 4 f 1
e 22 v 8 v 11 e 21 e 18 e 19 e 17 f 4 f 10
e 23 v 9 v 7 e 1 e 14 e 21 e 6 f 0 f 4
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Makarovskikh, T.; Panyukov, A. Special Type Routing Problems in Plane Graphs. Mathematics 2022, 10, 795. https://doi.org/10.3390/math10050795

AMA Style

Makarovskikh T, Panyukov A. Special Type Routing Problems in Plane Graphs. Mathematics. 2022; 10(5):795. https://doi.org/10.3390/math10050795

Chicago/Turabian Style

Makarovskikh, Tatiana, and Anatoly Panyukov. 2022. "Special Type Routing Problems in Plane Graphs" Mathematics 10, no. 5: 795. https://doi.org/10.3390/math10050795

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop