From e07bb7a6bce3fa331c3e556395663dd77bc02676 Mon Sep 17 00:00:00 2001 From: dhebeha Date: Thu, 30 Apr 2020 16:12:32 +0530 Subject: Change to support PCI unchangeable cells Issue-ID: OPTFRA-678 Signed-off-by: dhebeha Change-Id: Ib7620cb19850d77e80b2baea5ef318e8b0182d7c --- apps/pci/optimizers/solver/min_confusion_inl.mzn | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'apps/pci/optimizers/solver/min_confusion_inl.mzn') diff --git a/apps/pci/optimizers/solver/min_confusion_inl.mzn b/apps/pci/optimizers/solver/min_confusion_inl.mzn index 0f0fc91..e677e27 100644 --- a/apps/pci/optimizers/solver/min_confusion_inl.mzn +++ b/apps/pci/optimizers/solver/min_confusion_inl.mzn @@ -52,6 +52,14 @@ int: NUM_IGNORABLE_NEIGHBOR_LINKS; % of the links, like the previous structures. array[1..NUM_IGNORABLE_NEIGHBOR_LINKS, 1..2] of int: IGNORABLE_NEIGHBOR_LINKS; +% ids of cells for which the pci should remain unchanged +set of int: PCI_UNCHANGEABLE_CELLS; + +% This array has the original pcis of all the cells. array is indexed by the ids +% of the cell. eg. ORIGINAL_PCIS[3] returns the pci of cell whose id is 3. +% ids start from 0 +array[1..NUM_NODES] of 0..NUM_PCIS-1: ORIGINAL_PCIS; + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Decision variables %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -65,6 +73,14 @@ array[1..NUM_IGNORABLE_NEIGHBOR_LINKS] of var 0..1: used_ignorables; % Constraints %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% fixed pci cells +constraint +if(length(PCI_UNCHANGEABLE_CELLS) !=0) then +forall(i in PCI_UNCHANGEABLE_CELLS)( + pci[i] == ORIGINAL_PCIS[i+1] +) +endif; + % Direct neighbors must have different PCIs for avoid **COLLISION**. % Forced links. constraint -- cgit 1.2.3-korg