Just found a simple equation to balance supply and demand that could be easily introduced in btc source code:
next block size limit = previous block size limit + (total fee in the last period / avg fee in the previous period - space used in the last period) / block occupancy rate for the last period
The harder part is testing the equation on various network condition and accepted by the community.
Now I challenge you to find an equation based on "not centralizing bitcoin too much".
See
BIP 103. The exact number and equation definitely need more research though.