Gift Optimizer uses advanced mathematics to determine the optimal gift for your friends, whilst keeping within your budget, ensuring that you never overspend.


  • Optimize your gift basket so, for a limited budget, your favourite friends get their most desired gifts;
  • Assign overall preferences to your friends;
  • Tweet your friends to let them know who is in your good books, and who has been mischeivous, or needs to work a little harder;
  • Set your friends' preferences for each gift, to make sure they get what they want;
  • Set a maximum budget as an optimization constraint;
  • Calculate your minimum budget so that you can work at or just above this level;
  • Check up to 101,370,917,007,360,000 permutations for the optimal solution;
  • Typically complete the optimization in under 7 seconds;

Which Friend Gets Which Gift? ...

Imagine you have 7 friends you wish to buy gifts for a specail occassion. You go online and identify 12 gifts. There are 3,991,680 ways you could assign those gifts to your friends. However, each of your friends has a different fondness for each of the gifts in the basket. In addition, you have a priority ranking in terms of which friend should be given preference over another. There is also a budget constraint.

Given an unlimited budget, each of your friends would receive their most desired gift, provided none of the more favourite friends have been allocated it already. However, although we would all like an unlimited budget, for most of us it is usually not possible.

So the problem you are presented with is to find a gift for each of your friends, that is something that they desire and that the overall spending is kept within the desired budget. Out of the 3,991,680 nodes there will be an optimal solution that satisfies all of the constraints.

As the number of gifts and the number of friends increase, so does the complexity of the problem at hand. Hence Gift Optimizer permits up to 101,370,917,007,360,000 permutations. We could examine more, but this would take considerable time and require many CPUs.

Setting Up The Problem

You are the creative genius, selecting your overall budget, the people and the gifts that they would most like and then ranking them in terms of priority.

Gift Optimizer then gets to work with a complex set of mathematical formulae to find the optimal solution such that everyone gets the best present for them inside or under your budget!

Whether you’re buying presents for a special occasion, in charge of corporate hospitality, getting organised for your Festive Season, Gift Optimizer lets you enjoy the magic of giving presents by being as imaginative as you want with your gift ideas. Once you specify your overall budget, select and rank in order of priority your universe of people and gifts, then Gift Optimizer gets to work and finds the optimal gift solution such that everyone gets a gift you have tailored for them and you will never overshoot your budget again!

Gift Optimizer does the hard calculations so that you can keep it simple.

Entering The Data

You never forget anyone because you use your contacts list. You begin the optimization by selecting your friends from your Contact List. You do this by pressing the '+' button when under the Friends tab and then select your friend.

To add gifts press the '+' button when under the Gift Basket tab. This next stage involves checking around on the Internet for great gift ideas. It is usually easier to do this in a dedicated browser that is built for this purpose and contains all of your personal bookmarks. Simply cut and paste the URL in to the Gift Optimizer with the description and the price. You can pinch to zoom and sroll the web viewer in order to align the product so that when you click save it takes a perfect picture of your gift.

Gifts are now stored in the gift basket. with a picture and the URL for easy reference.

Setting Preferences

All you need to do is to rank the people you intend to give to and their present preferences so that each person has a ranking and each present that you’re considering has a strength preference. You can assign a weight to each person and also to their gift preferences by using an easy slider. Moreover, the way that the screens are set up you can see the list and the rankings in an easy to view glance by examining the sliders and the integers displayed next to them.

The people and gift rankings are entirely changeable – as many times as you like and at any point.

You begin by setting an overall preference for each friend. This is a number between 0 and 100 in 5 step intervals; 100 being your favourite friends and 0 being your least favourite friends.

The next step is to assign preferences to each gift. Obviously different friends will have different preferences, and so you are able to enter those preferences here. Again, this is a number between 0 to 100 in 5 step intervals. Similarly, 0 is for gifts that you do not desire and 100 is for those that you desire the most. Note that you do not have to specify a preference for every gift.

You will also notice that Twitter has been integrated in to this app. When entering the preferences page, the previous preference value is remembered so that when you click on the Twitter icon, a pre-filled message will be displayed showing how the Overall Preference has changed. Obviously, a higher overall preference would inidicate that this person is more likely to get their desired gift when the optimization completes. Therefore, you can keep your friends informed if they have been mischievous or nice and how this has impacted there overall ranking.

It helps you enjoy the lighter side of giving. Why not let your friends in on Gift Optimizer’s inbuilt ‘mischievous-or-nice-ometer’ where you can Tweet your friends as to how they’re doing in your rankings!

Budget Constraint

All that is left is to set your overall budget. Usually it is best to set this to a maximum (99,999.99) in order to calculate the amount it would take to ensure that everyone receives their desired gift. If this gift has already been allocated to a more "preferred" friend then, the individual will not be able to be allocated that gift. Each friend gets one and only one gift, and each gift can be allocated only once (if you wish to allocate the same gift many times then add multiple versions to your Gift Basket!).

Once you have established what the maximum budget would be to make everyone happy, you can now adjust the budget between this amount and the minumum amount to see who gets allocated which gift. Clearly, as the budget decreases, then the least favourite friends loose their desired gifts first and are allocated to cheaper items. This is not stricly true as in the example where the most favourite friends desire the cheapest items in the Gift Basket.

This budget this can changed and the gifts re-optimised as many times as you like – it’s your money and this is all about finding the optimum solution at every end of your budget!

The best deals are where everyone’s a winner! Gift Optimizer takes the stress out of gift of giving and does the work for you so that everyone is looked after, including your wallet!

There’re no difficult decisions for you to make and no temptation to over spend because the model mathematically selects the optimal solution from your chosen universe of people and their tagged gifts. You are entirely free to change your budget, the recipients, the gifts and their rankings as often and by much as you want at any stage and Gift Optimizer will re-optimise according to your parameters. Give yourself the gift of peace of mind that everyone will get the best present for them while you’re only spending what you can afford.

A Final Word

In the interests of time and CPU, Gift Optimizer has been currently limited to a maximum. The number of friends, plus the number of gifts will not be allowed to exceed 36. This reaches a limit of 101,370,917,007,360,000 permutations. Please see the Math section for a further more in-depth discussion of this.

If you do happen to reach this limit you may deactivate friends or gifts by using the on/off switch.

Thank you for your support to those who have purchased. Your custom is very much appreciated. Tremendous effort goes in to building and maintaining this product and it is thanks to each and every one of you that keeps us going!

We hope you enjoy using the product as much as we enjoyed building it!