Jump to content

Force-directed graph drawing: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Undid revision 496391116 by AnnGabrieli (talk)
Undid revision 496390478 by AnnGabrieli (talk)
Line 1: Line 1:
[[Image:Visualization of wiki structure using prefuse visualization package.png|250px|right|thumb|Visualization of links between pages on a wiki using a force directed layout.]]
[[Image:Visualization of wiki structure using prefuse visualization package.png|250px|right|thumb|Visualization of links between pages on a wiki using a force directed layout.]]
'''Ուժ-հիմք''' կամ '''ուժ-ղեկավարել''' ալգորիթմներ ենք, որոնք [[ալգորիթմի]] այն դասի համար են, որոնք [[գրաֆիկ են նկարելու|նկերելու գրաֆիկ]] aesthetically հաճելի ճանապարհով. Their purpose is to position the nodes of a [[graph (mathematics)|graph]] in two-dimensional or three-dimensional space so that all the edges are of more or less equal length and there are as few crossing edges as possible.
Գաղափարը ծագել է 1980-ականների գարնանը- ներդրվել է Eades և Kamada-Kawai-ի մոդելը; '''force-directed''' տերմինը ծագել է Fruchterman & Reingold-ի 1990 Համալսարանում Illinois տեղնիկական հաշվետվությունից(UIUCDCS-R-90-1609).


'''Force-based''' or '''force-directed''' algorithms are a class of [[algorithm]]s for [[graph drawing|drawing graphs]] in an aesthetically pleasing way. Their purpose is to position the nodes of a [[graph (mathematics)|graph]] in two-dimensional or three-dimensional space so that all the edges are of more or less equal length and there are as few crossing edges as possible.
Ուժով ուղղված ալգորթմները հասել են նրան, որ նշանակվում են ուժերի շրջանում փաթեթի եզրերին և փաթեթի հանգույցներին ;առավել պարզ եղանակ է ուժերը հատկացնելը , քանի որ եթե եզրերի [[աղբյուր(սարքը)|աղբյուրներ]] է (տես[[Hooke- օրենքը]]) և հանգույցները [[էլեկրական լիցքավորման|էլեկտրական լիցքավերման]] մասնիկներով (տես[[Coulomb-ի օրենքը]]).Ամբողջ ծրագիրը կեղծվել է, քանի որ եղել է ֆիզիկական համակրգ. Այն ուժերը, որոնք կիրառվում են հանգույցներում, մոտենում են միմյանց կամ հետագայում հրում իրար. Սա անընդհատ կրկնվում է, մինչև համակարգը գալիս հավասարակշռության վիճակի; այսինքն ., դրանց համեմատական դիրքրորշումները չեն փովելմի կրկնությունից հաջորդը. Այդ պահին գրաֆիկը ձևավորվում է. Հավասարակշռության վիճակի ֆիզիկական մեկնաբանությունները բերում են նրան, որ բոլոր ուժերը [[մեխանիկական հավասարակշռության են]].
The idea originated in the 1980s with a spring-embedder model of Eades and Kamada-Kawai; the term '''force-directed''' comes from Fruchterman & Reingold's 1990 University of Illinois technical report (UIUCDCS-R-90-1609).


The force-directed algorithms achieve this by assigning forces among the set of edges and the set of nodes; the most straightforward method is to assign forces as if the edges were [[spring (device)|springs]] (see [[Hooke's law]]) and the nodes were [[electric charge|electrically charged]] particles (see [[Coulomb's law]]). The entire graph is then simulated as if it were a physical system. The forces are applied to the nodes, pulling them closer together or pushing them further apart. This is repeated iteratively until the system comes to an equilibrium state; i.e., their relative positions do not change anymore from one iteration to the next. At that moment, the graph is drawn. The physical interpretation of this equilibrium state is that all the forces are in [[mechanical equilibrium]].
Այլընտրանքնաին մոդելը համարում է առաձգական ուժ յուրաքնչյուր զույգ հանույցների համար <math>(i,j)</math>,որտեղ իդեալական երկրությունը <math>\delta_{ij}</math> յուրաքնչյուր առաձգականությանը համամասնական է տեսաբանական հեռավորությունից մինչև հանգույցները ''i'' և ''j''. Այս մոդելում,առանձին բանող ուժի անհրաժեշտություն չկա. Նշենք, որ նվազագույնի հասցնելով տարբերությունը (սովորաբար քառակուսու տարբերությունը) միչև[[euclidean հեռավորությունը|euclidean]] և հանգույցների միջև իդեալական հեռավորությունը համարժեք ե մի մետրի [[multidimensional scaling]] խնդրի. [[Stress majorization]] տալիս է շատ լավ վարք (այսինքն, monotonically [[հաջորդականության սահմանաը|համեմատ]]) և mathematically էլեգանտ ճանապարհն է [[օպտիմալացում (մաթեմատիկա)|նվազեցնելու]] այս տարբերությունները եւ, հետեւաբար, գտնել լավ դասավորություն գրաֆիկի համար.


