• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

IT-Talents.de Code Competitions

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
Ich behaupte ich brauche auch relativ viel Speicher für die Optimierung...
Ungefähr...
Ähm...
(Gewicht_in_kg + 1) x (Anzahl_Elemente + 1) x Anzahl_Datenfelder_pro_Element(3)
Und das dann mutmaßlich noch plus den Speicher der ursprünglichen Liste und den Speicher der Ergebnisliste.

Also eine ganze Menge Speicher, die ich da nutze. Und halt
Rechenschritte zum Optimieren und nochmal
Anzahl_Ergebnis_Teile x 2
für einen letzten Schritt.

Das geht mit einer sortierten Liste usw. deutlich ressourcenschonender. Aber ich behaupte, ich komme auf das beste Ergebnis, wenn ich überhaupt auf eins komme (weil der Speicherbedarf halt so groß ist...)
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
  • Thread Starter Thread Starter
  • #142
Also ich hab mittlerweile schon wieder ein paar Dinge ausprobiert, auch das mit dem dazupacken, aber ich komme nicht drauf wie es perfekt geht. - Hut ab davor.

Ich glaube der Ansatz, Dinge die zusammen weniger Wert haben, aus dem Korb zu entfernen und durch ein größeres zu ersetzen, war der beste Ansatz den ich so gehabt habe.

Ständig scheitere ich bei einer / zwei IF-Abfragen...

Mein letzter Ergebnis hat sich minimal verbessert:

[src=text]Round 1...
New gain: + 10 (Total 10) [Weight 78 / Available left: 1 - Replaced: 79]

Round 2...
Result: 128 items, value/weight: 86024 Euro / 4999 kg[/src]

Jetzt sind es eigentlich nur noch 30 € die uns trennen... und das Gewicht ist leider nur (fast) maximal ausgelastet.

Was mich natürlich glücklich stimmt ist die Laufzeit, etwas um eine Sekunde.
 
Zuletzt bearbeitet:

KaPiTN

♪♪♫ wild at heart ♪♫♫♪

Registriert
14 Juli 2013
Beiträge
29.138
Ich glaube der Ansatz, Dinge die zusammen weniger Wert haben, aus dem Korb zu entfernen und durch ein größeres zu ersetzen, war der beste Ansatz den ich so gehabt habe.

Womit ich noch nicht fertig bin, ist, ich bin so träge, beim Austausch die Kombinationen zu berücksichtigen. Wenn ich etwas mit 15 Kg brauche, kann es einen Gegenstand mit diesem Gewicht haben, aber der könne weniger Wert haben, als als z.B. 2 oder 3 andere zusammen, welche zusammen das Gewicht von 15 haben
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
  • Thread Starter Thread Starter
  • #144
Kapitn, eigentlich ist es bei mir glaube ich value over weight

wenn der Gegenstand nichts mehr ersetzen kann durch den Wert und dadurch gewonnene Kilos, können wir nichts mehr optimieren. Jedenfalls in meiner Welt, Roin hat da wohl ne etwas andere :D

Aber auf der anderen Seiten ist glaube ich die letzte Optimierung, die Gegenstände über das Limit dazuzupacken und dann zu entfernen wenn der Wert am Ende höher ausfällt und wir damit wieder im Limit liegen.... aber soweit bin ich noch nicht. Und das Szenario das höhere Ergebnisse liefert als das letzte zu notieren.

Bin aber erst mal froh das es so jetzt schon etwas besser aussieht. Nachdem ich drei bis vier Schritte kombiniert habe ;)
 

MurmeltierS

Neu angemeldet

Registriert
9 Apr. 2017
Beiträge
21
@theSplit:

Sorry wenn das nun ein wenig Offtopic ist.
Du scheinst ja schonmal an einer der Code Competitions teilgenommen zu haben, wann kann man denn mit erstem Feedback zur Abgabe rechnen.

Danke!
Kevin
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
  • Thread Starter Thread Starter
  • #146
@MurmeltierS: Hallo Kevin, also soweit ich weiß nimmt die Auswertung etwas Zeit in Anspruch - es kann also gut 2 Monate dauern bis man Antwort bekommt.

Für die die Competitions steht es auf der jeweiligen Wettbewerbs-Seite:

Für Markdown ist es so:

Abgabetermin:
30. April 2017 - 23:59Uhr

Auswertung:
01. - 23. Mai 2017

Siegerehrung:
Juni 2017

Also frühestens/spätestens im (Mitte?) Juni. Siehe auch hier nochmal (rechte Spalte).
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
@theSplit: Meine Welt passt sich nunmal immer meinen Anforderungen an - und die sind: Der Beste sein!
:D

Allerdings braucht das halt ne ganze Menge Zeit...
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
  • Thread Starter Thread Starter
  • #148
@Roin: Du hast dir aber ein bescheidenes Ziel gesetzt.... :p - kommt gleich hinter der Weltherrschaft :D

Ansonsten bin ich natürlich sehr gespannt, falls du deine Lösung hier veröffentlichen solltest, wie diese aussieht und ob einem noch Tricks dazu einfallen, wie man die Laufzeit und den Speicherverbrauch noch senken kann.

