Allowance trading and energy consumption under a personal carbon trading scheme: a dynamic programming approach