help with max_cost_assignment

  • Teresa

    Teresa - 2013-05-21

    Hi Davis,

    I'm trying to use max_cost_assignment.

    1) Does this function take in a square matrix or any matrix?
    2) What is the run time of this function?

    When I run in debug mode, I get this error
    DLIB_ASSERT( ==,
    "\t std::vector<long> max_cost_assignment(cost)"
    << "\n\t " <<
    << "\n\t " <<

    When run in release mode, I don't get this error.
    Is square matrix required as the input, if so, why doesn't it break in release?

    thank you for your help!

    • Davis

      Davis - 2013-07-16

      It takes a square matrix and runs in O(N^3) time.

      The assert statements are only enabled in debug mode because they slow down the code. They aren't so significant in this particular case but there are a lot of asserts in dlib and leaving them all on adds up to a big slowdown in many cases (e.g. some machine learning or image processing applications take a big hit).

      Also, if you look at the documentation for this routine (reachable by clicking the "detailed documentation" link here you can find the preconditions for this function which tell you what is required to call it. In this case, it's just that you have to give a square matrix full of integers.


      P.S. Sorry for the very late reply. For some reason, I never received any notification email that you posted to the forums. I think this was when sourceforge was redoing their forum system. Who knows.


Log in to post a comment.