2016-04-24 3 views
5

Ein n-Kohlenstoffaliphatisches Alkan ist ein unbewurzelter Baum, der aus n Knoten besteht, wobei der Grad jedes Knotens am meisten 4 ist. Als Beispiel, see this für eine Liste der Aufzählung einiger niedriger Werte von n.Zählen isomerer n-Kohlenstoffaliphatischer Alkane

Ich suche nach einem Algorithmus, um die Anzahl solcher n-Kohlenstoffaliphatische Alkane zu berechnen, gegeben ein n.

Ich habe seen this in der Chemie Stackexchange bereits. Ich habe auch an eine dynamische Programmierung gedacht, d. H. An das Erzeugen größerer Graphen von kleineren Komponenten, aber ich kann nicht mit der Überzählung derselben Isomere umgehen.

Klarstellung: Die Kohlen sind nur eine Metapher. Ich möchte die Instabilität von C16 und C17 nicht berücksichtigen, und interessiere mich auch nicht für Stereoisomere

+0

Dies ist ein sehr cooles Algorithmus-Problem. Aber hier gibt es ein Element, das deine Frage abstimmen wird, weil es nicht direkt um Code geht und du nicht viel getan hast, um zu erklären, was du bereits versucht hast. Sie sollten auch den Mathetausch in Betracht ziehen. – Gene

+0

@Gene Es geht nicht um Code, sondern um Algorithmen. Ich dachte, dass Algorithmusfragen in StackOverflow akzeptabel sind. Denkst du, dass ich davon profitieren würde, indem ich dies zu cs.stackexchange verschiebe? –

+2

Ich stimme dir zu, dass Algorithmen hier einen (großen) Platz haben. Ich sage nur, dass es in letzter Zeit einen Trend zu Fragen gibt, bei denen nur der Algorithmus abweicht, der keinen Code enthält. Schau was passiert. Ich poste etwas, wenn ich eine nützliche Antwort finden kann. – Gene

Antwort

3

So ist der Standardansatz, das Redfield–Pólya Theorem auch bekannt als der Pólya-Enumerationstheorem zu verwenden. Es ist jedoch nicht sehr "algorithmisch" - Sie haben den Code like this (die Mathematica, Haskell oder eine der Python-Versionen).

Die Rosettacode-Seite beschreibt auch einen direkteren Ansatz unter Verwendung von canonical checking, um Duplikate zu vermeiden. Der Algorithmus ist eine spezielle Form der geordneten Erzeugung (ich denke), die nur für Bäume ohne Eckpunkt der Randfarben und eine maximale Wertigkeit von 4 funktioniert.