Currently my problem are linear, as the library can only solve linear problems. However, one of the powerful things about some Magic the Gathering decks is synergy between the cards.
For instance, one card may get more or less powerful depending on the other cards in the deck.
As an example, there is a card that might read "Return two Instant cards from the graveyard to your hand". An 'Instant' card is a type of card, and 'Graveyard' and 'Hand' are locations the game recognises. I can define these as variables in a way.
If you have no instant cards in your deck, the card is useless. If you have 1 it has marginal use, and so on. This probably continues linearly. (There's also the consideration that you might need to have ways to put the 'Instant' cards from another location into the 'Graveyard', but I think I can handle that separately be defining a relationship between another set of variables.)
From what little research I've done, this makes it a non-linear optimization problem, but I'm struggling to find resources on this because I don't know what kind of non-linear problem it is.
A non-magic the gathering example would be if you wanted to optimise a shopping list, and you got discounts on Item A, for buying Item B ( "Calculator X is 50% cheaper if you by the Amazo-Protractor!” ).
What is this sort of interrelated optimization problem called?