Schedule Resolution Approach

I had a problem, and I had problems with the choice / definition of an approach to solving it. The problem is this:

Given that N phone calls need to be made, plan in such a way that they can be made as much as possible.

Know the information:

Expected number of phone calls Number of subscribers (people who will talk on the phone) Type of phone call (reminder, billing, calls, etc.) Estimation of the duration of the type of phone call (reminder: 1 min, billing: 3 min, coordination: 15 minutes etc.) Expected number of phone calls. Ideal date for this call. “Minimum” date for this call (cannot be earlier ...) “Maximum” date of this call (cannot happen after ...) The day has only 8 hours

Rules:

Phone calls cannot be made before the "Minimum" or after the "Maximum" date. A call reminder is placed in the reward of 1 point, a call reminder is missed -2 ​​points. The exhibition call is set at 6 points, missed payment call -9 points. Negotiation call assigned 20 points, missed call -25 points. Phone calls to John must be placed by the first person to call him. Please note that he DOES NOT HAVE, but this call will earn extra points if you ...

I know a little about A.I. and I can recognize this problem, which is suitable for the class, but I just don’t know which approach to take ... should I use neural networks? Search by schedule?

PS: This is not an academic question. This is the real world problem that it is facing. PS2: the guidance system is still being created ... the points selected here are not real ...
PS3: the resulting algol can be executed several times (batch work style) or it can be resolved online depending on the performance ...
PS4 . My contract states that I will charge a client: (the number of calls I place) + (ratio * call duration), but this is a condition for the quality of service and only the placement of reminders is not suitable for me, because even when reminded, people still forget to attend their meetings ... which reduces the "quality" of the service I provide ... I still do not know the exact numbers

+4
source share
2 answers

This doesn't seem like an AI problem.

If it were me, I would create a set of rules in order of priority. Then start filling out the caller’s schedule.

Mabey one of the rules is to first assign the types of calls with the shortest duration (to satisfy the criteria for "maximum number of calls").

This more and more resembles a backpack problem in which you would replace the duration of a call and call points by weight and price.

+4
source

This is just a very simple answer, but you can try to "sort out the forces" in the optimal solution:

  • Use the Combinatorics library (also in NuGet) to generate each permutation of calls for a given person for a certain period of time (for example, one week in the future).
  • For each permutation, group calls into 8-hour chunks by expected duration and assign them a date.
  • Iterate through chunks - if you get to the call too soon, drop this permutation. Otherwise, add or subtract points based on whether the call was completed before the end date. Save the total score as the score for this permutation.
  • Choose the permutation with the highest result.
0
source

All Articles