Artificial Intelligence in Kotlin: code school timetabling from scratch with OptaPlanner and Quarkus

Sdílet
Vložit
  • čas přidán 9. 07. 2024
  • My twitter: / geoffreydesmet
    Get the source code: github.com/kiegroup/optaplann...
    Learn more about OptaPlanner: www.optaplanner.org/
    0:00:00 Introduction
    0:05:50 Build and dependencies
    0:11:20 REST
    0:13:56 Domain
    0:21:00 Database
    0:33:58 UI
    0:37:55 Solve with OptaPlanner
    0:53:33 AI constraints
  • Věda a technologie

Komentáře • 8

  • @lawalhayde3933
    @lawalhayde3933 Před 3 lety +1

    Good day sir. Great video!. I was practicing along with the video but you imported some files at the 35th minute, so I'm stuck and can't continue.
    Do you mind sharing the UI folder or the files in the folder so I can finish this tutorial?
    Thank you in advance

    • @lawalhayde3933
      @lawalhayde3933 Před 3 lety +2

      @@geoffreydesmet1043 Thank you sir. I'm done with the project and it's working fine 😎

  • @idev247
    @idev247 Před 3 lety

    Would there be a way to have a similar situation however with lessons of variable length? In that case I couldn't really pre-populate the timetable since the length of class could vary. Also number of days doesn't really matter but maybe would have a soft constraint of ideal date such as "it should be done in this week however if it can't it could be pushed to the previous or next week". Any idea of how that could be done?

    • @idev247
      @idev247 Před 3 lety

      Then I guess there's situations where one lesson date and time might already be locked in for some reason... would this solution work in that situation?

    • @GeoffreyDeSmet
      @GeoffreyDeSmet Před 3 lety

      @@idev247 We call this locking down "pinning". It's very easy to do in OptaPlanner, just add a boolean field with an @PlanningPin annotation on the Lesson class. If it's true, optaplanner will not reassign that lesson instance to another room or timeslot - but it will of course take it into account for the constraints.

    • @GeoffreyDeSmet
      @GeoffreyDeSmet Před 3 lety

      For lessons of variable lenght, you need to adjust the model. In the conference scheduling example the talks are of variable length (for example labs take 2 hours, but normal sessions 1 hour), but because both talk types have their own set of timeslots, it hardly impacts the model.
      In what you're describing, that's different: that's the "time grain design pattern": see docs and the meeting scheduling example.

    • @idev247
      @idev247 Před 3 lety

      @@GeoffreyDeSmet Thanks getting back to me Goeffrey! Will look at the docs for "time grain design pattern"/meeting schedule example

  • @jamilxt
    @jamilxt Před 3 lety +3

    Sound volume is very low. :(