This is a draft Articles for creation (AfC) submission. It is not currently pending review. While there are no deadlines, abandoned drafts may be deleted after
Draft article not currently submitted for review.
This is a draft Articles for creation (AfC) submission. It is not currently pending review. While there are no deadlines, abandoned drafts may be deleted after six months. To edit or make changes to this draft, simply click on the "Edit" tab at the top of the window. To be accepted, a draft should:
It is strongly discouraged to write about either yourself or your business or employer. If you do so, you must declare it. Where to get help
How to improve a draft
You can also browse Wikipedia:Featured articles and Wikipedia:Good articles to find examples of Wikipedia's best writing on topics similar to your proposed article. Improving your odds of a speedy review To improve your odds of a faster review, tag your draft with relevant WikiProject tags using the button below. This will let reviewers know a new draft has been submitted in their area of interest. For instance, if you wrote about a female astronomer, you would want to add the Biography, Astronomy, and Women scientists tags. Editor resources
Last edited by Headbomb (talk | contribs) 4 months ago. (Update) |
| Port graph | |
|---|---|
| Type | Graph-theoretic structure |
| Introduced | Early 2000s (formalized) |
| Key authors | Fernández, Kirchner, Pinaud |
| Applications | Biochemical modelling, programming languages, distributed programming |
| Related | Graph (abstract data type), Graph rewriting |
In theoretical computer science and mathematics, a port graph (also written port-graph) is a generalisation of an ordinary graph in which each node possesses a fixed, explicitly named set of ports — designated attachment points — and in which every edge connects exactly two ports rather than two nodes directly.[1] Port graphs extend multigraphs by making connection points on nodes first-class entities, enabling a finer-grained description of how components interact.
Port graphs arise naturally when modelling systems whose components interact via specific interfaces: two proteins binding at particular chemical sites, two processes communicating over a named channel, or two sub-proofs connected at a specific logical formula. The structure supports a rich theory of graph rewriting and has been applied in biochemical modelling, proof theory, concurrent programming, and the study of distributed and autonomous systems.[2]
Informally, a port graph is a graph where nodes have explicit connection points called ports. Edges are undirected and connect exclusively at ports; moreover, two ports may be connected by more than one edge, making port graphs a form of labelled multigraph.[3] Nodes, ports, and edges may all carry labels drawn from some set of properties — for example, a node may be labelled with a name and a colour, an edge with a status such as active or inactive, and a port with a role such as principal or auxiliary.
Let and be two disjoint sets of node names and port names, respectively. A p-signature over and is a mapping
that associates to each node name a finite set of port names. Without loss of generality one assumes that port names belonging to different node names are disjoint.[1]
Given a p-signature ∇, a port graph consists of:
A port that is not an endpoint of any edge is called a free port. The set of all free ports constitutes the interface of the port graph. Port graphs with a non-empty interface represent open systems that can be composed with others.
A labelled port graph extends the basic definition by equipping nodes, ports, and edges with arbitrary attribute–value pairs drawn from a given signature. This allows the structure to carry semantic information required for particular applications. For instance, in a biochemical model, a node might carry attributes specifying the name of the protein it represents, its phosphorylation state, and its concentration. In a proof-theoretic setting, nodes carry logical connectives and ports carry formula labels.[5]
A formal treatment of labelled port graphs was given by Fernández, Kirchner, and Pinaud in 2018, who defined a general framework serving as the basis for graph-based programming and modelling environments.[5]
The conceptual roots of port graphs lie in interaction nets, a graphical model of computation introduced by the French mathematician Yves Lafont in 1990 as a generalisation of the proof structures of linear logic.[6] In Lafont's formalism, every node (called an agent) possesses a fixed number of ports arranged into one distinguished principal port and zero or more auxiliary ports; computation proceeds by rewriting pairs of agents connected at their principal ports.
Port graphs proper were subsequently developed as an abstract representation of proteins and protein interaction networks, where two proteins connect via sites of chemical compatibility.[4] Early work by Fernández, Kirchner, and colleagues at INRIA and King's College London formalised the structure and its accompanying rewriting calculus in the context of biochemical and autonomous systems modelling. This led, around 2009–2012, to the development of the PORGY visual modelling environment, in which port graphs are the primary representational primitive.[7]
Since then, port graphs have been studied from multiple theoretical perspectives — including their relationship to proof nets, the development of higher-order extensions, and their use as a substrate for strategic graph programming — and have found application in domains ranging from systems biology to social network analysis and financial modelling.[8]
[[#ref_Note: Interaction nets are a special case of port graphs in which each node has exactly one distinguished principal port, rewriting is binary and deterministic, and the strong confluence property holds. General port graphs relax all of these restrictions.|^]]
Port graphs are most commonly studied in the context of port graph rewriting, a rule-based transformation system that generalises both term rewriting and interaction net rewriting to the setting of arbitrary labelled graphs.
A port graph rewrite rule consists of two port graphs — a left-hand side and a right-hand side — together with an arrow node whose ports specify how the free ports of correspond to those of .[9] To apply the rule to a port graph , one finds an injective graph morphism (a match) from into , removes the image of , and inserts a copy of , re-attaching the edges that formerly connected to 's interface according to the arrow node's port correspondence.
Rewriting is intrinsically non-deterministic: it may be possible to match in several locations in , or to apply different rules to overlapping subgraphs, possibly yielding different results. A port graph on which no rule is applicable is said to be in normal form. Each rule application is a rewriting step; a sequence of rewriting steps constitutes a derivation.
Because port graph rewriting is non-deterministic, a strategy is required to control which rules are applied and where. A strategy language for port graph rewriting must cope with the absence of a canonical root position, a feature that distinguishes graphs from terms.[9] The strategy languages developed for PORGY include primitives such as:
The full strategy language includes non-deterministic and probabilistic constructs, enabling the modelling of stochastic systems. A formal small-step operational semantics is given using a labelled transition system on derivation trees.[9]
A port graph morphism (where may contain variable nodes and ports but does not) maps nodes, ports, and edges from to while preserving node names and port names (up to variable instantiation), the attachment of edges to ports, and all attribute–value pairs on nodes, ports, and edges.[9] The morphism intuitively identifies a subgraph of that matches up to variable occurrences. An injective port graph morphism whose domain has no variables is a matching, and finding a matching is a subgraph isomorphism problem.
Interaction nets, introduced by Lafont in 1990,[6] are a strict special case of port graphs. In an interaction net, every node (agent) of arity has exactly ports: one distinguished principal port and auxiliary ports. Computation takes place only when two agents are connected by their principal ports, forming an active pair (or redex). Each active pair type has a unique interaction rule, ensuring strong confluence: no matter in which order redexes are reduced, the same normal form is reached. This confluence property supports massive parallelism without synchronisation.
Port graphs generalise interaction nets by removing the restrictions on the number of principal ports and on the uniqueness of rules. They can therefore model non-deterministic and concurrent systems that interaction nets, being deterministic, cannot directly represent.[2]
Proof nets are graph-based representations of proofs in linear logic, introduced by Jean-Yves Girard in 1987. The cut elimination procedure on proof nets can be expressed as a sequence of local graph rewritings. Port graphs provide a natural and more general representational framework that encompasses proof nets: a proof net can be encoded as a port graph, and the normalisation of the proof corresponds to port graph rewriting steps.[10] Higher-order extensions of port graphs have been proposed to more directly express cut-elimination in intuitionistic logic without an exponential enumeration of cases.[10]
Port graphs have found applications in several domains:
The primary software tool for port graph rewriting is PORGY (Port Graph Rewriting), a visual and interactive environment developed jointly by teams at INRIA Bordeaux, the University of Bordeaux, and King's College London, with initial development taking place roughly between 2009 and 2012.[7] PORGY provides:
PORGY supports a stochastic extension of the strategy language in which rule applications carry probabilities, enabling in silico experiments with different priorities or probabilities of biochemical reaction rules.[11]
Several extensions of the basic port graph formalism have been studied:
Category:Graph theory Category:Rewriting systems Category:Models of computation Category:Formal methods Category:Proof theory Category:Systems biology Category:Theoretical computer science
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.