Generera uppspelningssekvenser av låtar med Constraint Satisfaction Programming

Josefin Nilsson

Sammanfattning

Med rätt låt vid rätt tidpunkt kan uppspelningssekvenser av låtar uppfylla de två grundläggande egenskaperna av en bra musiklyssningsupplevelse: önskan för upprepning och önskan för överraskningar. Många företag spelar musik kontinuerligt i deras lokaler med automatisk uppspelningsordning, och för dem kan en bra musikupplevelse förbättra den generella kundbelåtenheten samt öka försäljningen. Det här är något som Soundtrack Your Brand, ett musikstreamingföretag baserat i Stockholm, utnyttjar genom att erbjuda sina kunder musik skräddarsydd för deras företag.

Ett sätt att generera uppspelningssekvenser av låtar givet en spellista och samtidigt definiera kriterier sekvensen ska uppfylla är genom att modellera det som ett villkorsproblem. Problemet kan definieras som att givet en spellista av låtar som indata, generera en uppspelningssekvens av låtar så att en mängd villkor över låtarna i sekvensens attribut är uppfyllda.

Det här examensarbetet undersöker om Constraint Satisfaction Programming är en möjlig lösning för att generera uppspelningssekvenser och i så fall, hur effektivt det går att göra det. En Constraint Satisfaction Programming-sekvenserare implementeras som modellerar tre olika typer av villkor och använder ett Hill Climbing-tillvägagångssätt för att lösa uppspelningsproblemet.

Den föreslagna sekvenseraren jämförs med den nuvarande lösningen på Soundtrack Your Brand, som är en girig algoritm, samt en matematiskt slumpmässig blandning. Resultaten visar att den föreslagna lösningen presterar bättre än både den nuvarande lösningen och den slumpmässiga blandningen när det kommer till hur väl de uppfyller de definierade villkoren. Sekvenserarens effektivitets mäts med avseende på körtid om minnesanvändning i olika scenarion där resultaten indikerar bra prestanda när storleken på spellistan ökar. När den föreslagna sekvenseraren jämförs med den nuvarande lösningen har sekvenseraren kortare körtid för alla storlekar av spellistor som testades.

Genom att kombinera resultaten av jämförelsen och effektivitetsutvärderingen slår det här examensarbetet fast att det är möjligt att generera uppspelningssekvenser med Constraint Satisfaction Programming och att det kan göras tillräckligt effektivt för att köras i en produktionsmiljö.