BAPS/packing/BP/BAPSSOFFPacker.h

00001 /**********************************************************************
00002  *
00003  * Filename    : BAPSSOFFHEUPacker.h
00004  * Author      : Chen Li Wen
00005  *
00006  * Version     : 1.0
00007  * Date        : Nov. 12, 1998
00008  *
00009  * Description : Interface file for class BAPSSOFFHEUPacker. This packer
00010  *               uses offline heuristics to pack vessels.
00011  *               Note: we assume that the list of vessels are sorted 
00012  *               by given order. It's the packing order.
00013  *
00014  * Reference   : nil
00015  *
00016  * Notes       : nil
00017  *
00018  * Changes     : nil
00019  *
00020  * Copyright   : Copyright (c) 1998
00021  *               All rights reserved by
00022  *               Resource Allocation and Scheduling Group
00023  *               Department of Computer Science
00024  *               School of Computing
00025  *               National University of Singapore
00026  *
00027  **********************************************************************/
00028 
00029 
00030 #ifndef __BAPSSOFFPACKER_H__
00031 #define __BAPSSOFFPACKER_H__
00032 
00033 
00034 #include "FreeSpace.h"
00035 
00036 
00037 #include <LEDA/string.h>
00038 
00039 
00040 class BAPSSOFFPacker
00041 {
00042    public:
00043    
00044       BAPSSOFFPacker(list<Vessel>& aVesselList,
00045                      string        aPackAlgo,
00046                      int           aSectionLength,
00047                      Bool          aCompPackWidth = FALSE,
00048                      Bool          aOutput = FALSE);
00049       
00050       ~BAPSSOFFPacker();
00051 
00052 
00053       void Solve();
00054       int GetPackingWidth() const;
00055 
00056 
00057    private:
00058 
00059       Bool          mCompPackWidth;
00060       Bool          mOutput;
00061       list<Vessel>& mVesselList;
00062       string        mPackAlgo;
00063       int           mSectionLength;
00064       
00065       
00066       //
00067       // Private methods
00068       // To find the set of vessels intersecting with a 
00069       // given vessel;
00070       // 
00071       
00072       list<Vessel> FindIV(list<Vessel> & aVesselList, 
00073                           int            aVesIndex);
00074       
00075 
00076       //
00077       // To find the set of free space for a given vessel
00078       //
00079       
00080       void FindFS(FreeSpace &    aFreeSpace, 
00081                   list<Vessel> & aIV, 
00082                   int            aSectLength);   
00083 
00084 };
00085 
00086 #endif

Generated on Tue Sep 9 15:40:10 2008 for BAP by  doxygen 1.5.3