Tävlingsuppgift 2018

Challenge_ny-01[1]

Årets uppgift går ut på att lägga till rader i en loggningstabell så att loggningen blir komplett enligt ett förutbestämt intervall.

Figur1
Figur 1 – Tabellen dbo.Parameters

Det finns en tabell dbo.Parameters som innehåller ett valfritt antal produktionslinjer och varje produktionslinje har sitt eget intervall (angivet i minuter) för hur ofta det ska finnas rader i loggningstabellen. Varje produktionslinje kan ha allt från några tusen rader till flera miljoner rader, oavsett vilket intervall de har.

Figur2
Figur 2 – Tabellen dbo.Values

Som ni kan se är det dock inte alltid så att värdena kommer in på sekunden, eller ens på minuten. Exemplet ovan bygger på att loggningsvärdena för AssemblyLine C kommer var 30:e minut. Första gången kom den 5 minuter och 2 sekunder sent. Andra gången 13 minuter och 5 sekunder sent. Tredje gången 11 minuter och 14 sekunder sent. Fjärde gången 6 minuter och 8 sekunder sent.
Det inte förekomma dubbla loggningar för samma tidsperiod.

Uppgiften går ut på att identifiera vilka produktionslinjer som har ofullständiga loggningar enligt det förutbestämda intervallet samt att föra in de saknade loggningsraderna.

För samma exempel nedan så saknas tidsangivelsen 1905-05-18 13:30:00, eftersom AssemblyLine C har ett intervall på 30 minuter.

Figur3

Du ska hitta alla dessa saknade loggningar och lägga in dem i tabellen (exakt enligt intervallet) så att det ser ut som följer.

Figur4

Skript för att skapa tabeller samt viss testdata finns att hämta hem här.

Årets tävlingsuppgift är konstruerad av Peter Larsson.

Vinnare är det tävlingsbidrag som ger rätt resultat och är snabbast, d v s har lägst duration. Högsta tillåtna antal tävlingsbidrag per deltagare är tre. Tävlingsbidragen testkörs först på en laptop för att verifiera att lösningarna ger rätt resultat. Tidtagningen sker på en Azure P11. Vinnaren kommer att tillkännages vid årsmötet 2018 och då kommer vinnaren också förklara och gå igenom sin lösning.

Ditt tävlingsbidrag ska bestå av ett fungerande skript som ska gå att köra i sin helhet. Datat som tävlingen körs på kan komma att utökas både med fler AssemblyLines och fler loggningsrader.

Frågor, förtydliganden?

Använd kommentarstråden här nedanför om du behöver hjälp med tolkning av uppgiften eller om det är något annat du undrar över!

När du känner dig klar

Skicka in ditt lösningsförslag här!

3 thoughts on “Tävlingsuppgift 2018

  1. Hej,

    Kul tävling! Jag har inte deltagit tidigare, men skall försöka åstadkomma ett bidrag i år.

    En fråga:
    Kommer det kunna förekomma andra intervall än de som finns med i exempeldatat? Alltså, kan det vara vilken integer som helst, eller kommer det alltid vara något av värdena som nu finns i exempeldatat (5,15,30,45,60,90,120,180,720,1440)?

    Gilla

Skriv något snällt om den här artikeln!

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+-foto

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s