An alternative model considers a spring-like force for every pair of nodes <math>(i,j)</math> where the ideal length <math>\delta_{ij}</math> of each spring is proportional to the graph-theoretic distance between nodes ''i'' and ''j''. In this model, there is no need for a separate repulsive force. Note that minimizing the difference (usually the squared difference) between [[euclidean distance|euclidean]] and ideal distances between nodes is then equivalent to a metric [[multidimensional scaling]] problem. [[Stress majorization]] gives a very well-behaved (i.e., monotonically [[limit of a sequence|convergent]]) and mathematically elegant way to [[optimization (mathematics)|minimise]] these differences and, hence, find a good layout for the graph.
force-directed գրաֆիկը կարող է ներգրավել ուժեր, որոնք մեխանիկական եւ էլեկտրական աղբյուրների արդյունք են; օրինակները ներառում են logarithmic-ի աղբյուրներ (ի տարբերություն գծային աղբյուրների),ինչպես gravitational ուժերի (որը համախառն կապված բաղադրիչներ, որոնք մենակ կապված գրաֆիկներ չեն), մագնիսական ոլորտները (այսպես, ստանալու համար լավ դասավորություն ուղղված գրաֆիկների համար), և էլեկտրական լիցքավորված զսպանակներ (խուսափելու համար համընկնումը կամ մոտ համընկնումը վերջնական խաղարկությանը). Այդ դեպքում,աղբյուր և լիցքավորված մասնիկների գրաֆիկները, եզրեր են հակված են միատեսակ երկարության (քանի որ առաձգական ուժեր են), եւ հանգույցները, որոնք կապված չեն եզրից հակված են հետագայում տարվելու (էլեկտրական արդյունքի պատճառով).


A force-directed graph can involve forces other than mechanical springs and electrical repulsion; examples include logarithmic springs (as opposed to linear springs), gravitational forces (which aggregate connected components in graphs that are not singly connected), magnetic fields (so as to obtain good layouts for directed graphs), and electrically charged springs (in order to avoid overlap or near-overlap in the final drawing). In the case of spring-and-charged-particle graphs, the edges tend to have uniform length (because of the spring forces), and nodes that are not connected by an edge tend to be drawn further apart (because of the electrical repulsion).
Մինչ [[գրաֆիկը նկարելը ]] բարդ խնդիր է, force-directed ալգորթմները, լինելով ֆիզիկական սիմուլացիա, սովորաբար պահանջվում է հատուկ գիտելիքներ ոչ միայն գրաֆիկի տեսության , ինչպիսին է [[planar գրաֆիկ |planarity]].


While [[graph drawing]] is a difficult problem, force-directed algorithms, being physical simulations, usually require no special knowledge about graph theory such as [[planar graph|planarity]].
Նաեւ հնարավոր է կիրառել մեխանիզմներ , որոնք որոնման համար ուղղակիորեն ավելի էներգետիկ minima, կամ փոխարենը համատեղ ֆիզիկական մոդելավորում. Նման մեխանիզմները, որոնք օրինակ, ընդհանուր [[գլոբալ օպտիմալացման]] մեթոդները, ներառում է [[կռվելու սիմուլյացիա]] և [[գենետիկ ալգորիթմը]].


