Why do you feel you need to reduce the size of the database? Databases grow as you add data - and unless you have had an event that grew the database far beyond its normal size there is no reason to make it smaller.
Integrity Checks - should be run every day. If a database is corrupted and you don't know about it for several weeks/months you have no option to recover from a known good backup. You would end up losing data - and probably much more... There is no reason to try and run this 'offline' as it runs against a hidden snapshot of the database. Running in offline mode means the database will not be accessible to anyone while it runs.
Purge Data - this could lock the tables being purged. It can also cause performance issues during the process - depends on how it is written and what else is being run on the system at that time.
Rebuild/Reorganize indexes - use a procedure that identifies only those indexes that need to be rebuilt or reorganized. This will reduce the impact of this process on your system. If your system is Standard Edition - index rebuilds will be performed offline - meaning the index itself will not be available while it is being rebuilt.
ShrinkDB/ShrinkFile - as stated above, no reason to run this on a regular basis unless you want to cause additional performance issues and waste time. Both of these cause fragmentation in the indexes - which you just rebuilt/reorganized. And, if you do the shrink before the rebuild/reorganize - then the database is just going to grow back out.
Problems are opportunities brilliantly disguised as insurmountable obstacles.
How to post questions to get better answers faster
Managing Transaction Logs