Auf der anderen Seite, bevor es soweit kommt, sind ja noch ein paar Tage, ist ja eine relativ kurze Arbeitswoche... eventuell kannst du dich ja über Javascript "Optimierung" einlesen - was Datenstrukturen angeht, Schleifen und Indexierung und Ansprechen von Listenelementen, und (Pre)-Caching usw.. noch einlesen und versuchen darüber noch etwas zu optimieren.

Im übrigen könntest du auch NodeJS antesten, wie die Laufzeit in der Umgebung wäre. Ich hab mal versucht etwas mit Electron zu machen, war mir zu kompliziert auch wenn es da ein Beispiel gab, aber in NodeJS kannst du deinen Code theoretisch eins zu eines übernehmen, kannst aber auch Ergebnisse zwischenspeichern auf Festplatte zum Beispiel. Und du hast nicht die Umgebung des Browsers, der das ganze vielleicht noch einschränkt. Und die API von NodeJS ist einfacher als die von Electron ;)

Ich versuche noch mal das was ich im Spoiler angekündigt habe wenn alles rund läuft. Im übrigen ist die Laufzeit jetzt bei ~350 - 460 Millisekunden, da ich noch ein Break hinzugefügt und nur weitersuche, wenn der höherwertigere mit Gewicht X (absteigend im Wert nach Gewicht) auch eingepackt worden ist. :)
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
eventuell kannst du dich ja über Javascript "Optimierung" einlesen - was Datenstrukturen angeht, Schleifen und Indexierung und Ansprechen von Listenelementen, und (Pre)-Caching usw.. noch einlesen und versuchen darüber noch etwas zu optimieren.

Mutmaßlich werde ich das nicht mehr tun. Ich muss noch 5 Zeilen oder so anpassen, damit die HTML etwas vernünftig aussieht aber mehr werde ich nicht tun - da ruft dann leider doch die richtige Arbeit ;-)
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
  • Thread Starter Thread Starter
  • #150
@Roin: Jupp, die richtige Arbeit hat natürlich den Vorrang und die Challenge soll ja auch Spaß bleiben... aber wenn du so nen doch mächtigen Algorithmus hast, kann man vielleicht schnell diverse Ideen zur Optimierung testen, so weit möglich, und eventuell lohnt es sich. Stellst du deinen Code hier dann, wenn die Challenge quasi um ist, rein bzw. auch auf Github? Oder wird das ein Geheimnis bleiben wie du es gelöst hast? ;)
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
@theSplit: Wenn ich dran denke, kann ich den hier ja mal hochladen.
Ich habe vor eben mal gegooglet, ob es denn noch einen Algorithmus gibt, der besser zu sein scheint. Ich habe keinen gefunden :P
Mutmaßlich habe ich mir die gleichen Gedanken gemacht wie der Herr, mit dem Musteralgorithmus. Ist doch auch eine schöne Erkenntnis.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
  • Thread Starter Thread Starter
  • #152
@Roin: Wäre nett. Ich würde halt gerne sehen welche Taktik/Strategie du fährst.

Ich bin aber auch noch guter Dinge das ein "pack dazu" entferne alles was kleiner ist an Wert, teste ob wir am Ende im Maximalgewicht liegen bzw. mit dem teuersten anzufangen und uns runter in das Gewicht zu arbeiten in dem wir landen wollen, notiere den Wert der Runde falls höher als der vorherige, was auch fruchten könnte.

Natürlich weiß ich nicht ob die Technik das optimale Ergebnis bringt, so wie du es hast, aber das würde ich noch einmal versuchen.

Ich habe bei meiner letzten Optimierung auch mehrere For Schleifen über alle "relevanten" Elemente gemacht, und trotzdem war die Zeit noch annehmbar, denke ich. Also kann man ruhig etwas mehr loopen und testen... besonders wenn nach Gewicht und absteigend Wert sortiert ist innerhalb der Gewichtsklasse.

Edit: Bisher teste ich ja immer nur ob wir noch im Maximalgewicht liegen, das ist aber wohl ein Fehler. ;)
 
Zuletzt bearbeitet:

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
  • Thread Starter Thread Starter
  • #153
An dieser Stelle nur eine kurze Information:

Die Mai Competition endet in zwei Tagen, bitte vergesst nicht eure Lösungen abzugeben!

[src=text]Abgabetermin:
31. Mai 2017 - 23:59Uhr[/src]

Also, nicht vergessen. ;)
 

KaPiTN

♪♪♫ wild at heart ♪♫♫♪

Registriert
14 Juli 2013
Beiträge
29.138
Der Ansatz mit der Sortierung nach Bewertungsindex reicht für eine Annäherung.
Dann in einem nachträglichen Durchgang eine Korrektur durchzuführen um die Lücke zum Maximalgewicht gewinnbringend auszufüllen, war keine gute Idee. Da gibt es so viele Möglichkeiten zu prüfen, daß man das auch direkt als Ansatz wählen kann.