It is also possible to employ mechanisms that search more directly for energy minima, either instead of or in conjunction with physical simulation. Such mechanisms, which are examples of general [[global optimization]] methods, include [[simulated annealing]] and [[genetic algorithm]]s.
== Առավելությունները==
Հետևյալ են force-directed ալգորիթմների կարեւորագույն առավելություններից:
* Լավ որակի արդյունքներ: Գրաֆիկների միջին մեծության նվազագույնը (մինչեւ 50-100 vertices), իսկ ստացված արդյունքները սովորաբար շատ լավ արդյունքներ են հիմնված հետեւյալ պայմանների վրա: միասնական եզրի երկարությունը, միասնական vertex բաշխումը և ցուցադրման համաչափությունը. Այս վերջին չափանիշը մեկն է առավել կարեւորներից և դժվար է հասնել ցանկացած այլ տեսակի ալգորիթմի.
* Ճկունություն: Force-directed ալգորիթմները կարող են հեշտությամբ հարմարվել եւ տարածված է կատարելու լրացուցիչ գեղագիտական չափանիշներ. Սա ստիպում է նրանց առավել բազմակողմանի գրաֆիկ նկարելու ալգորթմների դաս. Գոյության ընդարձակման օրինակները ներառում է նոր գրաֆիկներ, 3D գրաֆիկ նկարել<ref>{{cite web|վերջին =Vose|առաջին =Aaron|վերնագիր =3D Phylogenetic Tree Viewer|url=http://aphrodite.bio.utk.edu/phytree/|մուևքի անուն =Սեպտեմբերի 8 2011}}</ref>, կլաստերի գրաֆիկինկարելը, լարված գրաֆիկի նկարելը, և դինամիկ գրաֆիկի նկարելը.
* Ինտուիտիվ: Քանի որ դրանք հիմնված են ընդհանուր օբյեկտների ֆիզիկական անալոգների վրա, ինչպիսիք են աղբյուրները, ալգորիթմների պահվածքը համեմատաբար հեշտ է կանխատեսել եւ հասկանալ. Սա այն դեպքն չէ, այլ տեսակի գրաֆիկի ալգորիթմների հետ.
*Պարզություն: Տիպիկ force-directed ալգորիթմները պարզ են և կարող է իրականացնել մի քանի տող կոդը. Այլ դասընթացների գրաֆիկ-նկարելու ալգորիթմները, ինչպես orthogonal դասավորություն, սովորաբար շատ ավելի զբաղված են.
* Interactivity: Այս դասի ալգորիթմի մի այլ առավելությունը ինտերակտիվ առումով է. Կազմելով միջանկյալ փուլերի գրաֆիկը, օգտվողը կարող է հետեւել, թե ինչպես է զարգանում գրաֆիկը , տեսնել այն tangled քաոսի մի գեղեցիկ կազմաձեւումը. Որոշ ինտերակտիվ գրաֆիկի գործիքներից, օգտվողը կարող մեկ կամ մի քանի հանգույցներ դուրս քաշել իրենց հավասարակշռության վիճակից և հետեւելու նրանց հետ վերաբնակելու դիրքորոշումը. Սա ստիպում է նրանց նախընտրելի դինամիկ ընտրությունը և [[online ալգորիթմ|online]] գրաֆիկի համակարգերը.
*Ուժեղ տեսական հիմքերի քանակը: Մինչ պարզ ''ad-hoc'' force-directed ալգորիթմները (օրինակ, կեղծ սույն հոդվածով) հաճախ հայտնվում են գրականությում եւ գործնականում (քանի որ դրանք համեմատաբար հեշտ է հասկանալ), եւ առավել հիմնավորված մոտեցումներ են սկսում ձեռք բերել. Վիճակագիրները լուծել են նմանատիպ խնդիրներ [[multidimensional scaling]] (MDS) սկսած 1930-ից, եւ ֆիզիկոսներ նույնպես ունեն նմանատիպ խնդիրների հետ աշխատելու երկար պատմություն [[n-body]] -Ֆորումում խնդիրները շատ հասուն մոտեցումներ կան. Որպես օրինակ, [[stress majorization]] մոտեցումը MDS կարող է կիրառվել գրաֆիկի խաղարկությանը ինչպես նկարագրված է վերը. Սա ապացուցվել է զուգամիտելով monotonically.<ref>de Leeuw, J. (1988)</ref> Monotonic կոնվերգենցիան, գույքը, որը ալգորիթմ կլինի յուրաքանչյուր բազմակրկնություն նվազեցնելով կամ արժեքն դիրքով, կարևոր է, քանի որ այն երաշխավորում է, որ այն դիրքով, ի վերջո հասնելու տեղական minimum-ի և դադարի. Խլացում ծրագրերը, ինչպիսիք են մեկ օգտագործվող pseudo-code գրանշանները `առաջացնում է ալգորիթմի դադարեցշում, բայց չի կարող երաշխավորել իսկական տեղական նվազագույնին հասելը.


==Advantages==
==Թերությունները==
The following are among the most important advantages of force-directed algorithms:
force-directed ալգորիթմների գլխավոր թերություններըներառում են հետևյալը:
* Good-quality results: At least for graphs of medium size (up to 50-100 vertices), the results obtained have usually very good results based on the following criteria: uniform edge length, uniform vertex distribution and showing symmetry. This last criterion is among the most important ones and is hard to achieve with any other type of algorithm.
* High [[անընդմեջ ժամանակը]]: force-directed ալգորիթմներին բնորոշ է ''համարել'' ընդհանուր անընդմեջ ժամանակին համարժեք հաղորդագրություններ O(n<sup>3</sup>), , որտեղ հանգույցների n թիվն մուտքագրման գրաֆիկն է. Սա պայմանավորված է թիվի կրկնությամբ ` գնահատվում է O(n),և բոլոր զույգ հանգույցների ամեն կրկնություն, պետք է այցելել եւ նրանց փոխադարձ բանող ուժերը հաշվարկվում են. Սա կապված է ֆիզիկայի [[N-մարմնի խնդիրի]] հետ. Սակայն, քանի որ զզվելի ուժերը տեղական բնույթի են, գրաֆիկը կարող է բաժանվել այնպես, որ միայն հարեւան vertices hama8vwum. Ընդհանուր տեխնիկան օգտագործվում է ալգորիթմների դասավորությունը որոշելու համար, մեծ գրաֆիկներն ներառում են բարձր ծավալային ներկառուցում,<ref>Harel, D., Koren Y. (2002)</ref> գծագրական տրոհված շերտի և այլ մեթոդների հետ կապված [[N- մարմին մոդելավորում]]. Օրինակ, [[Barnes–Hut simulation]]-հիմնված է FADE մեթոդի վրա <ref անուն="quigley+eades">Quigley A., Eades P. (2001)</ref> կարող է բարելավել անընդմեջ ժամանակի n*log(n) յուրաքանչյուր բազմակրկնություն. Որպես ուղեցույց, մի քանի վայրկյանում կարելի է ակնկալել առավելագույնը 1,000 հանգույցների ստանդարտ n հետ<sup>2</sup> տեխնիկայի բազմակրկնություն, և 100,000 n*log(n) բազմակրկնություն տեխնիկայով.<ref անուն="quigley+eades" />
* Flexibility: Force-directed algorithms can be easily adapted and extended to fulfill additional aesthetic criteria. This makes them the most versatile class of graph drawing algorithms. Examples of existing extensions include the ones for directed graphs, 3D graph drawing<ref>{{cite web|last=Vose|first=Aaron|title=3D Phylogenetic Tree Viewer|url=http://www.aaronvose.com/phytree3d/|accessdate=3 June 2012}}</ref>, cluster graph drawing, constrained graph drawing, and dynamic graph drawing.
* Intuitive: Since they are based on physical analogies of common objects, like springs, the behavior of the algorithms is relatively easy to predict and understand. This is not the case with other types of graph-drawing algorithms.
* Simplicity: Typical force-directed algorithms are simple and can be implemented in a few lines of code. Other classes of graph-drawing algorithms, like the ones for orthogonal layouts, are usually much more involved.
* Interactivity: Another advantage of this class of algorithm is the interactive aspect. By drawing the intermediate stages of the graph, the user can follow how the graph evolves, seeing it unfold from a tangled mess into a good-looking configuration. In some interactive graph drawing tools, the user can pull one or more nodes out of their equilibrium state and watch them migrate back into position. This makes them a preferred choice for dynamic and [[online algorithm|online]] graph-drawing systems.
* Strong theoretical foundations: While simple ''ad-hoc'' force-directed algorithms (such as the one given in pseudo-code in this article) often appear in the literature and in practice (because they are relatively easy to understand), more reasoned approaches are starting to gain traction. Statisticians have been solving similar problems in [[multidimensional scaling]] (MDS) since the 1930s, and physicists also have a long history of working with related [[n-body]] problems - so extremely mature approaches exist. As an example, the [[stress majorization]] approach to metric MDS can be applied to graph drawing as described above. This has been proven to converge monotonically.<ref>de Leeuw, J. (1988)</ref> Monotonic convergence, the property that the algorithm will at each iteration decrease the stress or cost of the layout, is important because it guarantees that the layout will eventually reach a local minimum and stop. Damping schedules such as the one used in the pseudo-code below, cause the algorithm to stop, but cannot guarantee that a true local minimum is reached.


==Disadvantages==
* Վատ տեղական minima: Շատ հեշտ է տեսնել, որ force-directed ալգորիթմները արտադրել են գրաֆիկ նվազագույն էներգետիկայով, մասնավորապես մեկում, որի ընդհանուր էներգիան միայն [[տեղական նվազագույնն]] է. Տեղական նվազագույն կարող է լինել, շատ դեպքերում, ավելի վատ, քան համաշխարհային նվազագույնը, որը թարգմանվել է ավելի ցածր որակի վիճակահանությամբ. Շատ ալգորիթմներ, հատկապես այն պայմանագրերը , որոնք թույլ են տալիս միայն ''down-hill'' vertices-ի շարժում, վերջնական արդյունքը կարող է մեծապես ազդել է մեկնարկային դիրքով, որ շատ դեպքերում պատահականորեն գեներացվել է. Վատ տեղական minima-յի խնդիրը դառնում է ավելի կարեւոր, քան vertices գրաֆիկը մեծանում է. Տարբեր ալգորիթմների համակցված կիրառումը օգտակար է լուծել այս խնդիրը. Օրինակ, օգտագործելով Kamada-Kawai ալգորիթ ը<ref>Kamada, T., Kawai, S. (1989)</ref> արագ առաջացնում է ողջամիտ նախնական դասավորություն, ապա Fruchterman-Reingold ալգորիթմը <ref>Fruchterman, T. M. J., & Reingold, E. M. (1991)</ref> բարելավելու տեղաբաշխում հարեւան հանգույցների.
The main disadvantages of force-directed algorithms include the following:
* High [[running time]]: The typical force-directed algorithms are in general ''considered'' to have a running time equivalent to O(n<sup>3</sup>), where n is the number of nodes of the input graph. This is because the number of iterations is estimated to be O(n), and in every iteration, all pairs of nodes need to be visited and their mutual repulsive forces computed. This is related to the [[N-body problem]] in physics. However, since repulsive forces are local in nature the graph can be partitioned such that only neighboring vertices are considered. Common techniques used by algorithms for determining the layout of large graphs include high-dimensional embedding,<ref>Harel, D., Koren Y. (2002)</ref> multi-layer drawing and other methods related to [[N-body simulation]]. For example, the [[Barnes–Hut simulation]]-based method FADE<ref name="quigley+eades">Quigley A., Eades P. (2001)</ref> can improve running time to n*log(n) per iteration. As a rough guide, in a few seconds one can expect to draw at most 1,000 nodes with a standard n<sup>2</sup> per iteration technique, and 100,000 with a n*log(n) per iteration technique.<ref name="quigley+eades" />


* Poor local minima: It is easy to see that force-directed algorithms produce a graph with minimal energy, in particular one whose total energy is only a [[local minimum]]. The local minimum found can be, in many cases, considerably worse than a global minimum, which translates into a low-quality drawing. For many algorithms, especially the ones that allow only ''down-hill'' moves of the vertices, the final result can be strongly influenced by the initial layout, that in most cases is randomly generated. The problem of poor local minima becomes more important as the number of vertices of the graph increases. A combined application of different algorithms is helpful to solve this problem. For example, using the Kamada-Kawai algorithm<ref>Kamada, T., Kawai, S. (1989)</ref> to quickly generate a reasonable initial layout and then the Fruchterman-Reingold algorithm<ref>Fruchterman, T. M. J., & Reingold, E. M. (1991)</ref> to improve the placement of neighbouring nodes.
==Կեղծ կոդը ==

Յուրաքանչյուր առանցք ունի x,y պաշտոնը և dx,dy արագություն և m զանգվածը. Սովորաբար կա անընդհատ առաձգականություն, և [[խլացում]]: 0 < damping < 1. Ուժը դեպի ու հեռու հանգույցների հաշվարկվում է ըստ [[Hooke-ի օրենքի]] և [[Coulomb-ի օրենքը]] կամ նման քննարկումը վերեւից. Օրինակ կարող է ընդլայնվել trivially ներառելով a z պաշտոնը 3D ներկայացուցչության համար.
==Pseudocode==
Each node has x,y position and dx,dy velocity and mass m. There is usually a spring constant, s, and [[damping]]: 0 < damping < 1. The force toward and away from nodes is calculated according to [[Hooke's Law]] and [[Coulomb's law]] or similar as discussed above. The example can be trivially expanded to include a z position for 3D representation.


<code>
<code>
Line 55: Line 56:
</code>
</code>


==Տես նաև ==
==See also==
*[[Թուլիփ (ծրագրային)|Թուլիփ]], ծրագիր, որը իրականցնում է force directed կառուցվածքի մասին (GEM, LGL, GRIP, FM³)
*[[Tulip (software)|Tulip]], software that implements most of the force directed layout (GEM, LGL, GRIP, FM³)
*[[Cytoscape]], software for visualising biological networks. The base package includes force-directed layouts as one of the built-in methods.
*[[Cytoscape]], ծրագրային ապահովման համար visualizing կենսաբանական ցանցեր. Բազային փաթեթը ներառում է force-directed դասավորություն որպես ներկառուցված մեթոդներ.
*[[Gephi]], an interactive visualization and exploration platform for all kinds of networks and complex systems, dynamic and hierarchical graphs.
*[[Gephi]], որը ինտերակտիվ visualization է և հետախուզական հարթակ բոլոր տեսակի ցանցերի եւ բարդ համակարգերի, դինամիկ եւ հիերարխիկ գրաֆիկներ.




Line 64: Line 65:
{{Reflist|2}}
{{Reflist|2}}


==Further reading==
==Հետագա ընթերցում ==
* {{cite book
* {{cite book
| վերջինը=di Battista | առաջինը=Giuseppe
| last=di Battista | first=Giuseppe
| coauthors=[[Peter Eades]], [[Roberto Tamassia]], Ioannis G. Tollis
| coauthors=[[Peter Eades]], [[Roberto Tamassia]], Ioannis G. Tollis
| title=Graph Drawing: Algorithms for the Visualization of Graphs
| անվանումը=Գրաֆիկի նկարելը: Visualization ալգորիթմների համար գրաֆիկներ են
| հրապարակիչ=Prentice Hall
| publisher=Prentice Hall
| տարի=1999
| year=1999
| isbn=978-0133016154}}
| isbn=978-0-13-301615-4}}
* {{cite journal
* {{cite journal
|վերջին =Eades |առաջին =Peter
| last=Eades | first=Peter
| title=A Heuristic for Graph Drawing
| վերնագիր= Գրաֆիկի խաղարկության համար Heuristic
| տարի=1984
| year=1984
| ամսագիրը=Congressus Numerantium
| journal=Congressus Numerantium
| ծավալները=42 | i=11 | էջերը=149&ndash;160}}
| volume=42 | issue=11 | pages=149&ndash;160}}
* {{cite journal
* {{cite journal
| առաջին1=Fruchterman | վերջին1=Thomas M. J.
| last1=Fruchterman | first1=Thomas M. J.
| առաջին2=Reingold | վերջին2=Edward M. | հեղինակ 2-link = Edward Reingold
| last2=Reingold | first2=Edward M. | author2-link = Edward Reingold
| վերնագիր= Գրաֆիկի խաղարկությանը Force-Directed Placement-ի կողմից
| title=Graph Drawing by Force-Directed Placement
| տարի=1991
| year=1991
| ամսագիր=Software &ndash; Practice & Experience
| journal=Software &ndash; Practice & Experience
| հրապարակիչ=Wiley
| publisher=Wiley
| շավալներ=21 |=11 | էջեր=1129&ndash;1164
| volume=21 | issue=11 | pages=1129&ndash;1164
| doi=10.1002/spe.4380211102
| doi=10.1002/spe.4380211102
| url=http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.13.8444}}
| url=http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.13.8444}}
* {{cite conference
* {{cite conference
| առաջին1=Harel | վերջին1=David | հեղինակ1-link = David Harel
| last1=Harel | first1=David | author1-link = David Harel
| առաջին2=Koren | վերջին2=Yehuda
| last2=Koren | first2=Yehuda
| վերնագիր= Գրաֆիկի խաղարկության High-Dimensional Embedding-ի կողմից
| title=Graph Drawing by High-Dimensional Embedding
| url=http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.20.5390
| url=http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.20.5390
| տարի=2002
| year=2002
| booktitle=Proceedings of the 9th International Symposium on Graph Drawing
| գրքի հեղինակ= 9-րդ միջազգային սիմպոզիումի գրաֆիկի խաղարկության
| pages=207&ndash;219
մանրամասը
| էջերը=207&ndash;219
| isbn=3-540-00158-1}}
| isbn=3-540-00158-1}}
* {{cite journal
* {{cite journal
| առաջին1=Kamada | վերջին1=Tomihisa
| last1=Kamada | first1=Tomihisa
| առաջին2=Kawai | վերջին2=Satoru
| last2=Kawai | first2=Satoru
| title=An algorithm for drawing general undirected graphs
| վերնագիր= Ալգորիթմ ընդհանուր undirected գրաֆիկների համար
| տարի=1989
| year=1989
| ամսագիր=Information Processing Letters
| journal=Information Processing Letters
| հրապարակիչ=Elsevier
| publisher=Elsevier
|ծավալներ =31 | =1 | էջեր=7&ndash;15
| volume=31 | issue=1 | pages=7&ndash;15
| doi=10.1016/0020-0190(89)90102-6}}
| doi=10.1016/0020-0190(89)90102-6}}
* {{cite book
* {{cite book
| խմբագիր1-առաջին=Kaufmann | խմբագիր1-վերջին =Michael
| editor1-last=Kaufmann | editor1-first=Michael
| խմբագիր2-առաջին=Wagner | խմբագիր2-վերջին =Dorothea
| editor2-last=Wagner | editor2-first=Dorothea | editor2-link = Dorothea Wagner
| title=Drawing graphs: methods and models
| վերնագիր= Գունավոր գրաֆիկների քանակը: մեթոդները եւ մոդելները
| publisher=Springer

| year=2001
| հրապարակիչ=Springer
| series=Lecture Notes in Computer Science 2025
| տարի=2001
| սկիզբ=Lecture Notes in Computer Science 2025
| doi=10.1007/3-540-44969-8
| doi=10.1007/3-540-44969-8
| isbn=978-3540420620}}
| isbn=978-3-540-42062-0}}
* {{cite journal
* {{cite journal
| վերջին=de Leeuw | առաջին=Jan
| last=de Leeuw | first=Jan
|վերնագիր = majorization մեթոդի multidimensional մերձոցման համար
| title=Convergence of the majorization method for multidimensional scaling
| տարի=1988
| year=1988
| ամսագր=Journal of Classification
| journal=Journal of Classification
| հրապարակիչ=Springer
| publisher=Springer
| ծավալներ=5 | =2 | էջեր=163&ndash;180
| volume=5 | issue=2 | pages=163&ndash;180
| doi=10.1007/BF01897162}}
| doi=10.1007/BF01897162}}
* {{cite conference
* {{cite conference
| վերջին1=Quigley | առաջին1=Aaron
| last1=Quigley | first1=Aaron
| վերջին2=Eades | առաջին2=Peter | հեղինակ2-link = Peter Eades
| last2=Eades | first2=Peter | author2-link = Peter Eades
| վերնագիր=FADE: Graph Drawing, Clustering, և Visual Abstraction
| title=FADE: Graph Drawing, Clustering, and Visual Abstraction
| url=http://www.cs.ucd.ie/staff/aquigley/home/downloads/aq-gd2000.pdf
| url=http://www.cs.ucd.ie/staff/aquigley/home/downloads/aq-gd2000.pdf
| format=PDF
| format=PDF
| տարի=2001
| year=2001
| booktitle=Proceedings of the 8th International Symposium on Graph Drawing
| գրքի վերնագիր=8-րդ միջազգային սիմպոզիումի գրաֆիկի խաղարկության
| pages=197&ndash;210

| էջեր=197&ndash;210
| isbn=3-540-41554-8}}
| isbn=3-540-41554-8}}


==External links==
==Արտաքին հղուներ ==
*[http://www.aisee.com/manual/unix/56.htm aiSee's force-directed layout]
*[http://www.aisee.com/manual/unix/56.htm aiSee's force-directed layout]
*[http://www.cs.usyd.edu.au/%7Eaquigley/avi/spring.avi Video of Spring Algorithm]
*[http://www.cs.usyd.edu.au/%7Eaquigley/avi/spring.avi Video of Spring Algorithm]
Line 155: Line 153:
[[fr:Force-based layout]]
[[fr:Force-based layout]]
[[ja:力学モデル (グラフ描画アルゴリズム)]]
[[ja:力学モデル (グラフ描画アルゴリズム)]]
[[hy:ՈՒժային (Force-based) ալգորիթմ (graph drawing)]]

Revision as of 06:39, 7 June 2012

Visualization of links between pages on a wiki using a force directed layout.

Force-based or force-directed algorithms are a class of algorithms for drawing graphs in an aesthetically pleasing way. Their purpose is to position the nodes of a graph in two-dimensional or three-dimensional space so that all the edges are of more or less equal length and there are as few crossing edges as possible. The idea originated in the 1980s with a spring-embedder model of Eades and Kamada-Kawai; the term force-directed comes from Fruchterman & Reingold's 1990 University of Illinois technical report (UIUCDCS-R-90-1609).

The force-directed algorithms achieve this by assigning forces among the set of edges and the set of nodes; the most straightforward method is to assign forces as if the edges were springs (see Hooke's law) and the nodes were electrically charged particles (see Coulomb's law). The entire graph is then simulated as if it were a physical system. The forces are applied to the nodes, pulling them closer together or pushing them further apart. This is repeated iteratively until the system comes to an equilibrium state; i.e., their relative positions do not change anymore from one iteration to the next. At that moment, the graph is drawn. The physical interpretation of this equilibrium state is that all the forces are in mechanical equilibrium.

An alternative model considers a spring-like force for every pair of nodes where the ideal length of each spring is proportional to the graph-theoretic distance between nodes i and j. In this model, there is no need for a separate repulsive force. Note that minimizing the difference (usually the squared difference) between euclidean and ideal distances between nodes is then equivalent to a metric multidimensional scaling problem. Stress majorization gives a very well-behaved (i.e., monotonically convergent) and mathematically elegant way to minimise these differences and, hence, find a good layout for the graph.

A force-directed graph can involve forces other than mechanical springs and electrical repulsion; examples include logarithmic springs (as opposed to linear springs), gravitational forces (which aggregate connected components in graphs that are not singly connected), magnetic fields (so as to obtain good layouts for directed graphs), and electrically charged springs (in order to avoid overlap or near-overlap in the final drawing). In the case of spring-and-charged-particle graphs, the edges tend to have uniform length (because of the spring forces), and nodes that are not connected by an edge tend to be drawn further apart (because of the electrical repulsion).

While graph drawing is a difficult problem, force-directed algorithms, being physical simulations, usually require no special knowledge about graph theory such as planarity.

It is also possible to employ mechanisms that search more directly for energy minima, either instead of or in conjunction with physical simulation. Such mechanisms, which are examples of general global optimization methods, include simulated annealing and genetic algorithms.

Advantages

The following are among the most important advantages of force-directed algorithms:

  • Good-quality results: At least for graphs of medium size (up to 50-100 vertices), the results obtained have usually very good results based on the following criteria: uniform edge length, uniform vertex distribution and showing symmetry. This last criterion is among the most important ones and is hard to achieve with any other type of algorithm.
  • Flexibility: Force-directed algorithms can be easily adapted and extended to fulfill additional aesthetic criteria. This makes them the most versatile class of graph drawing algorithms. Examples of existing extensions include the ones for directed graphs, 3D graph drawing[1], cluster graph drawing, constrained graph drawing, and dynamic graph drawing.
  • Intuitive: Since they are based on physical analogies of common objects, like springs, the behavior of the algorithms is relatively easy to predict and understand. This is not the case with other types of graph-drawing algorithms.
  • Simplicity: Typical force-directed algorithms are simple and can be implemented in a few lines of code. Other classes of graph-drawing algorithms, like the ones for orthogonal layouts, are usually much more involved.
  • Interactivity: Another advantage of this class of algorithm is the interactive aspect. By drawing the intermediate stages of the graph, the user can follow how the graph evolves, seeing it unfold from a tangled mess into a good-looking configuration. In some interactive graph drawing tools, the user can pull one or more nodes out of their equilibrium state and watch them migrate back into position. This makes them a preferred choice for dynamic and online graph-drawing systems.
  • Strong theoretical foundations: While simple ad-hoc force-directed algorithms (such as the one given in pseudo-code in this article) often appear in the literature and in practice (because they are relatively easy to understand), more reasoned approaches are starting to gain traction. Statisticians have been solving similar problems in multidimensional scaling (MDS) since the 1930s, and physicists also have a long history of working with related n-body problems - so extremely mature approaches exist. As an example, the stress majorization approach to metric MDS can be applied to graph drawing as described above. This has been proven to converge monotonically.[2] Monotonic convergence, the property that the algorithm will at each iteration decrease the stress or cost of the layout, is important because it guarantees that the layout will eventually reach a local minimum and stop. Damping schedules such as the one used in the pseudo-code below, cause the algorithm to stop, but cannot guarantee that a true local minimum is reached.

Disadvantages

The main disadvantages of force-directed algorithms include the following:

  • High running time: The typical force-directed algorithms are in general considered to have a running time equivalent to O(n3), where n is the number of nodes of the input graph. This is because the number of iterations is estimated to be O(n), and in every iteration, all pairs of nodes need to be visited and their mutual repulsive forces computed. This is related to the N-body problem in physics. However, since repulsive forces are local in nature the graph can be partitioned such that only neighboring vertices are considered. Common techniques used by algorithms for determining the layout of large graphs include high-dimensional embedding,[3] multi-layer drawing and other methods related to N-body simulation. For example, the Barnes–Hut simulation-based method FADE[4] can improve running time to n*log(n) per iteration. As a rough guide, in a few seconds one can expect to draw at most 1,000 nodes with a standard n2 per iteration technique, and 100,000 with a n*log(n) per iteration technique.[4]
  • Poor local minima: It is easy to see that force-directed algorithms produce a graph with minimal energy, in particular one whose total energy is only a local minimum. The local minimum found can be, in many cases, considerably worse than a global minimum, which translates into a low-quality drawing. For many algorithms, especially the ones that allow only down-hill moves of the vertices, the final result can be strongly influenced by the initial layout, that in most cases is randomly generated. The problem of poor local minima becomes more important as the number of vertices of the graph increases. A combined application of different algorithms is helpful to solve this problem. For example, using the Kamada-Kawai algorithm[5] to quickly generate a reasonable initial layout and then the Fruchterman-Reingold algorithm[6] to improve the placement of neighbouring nodes.

Pseudocode

Each node has x,y position and dx,dy velocity and mass m. There is usually a spring constant, s, and damping: 0 < damping < 1. The force toward and away from nodes is calculated according to Hooke's Law and Coulomb's law or similar as discussed above. The example can be trivially expanded to include a z position for 3D representation.

 set up initial node velocities to (0,0)
 set up initial node positions randomly // make sure no 2 nodes are in exactly the same position
 loop
     total_kinetic_energy := 0 // running sum of total kinetic energy over all particles
     for each node
         net-force := (0, 0) // running sum of total force on this particular node
         
         for each other node
             net-force := net-force + Coulomb_repulsion( this_node, other_node )
         next node
         
         for each spring connected to this node
             net-force := net-force + Hooke_attraction( this_node, spring )
         next spring
         
         // without damping, it moves forever
         this_node.velocity := (this_node.velocity + timestep * net-force) * damping
         this_node.position := this_node.position + timestep * this_node.velocity
         total_kinetic_energy := total_kinetic_energy + this_node.mass * (this_node.velocity)^2
     next node
 until total_kinetic_energy is less than some small number  // the simulation has stopped moving

See also

  • Tulip, software that implements most of the force directed layout (GEM, LGL, GRIP, FM³)
  • Cytoscape, software for visualising biological networks. The base package includes force-directed layouts as one of the built-in methods.
  • Gephi, an interactive visualization and exploration platform for all kinds of networks and complex systems, dynamic and hierarchical graphs.


References

  1. ^ Vose, Aaron. "3D Phylogenetic Tree Viewer". Retrieved 3 June 2012.
  2. ^ de Leeuw, J. (1988)
  3. ^ Harel, D., Koren Y. (2002)
  4. ^ a b Quigley A., Eades P. (2001)
  5. ^ Kamada, T., Kawai, S. (1989)
  6. ^ Fruchterman, T. M. J., & Reingold, E. M. (1991)

Further reading