|
|
|
|
Habe leider gerade keine Zeit das genauer auszuarbeiten, aber ein paar Ideen:
Mit k konstant gibt es nur polynomiell viele Möglichkeiten, die Partitionen zu wählen, damit ist das Problem offenbar nicht np vollständig.
Ich bezweifle, dass greedy hier korrekt ist, betrachte zum Beispiel die Sequenz "k, (1 + e) k, k, k, (2 - e) k" die durch drei geteilt werden soll und bei der für kleine epsilon die optimale Lösung gegen 0 geht, die greedy Lösung aber für große k beliebig schlecht ist.
Ohne eine konkrete Idee zu haben würde ich schätzen das Problem ist mit dynamischer Programmierung ähnlich wie man knapsack löst machbar.
Vielleicht hilft dir das ja weiter
e/ Du scheinst den Namen des Problems gefunden zu haben, viel besser!
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von B0rG* am 06.11.2014 0:07]
|
|
|
|
|
|
Greedy ist ja eher selten optimal (aber oft "gut genug", gerade weil es idR schneller als optimale(re) Algos is, einfacher implementiert is etc.), deswegen schrieb ich auch "vielleicht mittels Greedy halbwegs akzeptabel je nach Eingabedaten lösen"
|
|
|
|
|
|
|
Optimal (in Bezug auf die objective) ist optimal, da gibt es keinen Komparativ.
|
|
|
|
|
|
|
Moin.
Ich versuche gerade mein erstes PCB zu designen.
Kann da mal jemand* drauf gucken ob das schon halbwegs brauchbar aussieht oder ob ich das ganz anders machen muss?
Es ergab sich vor einiger Zeit die Gelegenheit günstig an Nixie-Röhren zu kommen und meine bessere Hälfte fragte mich ob ich ihr zu Weihnachten eine Uhr daraus bauen könnte.
FPAQ:
- Ja, da ist ein Display dran. Es ginge auch ohne, aber die kosten ja nur 95 Cent.
- Die gezeichneten Anschlüsse sind für IN-14 gedacht, ich werde aber vermutlich noch ein paar Löcher dazu machen damit auch Z570M passen.
- Die freien Plätze an den Schieberegistern sollen noch kleine Nixie-Punkte (IN-3) und LEDs (zur Beleuchtung) oder Sonderzeichen-Nixies (Z571M) befeuern, die freien Flächen werden also noch mit Bauteilen angereichert.
- Statt Kicad könnte ich auch Eagle oder Diptrace nehmen, aber ich habe keine ordentliche Lizenz
Klick führt zu Schaltplan, größeren Bildern die VCC oder GND hervorheben und SVGs der verschiedenen Layer:
*rats?
|
[Dieser Beitrag wurde 4 mal editiert; zum letzten Mal von Rootsquash am 06.11.2014 15:50]
|
|
|
|
|
|
- Hast du dir Gedanken übers Gehäuse gemacht? Die Nixies sitzen in der Mitte der Platine, also ist immer ein Schaltungsteil vor den Nixies.
- Der Schaltplan ist nicht gut gezeichnet: Benutze Supply-Symbole statt ausufernde GND/VCC-Netze über den Schaltplan zu ziehen
- TTL/CMOS gemischt klappt hier, da CMOS TTL treibt (TTL an AVR-Eingängen klappt aber auch meist, da AVRs tolerantere Pegel als Standard HCMOS haben)
- Für jedes Supply-Pin-Paar (Vcc/GND) wird ein 100 nF keramischer Kondensator so nah wie möglich an den Pins platziert. Insbesondere bei Oszillatoren, MCUs und allen Arten von Treibern.
- Das Vcc-Netz Richtung '595 solltest du nochmal neu routen, da wird es eine erheblich kürzere Möglichkeit geben. Etwas dicker schadet vielleicht auch nicht.
- Dito für das GND-Netz. Du machst einen großen U-Bogen, obwohl da gar nix im Weg ist. GND auch bitte dicker.
- Wenn du selber ätzt kriegst du ggfs Probleme mit den Traces zwischen zwei Pins.
- GND kann solltest du hier bei so viel leeren Platz als Fläche machen (riesiger Querschnitt, spart Ätzmittel)
Schaltplan:
- Du kannst ein Schieberegister sparen
- Schieberegisterverschaltung sieht richtig aus
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von csde_rats am 06.11.2014 13:35]
|
|
|
|
|
|
- Willst du die Platine fertigen lassen oder selber ätzen? Ich behaupte mal, man bekommt die Platine auch einseitig mit nur wenigen Brücken geroutet. Wird beim selber ätzen erheblich einfacher.
- Abblockkondensatoren! (100n zwischen VCC und GND an allen ICs)
- Massefläche! (spart Ätzmittel und ist schön niederohmig)
- VCC deutlich breiter machen (zumindest zu den Versorgungspins der ICs)
- Hat das einen bestimmten Grund, warum du die Röhren in die Mitte setzt? Das ist von der Leitungsführung extrem unangenehm.
|
|
|
|
|
|
|
| Zitat von csde_rats
- Hast du dir Gedanken übers Gehäuse gemacht? Die Nixies sitzen in der Mitte der Platine, also ist immer ein Schaltungsteil vor den Nixies.
| |
Ja, das ist Absicht, damit es nachher etwa so aussieht: http://www.a-reinert.de/NIXIE_Uhren/Nixie_Uhr_IN-14_ARN6_ZSB_1.JPG
| Zitat von csde_rats
- Der Schaltplan ist nicht gut gezeichnet: Benutze Supply-Symbole statt ausufernde GND/VCC-Netze über den Schaltplan zu ziehen
| |
Ja, das mit den Symbolen habe ich erst später rausgefunden, ändere ich noch.
| Zitat von csde_rats
- TTL/CMOS gemischt klappt hier, da CMOS TTL treibt (TTL an AVR-Eingängen klappt aber auch meist, da AVRs tolerantere Pegel als Standard HCMOS haben)
- Für jedes Supply-Pin-Paar (Vcc/GND) wird ein 100 nF keramischer Kondensator so nah wie möglich an den Pins platziert. Insbesondere bei Oszillatoren, MCUs und allen Arten von Treibern.
| |
Am AVR waren noch welche geplant, die Treiber hätte ich so gelassen. Ups.
| Zitat von csde_rats
- Das Vcc-Netz Richtung '595 solltest du nochmal neu routen, da wird es eine erheblich kürzere Möglichkeit geben. Etwas dicker schadet vielleicht auch nicht.
- Dito für das GND-Netz. Du machst einen großen U-Bogen, obwohl da gar nix im Weg ist. GND auch bitte dicker.
| |
Dieses U habe ich gewählt um den Datenleitungen zu folgen, das "direkter" zu verbinden sollte aber kein größeres Problem sein, auch wenn da noch ein paar Bauteile dazu kommen.
| Zitat von csde_rats
- Wenn du selber ätzt kriegst du ggfs Probleme mit den Traces zwischen zwei Pins.
| |
Ich dachte an PCB-Pool, habe leider keine Möglichkeit das selbst zu machen.
| Zitat von csde_rats
- GND kann solltest du hier bei so viel leeren Platz als Fläche machen (riesiger Querschnitt, spart Ätzmittel)
| |
Ich wollte das später "auffüllen", habe aber noch nicht den richtigen Knopf dafür gefunden.
| Zitat von csde_rats
Schaltplan:
- Du kannst ein Schieberegister sparen
- Schieberegisterverschaltung sieht richtig aus
| |
Ich habe extra ein Schieberegister mehr verbaut damit ich noch LEDs unter die Nixies und/oder Trennsymbole zwischen Minuten und Stunden/Sekunden setzen und ansteuern kann.
Vielen Dank
|
|
|
|
|
|
|
|
|
|
|
Oh, das probiere ich nachher mal aus.
das kriege ich nicht dicker :-/
|
|
|
|
|
|
|
Klar, wenn du die Trae nicht zwischen 5/6 durchführst, sondern zwischen den Treibern unten abzweigst und zwischen 595 und 141 durchführst.
|
|
|
|
|
|
|
Du musst doch nur die Leiterbahn durch die Lasche ziehen, und mit dem Ground den Strom dann nach unten ziehen... *summ*
|
|
|
|
|
|
|
| Zitat von csde_rats
Klar, wenn du die Trae nicht zwischen 5/6 durchführst, sondern zwischen den Treibern unten abzweigst und zwischen 595 und 141 durchführst.
| |
Tomaten auf den Augen.. Danke.
|
|
|
|
|
|
|
| Zitat von Klappfallscheibe
- Abblockkondensatoren! (100n zwischen VCC und GND an allen ICs)
| |
| Zitat von csde_rats
- Für jedes Supply-Pin-Paar (Vcc/GND) wird ein 100 nF keramischer Kondensator so nah wie möglich an den Pins platziert. Insbesondere bei Oszillatoren, MCUs und allen Arten von Treibern.
| |
So?
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Rootsquash am 06.11.2014 15:48]
|
|
|
|
|
|
Im Prinzip ja, aber
- C_U5 wird definitiv nicht hinpassen
- für Hobby/Einmalaufbauten kann man sich da verbessern und gleichzeitig Platz sparen, indem man die Abblockkondensatoren auf der Lötseite direkt an die IC-Pins lötet. Es gibt Leute, die bei solchen Techniken immer gleich frei drehen "Neeeeein! UNSAUBER!!ELF!". Ich sage dazu nur: Industrieanforderungen =/= Hobbyanforderungen
- Das Layout geht im Detail (viele Layerwechsel der Versorgung, Zickzack-Führung der 595 Vcc) noch besser. Tipp: Entferne in dem Bereich nochmal alle Traces, schau ihn dir in Ruhe ohne Traces an und fang dann mit dem Layout in dem Bereich nochmal neu an. Versorgung kommt zuerst.
|
|
|
|
|
|
|
Uff, wenn ich das nochmal auseinander rupfe und neu mache wähle ich vielleicht wieder eine Lösung mit Vias: Die Leitungen von der Nixie-Röhre zum 74141 führen ja 150 bis 170 Volt wenn sie "aus" sind.. und die kommen da recht nah an GND ran.
Dann wird das aber wieder breiter, wodurch das Gehäuse breiter wird.
Statt dieser 74141, für deren Pinbelegung irgendwer getreten werden sollte, kann man auch mehr Schieberegister und SMD-Transistoren nehmen:
http://www.a-reinert.de/NIXIE_Uhren/Nixie_Uhr_IN-14_ARN3_Sockelplatine_unten.JPG
Aber der gute Mann verkauft nur noch die Einplatinen-Version wo dann auch die Peripherie des µC vorgegeben ist, die gefällt mir nicht.
So eine in die Finger zu kriegen würde das alles vereinfachen, auch wenn das Gehäuse dann höher wird: http://www.a-reinert.de/NIXIE_Uhren/Nixie_Uhr_IN-14_ARN4_Sockelplatine_roh.JPG
Wenn ich das in Kicad nachbauen könnte wäre das eine Lösung...
/e: Bild zu groß
|
[Dieser Beitrag wurde 3 mal editiert; zum letzten Mal von Rootsquash am 06.11.2014 18:11]
|
|
|
|
|
|
Der 74141 hat Z-Dioden an den Ausgängen mit Spannungen um ~70 V. Mehr als 70 V können also nicht zwischen Ausgang und GND anliegen.
SMD löten ist btw. nicht sonderlich schwer und Einzeltransistoren oder MOSFETs sind einfacher zu beschaffen und ggfs günstiger als veraltete TTL-Chips.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von csde_rats am 06.11.2014 18:21]
|
|
|
|
|
|
| Zitat von Drengidal
Danke, csde_rats und block0ma werd mich da nochmal genauer einlesen.
| Zitat von csde_rats
Partitionsproblem in geordnet?
Das kann man vielleicht mittels Greedy halbwegs akzeptabel je nach Eingabedaten lösen:
- Summe der Eingabe
- Summe durch Anzahl der Partitionen Teilen
- Greedy-Schritt: Vergrößere Partition solange, bis Differenz zum Wert aus 2) minimal ist. Dann zur nächsten.
(e: dieser Algo liefert für 1-3-2-4-5 und 3 Partitionen schonmal 1-3 2-4 5
| |
Ja in geordnet ist wohl der Knackpunkt.
Ich hab also kein Set aus dem ich die Zahlen verteile sondern ein Array oder Liste das ich zerschneide auf mehrere Teil Stücke.
Zudem hab ich noch nichts finden können. Und Google ist leider nicht sehr hilfreich.
Deine Vorgehensweise mit Greedy war auch mein erster Ansatz,
frag mich nur ob es da nicht geschicktere Lösung gibt.
E: Partition problem hat mich dann zu linear parition problem geführt.
Das scheint das für mich relevante zu sein, mal genauer einlesen.
Danke
| |
Falls es jemanden interessiert, die Lösung die ich gefunden habe wäre diese:
Stack Overflow Thread
Der Algorithmus ist aus dem Buch, Buch Seite 297
löst das Problem, indem das Maximale Zahl pro Abschnitt gering bleibt, aber garantiert keine Gleichmäßige Verteilung.
Beispiel:
n=10 k =10
1,6,6,3,2,1,2,1,3,1 wird zu
0,0,0,0,1,6,6,3,5,5
Aber für meine Sache tuts es.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Zitat von csde_rats
Der 74141 hat Z-Dioden an den Ausgängen mit Spannungen um ~70 V. Mehr als 70 V können also nicht zwischen Ausgang und GND anliegen.
SMD löten ist btw. nicht sonderlich schwer und Einzeltransistoren oder MOSFETs sind einfacher zu beschaffen und ggfs günstiger als veraltete TTL-Chips.
| |
Ah, dann wird die Spannung in der Röhre einfach weit genug unter der Zündspannung gehalten und das bischen Strom das ohne selbsterhaltende Entladung fließt abgeleitet, garnicht so dumm.
Benötigt werden sie aber, so weit ich weiß, nicht. Der a.reinert zum Beispiel nimmt ja einfach SMBTA 42 (5 Cent pro Stück)
Mh, SMD-Löten sollte irgendwie klappen, ja.
Ich weiss aber noch nicht so richtig wie ich das in kicad bauen soll, die Bauteile lassen sich so weit ich weiß nur in Schritten von 45° drehen.
Ich könnte versuchen einen Footprint für die Röhre zu erstellen der schon die passenden Pads für die Transistoren beinhaltet, aber das wird nicht einfach.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Rootsquash am 07.11.2014 13:48]
|
|
|
|
|
|
|
|
|
|
Ich habe folgende Aufgabe zu lösen:
Jetzt bin ich mir nicht ganz sicher, ob meine erste oder meine zweite Rechnung richtig ist :
oder
|
|
|
|
|
|
|
Ehrliche Frage: was ist das?
|
|
|
|
|
|
|
...wat?
Was ist a1? Was soll die wahre Aussage darunter?
The mature approach was SOLID. What was plan B? - Torture Barbie until my demands were met.
|
|
|
|
|
|
|
Ja echt. wtf.
|
|
|
|
|
|
|
Ich wage mich mal vor und tippe auf "Rechnen im Zahlensystem zur Basis 53"
|
|
|
|
|
|
|
Nur nochmal zum Mitschreiben: Nur, weil ein Aufgabentyp in deiner Vorlesung/Seminar/whatever immer im gleichen Format gestellt wird, ist das weder zwingend eine Standardaufgabe, noch die Notation eindeutig.
Hast du entdeckt, dass Frauenbeine keine Tischbeine sind? Na bravo!
|
|
|
|
|
|
|
|
|
|
|
| Zitat von Achsel-des-Bösen
Ich wage mich mal vor und tippe auf "Rechnen im Zahlensystem zur Basis 53"
| |
Es ist sogar ein Körper! \o/
Reality is frequently inaccurate.
|
|
|
|
|
|
|
woops
Sonntag eben
Bei F handelt es sich um einen Körper mit der Basis 53
a1 steht für Aufgabe eins.
Ich soll also 97 in der Körper mit der Basis 53 einordnen
|
|
|
|
|
|
Thema: pOT-lnformatik, Mathematik, Physik XVII ( Code drunk, debug sober! ) |