Sylvestersche Siebformel/Berechnen der Teilmengen |
30.09.2013, 10:13 | Hm... | Auf diesen Beitrag antworten » | ||||||
RE: Silvestersche Siebformel/ Berechnen der Teilmengen ich versuche gerade die Silvestersche Siebformel zu implementieren, schaffe es aber nicht einen passenden Algo. für folgendes problem zusammen zu basteln: gegeben: Eine Menge M von Ereignissen und eine natürliche Zahl k Gesucht: Alle Teilmengen N von M mit |N|=k habt ihr eine idee? Zwei Beiträge zusammengeführt. Steffen eigendlich suche ich direkt ne idee wie man die silvestersche siebformel implementieren könnte ohne das es viel laufzeit verbraucht... meine idee wäre: M={p1,p2,....,pk} k=1: trivial k=2: p1*p2, ..., p1*pk, p2*p3, ..., p2*pk, ... , p(k-1)*pk k=3: wie k=2 nur das immer der letzte indize verschoeben wird aber das sieht schon so nach hoherlaufzeit aus ^^ meine grundlegende methode wäre: private static Double silvesterscheSiebformel(Double[] probilitys) { Double p=0.0; for(int k=1;k<=probilitys.length;k++) { Double z = (k % 2 == 0 ? -1.0 : 1.0); Double n = 0.0; ArrayList<Double> kombis = getKombisNew(probilitys,k); for(int i=0; i<kombis.size(); i++) { n += kombis.get(i); } p += z * n; } return p; } in getKombisNew berechne ich die entsprechenden produkte (was derzeit nicht funktioniert).... |
||||||||
30.09.2013, 11:19 | HAL 9000 | Auf diesen Beitrag antworten » | ||||||
Hier sprichst du davon, dass du Teilmengen suchst - später dann berechnest du aber irgendwelche Wahrscheinlichkeiten? Reichlich verworren. In dieser Form passt das eben überhaupt nicht zu dem, was du im folgenden dann ausführst. Ich versuche mal zu "übersetzen", was du allem Anschein nach wirklich willst:
Die Siebformel ist das richtige Mittel für dieses Problem, wenn die Wahrscheinlichkeit aller möglichen Durchschnitte der bekannt bzw. leicht berechenbar ist - soweit hast du Recht, und damit könnte man die hier auch theoretisch gut anwenden. Allerdings ist die Siebformelanwendung hier der reinste Berechnungsoverkill, da es ja auch wesentlich einfacher geht: Bei deinen Voraussetzungen sind ja auch die Gegenereignisse unabhängig, es folgt sofort . ------------------------------ Eine andere Vermutung wäre noch diese - die liegt näher an deiner oben zitierten Problemstellung, ist aber in deinem Programm-Quelltext gar nicht mehr erkennbar:
Das haben wir vor nicht allzu langer Zeit hier diskutiert Wahrscheinlichkeit auf n Erfolge bei unterschiedlichen Wahrscheinlichkeiten ebenfalls völlig ohne Siebformel. Nicht dass ich was gegen diese Formel habe (frag mal Mystic ), aber nicht überall ist es sinnvoll und effizient, auf sie zu bauen. |
||||||||
30.09.2013, 11:49 | Hm... | Auf diesen Beitrag antworten » | ||||||
danke, das funktioniert! ich habs vorher mit den bonferoni ungleichungen versucht (aber die sind ganz schöner mist!): private static Double bonferroniUngleichungen(Double[] probilitys) { Double p = 0.0; Double overbound = 0.0; Double underbound = 0.0; for(int i=0; i<probilitys.length; i++) { overbound += probilitys[i]; //underbound += probilitys[i]; for(int j=0; j<i; j++) underbound -= ( probilitys[i] + probilitys[j] - probilitys[i] * probilitys[j]); } System.out.println("obere schranke: "+ overbound + " untereschranke: "+ (overbound + underbound)); p = Math.abs(2*overbound + underbound) / 2; return p; } die liefern für die eingabe {0.5,0.5,0.5} ein intervall von [1.5,-0.75] |
||||||||
30.09.2013, 11:57 | HAL 9000 | Auf diesen Beitrag antworten » | ||||||
Ich hatte eigentlich erwartet, dass du mal Licht in das Chaos deiner Problemstellung bringst, d.h. verständlich äußerst, was deine wirkliche Problemstellung ist (ich hab ja zwei zur Wahl gestellt, aber es ist ja vielleicht eine ganz andere). Das sollte doch bei dieser anscheinend doch ziemlich übersichtlichen Situation möglich sein - ist es zuviel verlangt, das zu erfahren? |
||||||||
30.09.2013, 12:05 | Hm... | Auf diesen Beitrag antworten » | ||||||
achso, dass hatte ich überlesen, sorry mein problem war jenes, welches du zuerst vorgestellt hast. konkret: Gegeben waren verschiedene wahrscheinlichkeiten , und gesucht war die wahrscheinlichkeit, dass dieser kunde mindestens einmal im zeitraum t=1,...,n in das geschäft geht wobei die wahrscheinlichkeit dafür ist, dass ein vorherfestgeleter kunde an einem Tag i in ein geschäft geht. diese habe ich über einen markovgraphen berechnet (was ziemlich aufwendig war) |
||||||||
30.09.2013, 14:08 | HAL 9000 | Auf diesen Beitrag antworten » | ||||||
Dann also doch das einfache Problem ... Ok.
Ein leichtes Stirnrunzeln befällt mich bei dieser Beschreibung (speziell dem Verweis auf "Markovgraph") dann doch: Sobald es irgendwelche Abhängigkeiten zwischen den zugehörigen Ereignissen ... Kunde betritt an Tag das Geschäft gibt, ist die obige Formel null und nichtig, das ist dir hoffentlich in aller Deutlichkeit bewusst! |
||||||||
Anzeige | ||||||||
|
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |