Combining Graphs: Finding Solutions through Graph Homorphisms

In summary, the goal of the project is to combine separate graphs into one to model house design. The graphs are used to represent different aspects of house design (e.g. sleeping, eating, socialising). The goal is to find a way to merge the graphs into one so that the different aspects are combined into one spatial configuration.
  • #1
seel
4
0
TL;DR Summary
We are trying to find a way to combine individual graphs into one.
We are working on an architectural project using graphs and we are looking for a way to combine separate graphs into one. We looked into methods to generate graph homorphisms, following the maximum graph homomorphism (MGH) (Langberg et al. 2006) and Paweł Rzążewski’s Exact Algorithm (2014), which maps adjacent vertices in separate graphs. We are using an undirected weighted graph (as we need to establish weights of the links bt nodes). Any help with this project would be great!

homorphism.png
 
Technology news on Phys.org
  • #2
Can you be more specific about the goal? What are the graphs meant to represent?
 
  • #3
seel said:
Summary:: We are trying to find a way to combine individual graphs into one.

We are working on an architectural project using graphs and we are looking for a way to combine separate graphs into one. We looked into methods to generate graph homorphisms, following the maximum graph homomorphism (MGH) (Langberg et al. 2006) and Paweł Rzążewski’s Exact Algorithm (2014), which maps adjacent vertices in separate graphs. We are using an undirected weighted graph (as we need to establish weights of the links bt nodes). Any help with this project would be great!

View attachment 275331
Your graphs seem weird to me and possibly not well-thought out. For example, the socializing graph contains actions (talking, meeting, drinking) mixed in with nouns (TV, fireplace, music), and adjectives/adverbs(loud, low-light, by-the-courtyard). The cooking graph has similar problems.

A better idea, IMO, would be to decide what each graph should represent, and each node should be some aspect of what the graph is about. For the socializing graph-- is it activities? If so, then each node in the graph should represent some activity. This would exclude "low light" and "loud" which are not activities, as well as "by-the-courtyard."

When you define the graphs better, maybe combining the graphs would produce something more sensible.
 
  • Like
Likes seel
  • #4
Hi @Mark44, many thanks for your comments. The activities/attributes in the graphs I posted are just an example. I am more interested in finding a good way to merge two or more graphs into one. If you have any idea, it would be helpful! thanks!
 
  • #5
Jarvis323 said:
Can you be more specific about the goal? What are the graphs meant to represent?
we are breaking down usual programatic organisations in house design (living room, bedrooms, kitchen etc.) into activities (eating, slepping, socialising, cooking, storing, playing music etc.). Each of this activity has a number of attributes (silent, private, loud etc.) linked to it with certain weights.
We modeled this by using 1 graph per activity (sleeping etc.) linked to several attributes (loud, private etc.). We are looking for a way to merge all graphs into one (evaluating the wieghts and proximities) to obtain a new spatial configuration for the entire house. I hope it clarifies a bit.
 
  • #6
The algorithms you refer to are not necessary for this problem: merging graphs is easy.

  1. Form a new graph from the union of the nodes in the graphs to be merged. Note that elements of a set are unique so you need to eliminate duplicates (in the example this has been done correctly for e.g. 'loud' but not for 'by the courtyard').
  2. Replicate each edge in each graph to be merged in the new graph (this appears to have been done correctly in the example from a quick inspection).

From your last post, the next stage will be to eliminate the 'attribute' nodes from the merged graph so that 'activities' are linked by edges; you will need to determine a function for combining the weights: this could be a simple sum, or you could investigate the sum of squares (which will favour strong connections) or square roots (which will boost weak connections).
 
  • Like
Likes seel
  • #7
@pbuk great! Many thanks. Will work on it and post back here. Thanks!
 

Related to Combining Graphs: Finding Solutions through Graph Homorphisms

1. What is a graph homomorphism?

A graph homomorphism is a function between two graphs that preserves the structure and relationships between the vertices of the graphs. This means that if there is an edge between two vertices in one graph, there must also be an edge between their respective images in the other graph.

2. Why are graph homomorphisms important?

Graph homomorphisms are important because they allow us to compare and analyze different graphs based on their structural similarities. This can help us understand and classify various types of graphs, as well as provide insights into the behavior and properties of complex networks.

3. How do you determine if a graph homomorphism exists between two graphs?

In order for a graph homomorphism to exist between two graphs, the vertices in the first graph must be mapped to the vertices in the second graph in a way that preserves the edges and their relationships. This can be determined by checking if the function satisfies the conditions of a graph homomorphism, such as preserving the adjacency matrix of the graphs.

4. Can a graph homomorphism be one-to-one?

No, a graph homomorphism cannot be one-to-one because it must preserve the relationships between vertices in the two graphs. This means that multiple vertices in the first graph may be mapped to the same vertex in the second graph, as long as the edges between those vertices are also preserved.

5. Are there different types of graph homomorphisms?

Yes, there are different types of graph homomorphisms depending on the specific properties and structures that are preserved. Some common types include graph isomorphisms, which preserve all properties of the graph, and subgraph homomorphisms, which only preserve a subset of the properties. Other types include edge homomorphisms and vertex homomorphisms, which focus on preserving the relationships between edges and vertices, respectively.

Similar threads

  • Set Theory, Logic, Probability, Statistics
Replies
1
Views
2K
Replies
1
Views
1K
  • STEM Academic Advising
Replies
13
Views
2K
  • Beyond the Standard Models
Replies
2
Views
2K
Replies
24
Views
7K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
1
Views
2K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
1
Views
3K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
5
Views
2K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
1
Views
2K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
1
Views
2K
Back
Top