Um sicher das Optimum zu bestimmen, muß man wohl alle Möglichkeiten testen. Um da sich wiederholende Berechnungen einzusparen, war es hilfreich, noch einmal die Theorie der dynamischen Programmierung nachzulesen.
Das Ergebnis von 86057 bei den 25.000 Artikeln habe ich jetzt auch aber der Code gefällt mir nicht. Statt Schleifen müßte da eigentlich auch Rekursion möglich sein. Aber um schönen Code ging es mir ja nicht.
 

MurmeltierS

Neu angemeldet

Registriert
9 Apr. 2017
Beiträge
21
Und, wie sieht's aus?
Haben alle abgegeben?

--- [2017-06-01 19:22 CEST] Automatisch zusammengeführter Beitrag ---

Und, wie sieht's aus?
Haben alle abgegeben?
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
  • Thread Starter Thread Starter
  • #156
Code Competition für Juni 2017: Chatbot und maschinelles Lernen

Ich möchte an dieser Stelle wieder auf die neue Competition Hinweisen:

Thema: "Chatbot und maschinelles Lernen - Bist Du eher der Frontend-Typ? Oder doch der Backend-Evangelist?" (Juni 2017)

Am Anfang des Entwicklerdaseins steht oftmals die Frage nach der Wahl des zukünftigen Themenschwerpunkts. Möchte man am Puls der Zeit bei der Anwenderinteraktion über diverse Frontendtechnologien (native App, HTML Webseiten) sein? Z.B. mittels responsiver Webseiten oder native Apps oder Richclients? Hat man Lust auf komplexe Algorithmen und Datenoperationen im Backend, z.B. im BigData Umfeld, der Serverarchitektur oder im Umgang mit Datenbanken? Diese Frage lässt sich für viele Personen - je nach Vorwissen und Background - unterschiedlich beantworten.

Und hier setzt die aktuelle Code Competition an: Entwickle Deinen eigenen Chatbot, der durch geschicktes Fragen herausfindet, welchen Entwicklerschwerpunkt für den Einstieg der jeweiligen Person am besten geeignet ist.

Quelle: IT-Talents.de Wettbewerbs-Seite

Wie immer gibt es auch hier etwas zu Gewinnen!

Einsendeschluss ist der:
[src=text]Abgabetermin:
30. Juni 2017 - 23:59Uhr [/src]

Und hier geht es zum Wettbewerb: https://www.it-talents.de/foerderung/code-competition/code-competition-06-2017

Allen die sich an dieser Competition beteiligen möchten: viel Spaß und Erfolg! :)



----

Etwas eigene Meinung zur Organisation drumherum:

Was glaube ich mehr oder minder aufgefallen ist in den letzten Competitions:
Strategien, Tools, Frameworks/Libs oder generelle Ideen und Tips können gern ausgetauscht werden - nur fertiger Code/Code Abschnitte sollten vielleicht erst nach Ablauf der Competition gepostet werden um anderen nichts vorweg zu nehmen.

Alte Competitions und Code soll natürlich auch weiterhin besprochen werden, aber dann sollte man schreiben auf was sich das Posting bezieht, so fern nicht direkt ersichtlich.
 

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.730
Ort
in der Zukunft
@Organisation - dafür, bzw. einfach so weiter machen - läuft finde ich super :)
Wenn ich doch mehr Zeit hätte *schnief* ... hätte das mit dem Rucksack gerne mal in Powershell umgesetzt :D
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
Und, wie sieht's aus?
Haben alle abgegeben?
Jop.

@theSplit: Ich denke an dieser Code-Competition werde ich nicht teilnehmen.
Die Zeit wäre da - doch mir fehlt da ein wenig der Ansatz. Man muss ja irgendwie die Eingabe des Nutzers interpretieren und dann weiter vorgehen.
Da habe ich wohl erstmal weniger Lust drauf.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
  • Thread Starter Thread Starter
  • #159
@MurmeltierS: Hab ebenfalls abgegeben :)

@Roin: Ich habe so etwas auch noch nie gemacht und bin in dem Feld auch nicht wirklich breit aufgestellt. Wenn man schon ein Fundus an Daten hätte, mit denen man arbeiten können sollte, wäre das definitiv einfacher. So ist das alles etwas, "sehr weit offen" in der Tat.

Vermutlich steht und fällt alles mit den Fragen und also auch "wie" man fragt:
(ja/nein + Multiple Choice) - und daraus soll ein Profil errechnet werden
+ aus ganzen Fragen und kompletten Antworten, anhand einer "Buzzword" Liste (Deutsch + Englisch)? Nach denen eine Antwort durchsucht und bewertet wird?

Und man nimmt sich 20 Referenztexte, ein Teil über Frontend und der Rest über das Backend.. und schon hat man einen Datenbasis mit der man sein Programm "abrichten" könnte. Natürlich ergeben sich Fragen auch aus den Antworten, vielleicht muß man das auch dann irgendwie "mischen" um gute Ergebnisse zu haben. Wäre meine spontane Idee.

Kann natürlich auch sein das ich mir das zu leicht vorstelle. :)
 
Oben