Hallo, das ist mein früher Entwurf eines Autorouters: https://github.com/TheTesla/z3route/blob/master/routehvd.ipynb Später soll er noch die automatische Platzierung der Bauelemte übernehmen, und zwar Place&Route als integriertes Problem. Auch gleiche Bauelemente im selben Gehäuse soll er später automatisch zuordnen, z. B. wenn 4 OPVs in einem 14-PIN-IC sind. Momentan ist er noch etwas langsam. Vielleicht schreibe ich einmal einen Solver, der das SMT-Problem zunächst in ein SAT-Problem umwandelt (wie in der Anfangszeit der SMT-Solver) und dann mit einem Patternmatching-Ansatz evtl. auch mit Neuronalen Netzen die CNF analysiert und günstige Literale rät. Welche Möglichkeiten gibt es sonst noch den z3 etwas zu beschleunigen? Oder soll ich auf einen anderen Solver zurückgreifen? (Parafrost?) Kann ich den als Backend für z3 verwenden, damit ich nichts am Code ändern muss?
Stefan H. schrieb: > das ist mein früher Entwurf eines Autorouters Herzlichen Glückwunsch :) Unklar ist mir persönlich allerdings was Das werden soll. Constraintsolver für PCBs einzusetzen hat ja eigentlich schon eine lange Tradition. Oft mit dem Ergebniss das die Berechnung zu Costly ist. Das hast Du ja auch schon gemerkt. Wolltest Du etwas Neues ausprobieren? Dann wäre ein Text mit der Idee sehr hilfreich. Ansonsten ist im Zweifelsfall unklar, ob man das Konzept noch nicht verstanden hat oder Du einfach etwas falsch implementiert hast. Und, last but not least, wäre dann auch schneller ersichtlich ob es überhaupt interessant ist. Oder soll das mal ein Tool werden dass Du auch praktisch einsetzen willst? Da frage ich mich aber ob es nicht schlauer wäre den kompletten Solver in eine existierende Umgebung einzubauen um dort die komplette Infrastruktur benutzen zu können. Tools dafür gibt es ja Einige (i.e. KiCad, LibreCAD, Freerouter) un dDu könntest Dich mehr um die "echten" Probleme der Lösung kümmern. /regards
Ich möchte nichts zu deinem Projekt schreiben, jedoch meinen Finger auf die Komplexität des Problems legen. Ein schreckliches Beispiel ist Freerouting in der Version 2. Diese Version 2.x ist kompletter disfunktionaler Blödsinn. Der Author hat zwar das Benutzerinterface etwas verbessert, den eigentlichen Router aber gänzlich zerstört. Z.B. versagt der Router sofort, wenn schon einige Leiterzüge händisch gelegt wurden. Damit hat dieser Entwickler das Projekt nahezu zerstört. Jeder der naiv die Version 2 installiert, denkt, Freerouting ist Unsinn. Dabei funktioniert Version 1.x sehr gut.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.