Problem 58533. ICFP 2023:Orchestra Solve all X Linear Stage Problems (23:27)
The ICFP 2023 Competition in July was to place musicians on a stage to maximize the attendees net happiness. The musicians played various instruments with attendees having preference values for each instrument type. Musicians could block attendees from seeing musicians behind them. Blocking occurs if a_i to m_j vector touched within 5 of m_k. No musicians allowed within 10 of one another. Vector check is being done with a prior Cody 1446 solution variant. Volume per musician was allowed but not in this Challenge. Happiness drops off as the square of distance between musician and attendee.
The ICFP 2023 site will hopefully have contestant writeups. The ICFP 2023 Orchestra Spec shows details of the contest. I modified the problem contents to the sufficient elements regarding the stage. The joys of JSON can be viewed. The musician types were upgraded by 1 to be non-zero based.
This Challenge is to place the musicians onto the stage,mxy, of Problems 23 thru 27 using a Greedy algorithm using provided Happiness tables. Score an Attendee happiness of higher than a min_score; The min_scores were selected as the minimums of using either provided Happiness table. The standard inputs are detailed in the function template and include axy-attendee positions, am-attendee happiness factors to each instrument, mu-instruments of each musician, stage limits-[xmin xmax ymin ymax]. This stage is a line of ymin=ymax=10, xmin=10, and xmax=990, seen in the image below. The special performance tables provide Joy values for Musician types vs X. Table mscrit, matrix_score_XvsType, assumes no neighbors and mscrit10 assumes neighbors at +/-10 blocking thus gives less Joy.
Individual attendee happiness= 1000000*am(i,mu(j))/d2(i,j) for attendee-i and musician-j where d2 is distance squared.
Please submit the template to view the tables and graphs. The graphs show the mscrit and mscrit10 information. Trying both tables will show neither Happiness table is optimal for all cases. Six problems can be handled well in under 5 seconds using Matlab.
This is the Orchestra room problem 22 showing the attendees and the stage. The Greedy solutions show that 1/d^2 is a main driver with musicians clustered around the handful of attendees closest to the stage. A d=1000 really reduces Joy.
The stage is the line on the bottom at Y=10 extending in X 10:990 .
Solution Stats
Solution Comments
Show commentsProblem Recent Solvers1
Suggested Problems
-
Maintain shape of logical-index mask
70 Solvers
-
Back to basics 3 - Temp Directory
366 Solvers
-
Selecting books on MATLAB for experts and beginners (blindfolded)
75 Solvers
-
Convert a structure into a string
200 Solvers
-
79 Solvers
More from this Author308
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!