5
$\begingroup$

I am a starter in ML. So pardon me if the question is naive.

We have a Project Management tool where users can create a ticket and assign it to others. This is just one part of the tool but we are trying to automate assignment of ticket to people. Based on the history, i am trying to suggest who should the creator assign the ticket to so that the ticket is closed without any delay, minimal risk etc.. While i have the features/variables ready, I am having a hard time trying to find which algorithm or method to use.

Appreciate the help. Thx.

$\endgroup$
  • $\begingroup$ I guess the best thing that I've seen for resource management is dynamic programming which is widely used in different operating systems. $\endgroup$ – Vaalizaadeh Apr 7 at 9:17
  • $\begingroup$ Is any of the feature based on text (such as ticket title / description)? Do you have access to historical performance of resources ? $\endgroup$ – Shamit Verma Apr 8 at 6:36
  • $\begingroup$ @ShamitVerma, Not title per se, but they are based on "Category" of the ticket. And, yes, i have access to the historical performance. $\endgroup$ – mlstarter Apr 12 at 8:54
1
$\begingroup$

For the most part, this probably doesn't need a ML solution. Instead it'll probably be based on assigning rules based on business logic. For example, If the Customer is from a certain country, assign +5 points. Then the tickets are assigned out based on that.

This way, it captures a lot of information and goals you're wanting to achieve as business.

If you wanted to go down the ML route, my hunch is a model such as RandomForest or a tree based solution would be helpful as they're relatively explainable. At least as a starting point.

Uber Engineering team talk about how they prioritize their tickets here, which is an interesting read.

$\endgroup$
1
$\begingroup$

The technical problem you are addressing is called Resource-Constrained Project Scheduling Problem which has exact solution in exponential time.

The latter means that there is no easy way to solve the problem. The solution you have in hand are constructive algorithms which assign a task based on rules which are easy to measure, as an example: "Person A is free of tasks and has knowledge in Python, let's assign him to that Python Project".

$\endgroup$
1
$\begingroup$

You can formulate this as a classification problem. Then use some classification algorithm. Each person that can be assigned a ticket becomes a class.

You can have features like is this person expert in this type of tickets, how quickly this person has solved tickets in the past, how many tickets he is working on right now etc.

That should get you started. Good luck!

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.