SolverStudio how to reference 1 column in a 2D list in a for loop(PuLP)












1















I have 2 data sets x1 and x2. I want to be able to get a total sum of all the products of x1 and x2 only in the rows where the From column has Auckland in it.
see here



The final answer should be (5*1) + (2*1) + (3*1) + (4*1) or 14. The PuLP code that I wrote to do this is given below



# Import PuLP modeller functions
from pulp import *

varFinal = sum([x1[a] * x2[a] for a in Arcs if a == Nodes[0]])

print Nodes[0]
print Arcs[0]

Final = varFinal


The output that gets printed to the console is




Auckland

('Auckland', 'Albany')




I realise that my final value is zero because Arcs[some number] does not equal Nodes[some number]. Is there anyway to change the code so my final value is 14?



Any help is appreciated.










share|improve this question





























    1















    I have 2 data sets x1 and x2. I want to be able to get a total sum of all the products of x1 and x2 only in the rows where the From column has Auckland in it.
    see here



    The final answer should be (5*1) + (2*1) + (3*1) + (4*1) or 14. The PuLP code that I wrote to do this is given below



    # Import PuLP modeller functions
    from pulp import *

    varFinal = sum([x1[a] * x2[a] for a in Arcs if a == Nodes[0]])

    print Nodes[0]
    print Arcs[0]

    Final = varFinal


    The output that gets printed to the console is




    Auckland

    ('Auckland', 'Albany')




    I realise that my final value is zero because Arcs[some number] does not equal Nodes[some number]. Is there anyway to change the code so my final value is 14?



    Any help is appreciated.










    share|improve this question



























      1












      1








      1








      I have 2 data sets x1 and x2. I want to be able to get a total sum of all the products of x1 and x2 only in the rows where the From column has Auckland in it.
      see here



      The final answer should be (5*1) + (2*1) + (3*1) + (4*1) or 14. The PuLP code that I wrote to do this is given below



      # Import PuLP modeller functions
      from pulp import *

      varFinal = sum([x1[a] * x2[a] for a in Arcs if a == Nodes[0]])

      print Nodes[0]
      print Arcs[0]

      Final = varFinal


      The output that gets printed to the console is




      Auckland

      ('Auckland', 'Albany')




      I realise that my final value is zero because Arcs[some number] does not equal Nodes[some number]. Is there anyway to change the code so my final value is 14?



      Any help is appreciated.










      share|improve this question
















      I have 2 data sets x1 and x2. I want to be able to get a total sum of all the products of x1 and x2 only in the rows where the From column has Auckland in it.
      see here



      The final answer should be (5*1) + (2*1) + (3*1) + (4*1) or 14. The PuLP code that I wrote to do this is given below



      # Import PuLP modeller functions
      from pulp import *

      varFinal = sum([x1[a] * x2[a] for a in Arcs if a == Nodes[0]])

      print Nodes[0]
      print Arcs[0]

      Final = varFinal


      The output that gets printed to the console is




      Auckland

      ('Auckland', 'Albany')




      I realise that my final value is zero because Arcs[some number] does not equal Nodes[some number]. Is there anyway to change the code so my final value is 14?



      Any help is appreciated.







      excel solver pulp






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 20 '18 at 1:30







      Filip Jovanovic

















      asked Nov 20 '18 at 1:17









      Filip JovanovicFilip Jovanovic

      84




      84
























          1 Answer
          1






          active

          oldest

          votes


















          0














          Welcome to stack overflow! Cause you've only posted part of your code, I have to guess at what data-types you're using. From the output, I'm guessing your Nodes are strings, and your Arcs are tuples of strings.



          Your attempt is very close, you want the from column to have Auckland in it. You can index into a tuple the same way you would into an array, so you want to do: a[0] == Nodes[0].



          Below is a self-contained example with the first bit of your data in which outputs the following (note that I've changed to python 3.x print statements (with parentheses)):



          Output:



          Auckland
          ('Auckland', 'Albany')
          14


          Code:



          # Import PuLP modeller functions
          from pulp import *

          # Data
          Nodes = ['Auckland',
          'Wellington',
          'Hamilton',
          'Kansas City',
          'Christchuch',
          'Albany',
          'Whangarei',
          'Rotorua',
          'New Plymouth']

          Arcs = [('Auckland','Albany'),
          ('Auckland','Hamilton'),
          ('Auckland','Kansas City'),
          ('Auckland','Christchuch'),
          ('Wellington','Hamilton'),
          ('Hamilton','Albany'),
          ('Kansas City','Whangarei'),
          ('Christchuch','Rotorua')]

          x1_vals = [1, 2, 3, 4, 5, 9, 11, 13]
          x2_vals = [5, 1, 1, 1, 1, 1, 1, 1]

          x1 = dict((Arcs[i], x1_vals[i]) for i in range(len(Arcs)))
          x2 = dict((Arcs[i], x2_vals[i]) for i in range(len(Arcs)))

          varFinal = sum([x1[a] * x2[a] for a in Arcs if a[0] == Nodes[0]])

          print(Nodes[0])
          print(Arcs[0])
          print(varFinal)


          For future reference, answers are most likely to be forthcoming if you include code which others can try to run (without external data dependencies), that way people can try to run it, fix it, and re-post it.






          share|improve this answer
























          • Hi kabdulla, thanks a lot for your help. I was wondering if x1 and x2 was to now have an index range equal to Arcs set by the Data Items Editor, How would you alter the above code to make it work? See below i.imgur.com/3pRHm4X.png i.imgur.com/6imfPDm.png

            – Filip Jovanovic
            Nov 20 '18 at 23:11













          • I've never used solver studio and don't know what data items editor is. Also those images are very pixelated. Perhaps you could edit your question with an embedded image and someone might be able to help.

            – kabdulla
            Nov 21 '18 at 8:09











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53384895%2fsolverstudio-how-to-reference-1-column-in-a-2d-list-in-a-for-looppulp%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0














          Welcome to stack overflow! Cause you've only posted part of your code, I have to guess at what data-types you're using. From the output, I'm guessing your Nodes are strings, and your Arcs are tuples of strings.



          Your attempt is very close, you want the from column to have Auckland in it. You can index into a tuple the same way you would into an array, so you want to do: a[0] == Nodes[0].



          Below is a self-contained example with the first bit of your data in which outputs the following (note that I've changed to python 3.x print statements (with parentheses)):



          Output:



          Auckland
          ('Auckland', 'Albany')
          14


          Code:



          # Import PuLP modeller functions
          from pulp import *

          # Data
          Nodes = ['Auckland',
          'Wellington',
          'Hamilton',
          'Kansas City',
          'Christchuch',
          'Albany',
          'Whangarei',
          'Rotorua',
          'New Plymouth']

          Arcs = [('Auckland','Albany'),
          ('Auckland','Hamilton'),
          ('Auckland','Kansas City'),
          ('Auckland','Christchuch'),
          ('Wellington','Hamilton'),
          ('Hamilton','Albany'),
          ('Kansas City','Whangarei'),
          ('Christchuch','Rotorua')]

          x1_vals = [1, 2, 3, 4, 5, 9, 11, 13]
          x2_vals = [5, 1, 1, 1, 1, 1, 1, 1]

          x1 = dict((Arcs[i], x1_vals[i]) for i in range(len(Arcs)))
          x2 = dict((Arcs[i], x2_vals[i]) for i in range(len(Arcs)))

          varFinal = sum([x1[a] * x2[a] for a in Arcs if a[0] == Nodes[0]])

          print(Nodes[0])
          print(Arcs[0])
          print(varFinal)


          For future reference, answers are most likely to be forthcoming if you include code which others can try to run (without external data dependencies), that way people can try to run it, fix it, and re-post it.






          share|improve this answer
























          • Hi kabdulla, thanks a lot for your help. I was wondering if x1 and x2 was to now have an index range equal to Arcs set by the Data Items Editor, How would you alter the above code to make it work? See below i.imgur.com/3pRHm4X.png i.imgur.com/6imfPDm.png

            – Filip Jovanovic
            Nov 20 '18 at 23:11













          • I've never used solver studio and don't know what data items editor is. Also those images are very pixelated. Perhaps you could edit your question with an embedded image and someone might be able to help.

            – kabdulla
            Nov 21 '18 at 8:09
















          0














          Welcome to stack overflow! Cause you've only posted part of your code, I have to guess at what data-types you're using. From the output, I'm guessing your Nodes are strings, and your Arcs are tuples of strings.



          Your attempt is very close, you want the from column to have Auckland in it. You can index into a tuple the same way you would into an array, so you want to do: a[0] == Nodes[0].



          Below is a self-contained example with the first bit of your data in which outputs the following (note that I've changed to python 3.x print statements (with parentheses)):



          Output:



          Auckland
          ('Auckland', 'Albany')
          14


          Code:



          # Import PuLP modeller functions
          from pulp import *

          # Data
          Nodes = ['Auckland',
          'Wellington',
          'Hamilton',
          'Kansas City',
          'Christchuch',
          'Albany',
          'Whangarei',
          'Rotorua',
          'New Plymouth']

          Arcs = [('Auckland','Albany'),
          ('Auckland','Hamilton'),
          ('Auckland','Kansas City'),
          ('Auckland','Christchuch'),
          ('Wellington','Hamilton'),
          ('Hamilton','Albany'),
          ('Kansas City','Whangarei'),
          ('Christchuch','Rotorua')]

          x1_vals = [1, 2, 3, 4, 5, 9, 11, 13]
          x2_vals = [5, 1, 1, 1, 1, 1, 1, 1]

          x1 = dict((Arcs[i], x1_vals[i]) for i in range(len(Arcs)))
          x2 = dict((Arcs[i], x2_vals[i]) for i in range(len(Arcs)))

          varFinal = sum([x1[a] * x2[a] for a in Arcs if a[0] == Nodes[0]])

          print(Nodes[0])
          print(Arcs[0])
          print(varFinal)


          For future reference, answers are most likely to be forthcoming if you include code which others can try to run (without external data dependencies), that way people can try to run it, fix it, and re-post it.






          share|improve this answer
























          • Hi kabdulla, thanks a lot for your help. I was wondering if x1 and x2 was to now have an index range equal to Arcs set by the Data Items Editor, How would you alter the above code to make it work? See below i.imgur.com/3pRHm4X.png i.imgur.com/6imfPDm.png

            – Filip Jovanovic
            Nov 20 '18 at 23:11













          • I've never used solver studio and don't know what data items editor is. Also those images are very pixelated. Perhaps you could edit your question with an embedded image and someone might be able to help.

            – kabdulla
            Nov 21 '18 at 8:09














          0












          0








          0







          Welcome to stack overflow! Cause you've only posted part of your code, I have to guess at what data-types you're using. From the output, I'm guessing your Nodes are strings, and your Arcs are tuples of strings.



          Your attempt is very close, you want the from column to have Auckland in it. You can index into a tuple the same way you would into an array, so you want to do: a[0] == Nodes[0].



          Below is a self-contained example with the first bit of your data in which outputs the following (note that I've changed to python 3.x print statements (with parentheses)):



          Output:



          Auckland
          ('Auckland', 'Albany')
          14


          Code:



          # Import PuLP modeller functions
          from pulp import *

          # Data
          Nodes = ['Auckland',
          'Wellington',
          'Hamilton',
          'Kansas City',
          'Christchuch',
          'Albany',
          'Whangarei',
          'Rotorua',
          'New Plymouth']

          Arcs = [('Auckland','Albany'),
          ('Auckland','Hamilton'),
          ('Auckland','Kansas City'),
          ('Auckland','Christchuch'),
          ('Wellington','Hamilton'),
          ('Hamilton','Albany'),
          ('Kansas City','Whangarei'),
          ('Christchuch','Rotorua')]

          x1_vals = [1, 2, 3, 4, 5, 9, 11, 13]
          x2_vals = [5, 1, 1, 1, 1, 1, 1, 1]

          x1 = dict((Arcs[i], x1_vals[i]) for i in range(len(Arcs)))
          x2 = dict((Arcs[i], x2_vals[i]) for i in range(len(Arcs)))

          varFinal = sum([x1[a] * x2[a] for a in Arcs if a[0] == Nodes[0]])

          print(Nodes[0])
          print(Arcs[0])
          print(varFinal)


          For future reference, answers are most likely to be forthcoming if you include code which others can try to run (without external data dependencies), that way people can try to run it, fix it, and re-post it.






          share|improve this answer













          Welcome to stack overflow! Cause you've only posted part of your code, I have to guess at what data-types you're using. From the output, I'm guessing your Nodes are strings, and your Arcs are tuples of strings.



          Your attempt is very close, you want the from column to have Auckland in it. You can index into a tuple the same way you would into an array, so you want to do: a[0] == Nodes[0].



          Below is a self-contained example with the first bit of your data in which outputs the following (note that I've changed to python 3.x print statements (with parentheses)):



          Output:



          Auckland
          ('Auckland', 'Albany')
          14


          Code:



          # Import PuLP modeller functions
          from pulp import *

          # Data
          Nodes = ['Auckland',
          'Wellington',
          'Hamilton',
          'Kansas City',
          'Christchuch',
          'Albany',
          'Whangarei',
          'Rotorua',
          'New Plymouth']

          Arcs = [('Auckland','Albany'),
          ('Auckland','Hamilton'),
          ('Auckland','Kansas City'),
          ('Auckland','Christchuch'),
          ('Wellington','Hamilton'),
          ('Hamilton','Albany'),
          ('Kansas City','Whangarei'),
          ('Christchuch','Rotorua')]

          x1_vals = [1, 2, 3, 4, 5, 9, 11, 13]
          x2_vals = [5, 1, 1, 1, 1, 1, 1, 1]

          x1 = dict((Arcs[i], x1_vals[i]) for i in range(len(Arcs)))
          x2 = dict((Arcs[i], x2_vals[i]) for i in range(len(Arcs)))

          varFinal = sum([x1[a] * x2[a] for a in Arcs if a[0] == Nodes[0]])

          print(Nodes[0])
          print(Arcs[0])
          print(varFinal)


          For future reference, answers are most likely to be forthcoming if you include code which others can try to run (without external data dependencies), that way people can try to run it, fix it, and re-post it.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 20 '18 at 22:19









          kabdullakabdulla

          2,2021724




          2,2021724













          • Hi kabdulla, thanks a lot for your help. I was wondering if x1 and x2 was to now have an index range equal to Arcs set by the Data Items Editor, How would you alter the above code to make it work? See below i.imgur.com/3pRHm4X.png i.imgur.com/6imfPDm.png

            – Filip Jovanovic
            Nov 20 '18 at 23:11













          • I've never used solver studio and don't know what data items editor is. Also those images are very pixelated. Perhaps you could edit your question with an embedded image and someone might be able to help.

            – kabdulla
            Nov 21 '18 at 8:09



















          • Hi kabdulla, thanks a lot for your help. I was wondering if x1 and x2 was to now have an index range equal to Arcs set by the Data Items Editor, How would you alter the above code to make it work? See below i.imgur.com/3pRHm4X.png i.imgur.com/6imfPDm.png

            – Filip Jovanovic
            Nov 20 '18 at 23:11













          • I've never used solver studio and don't know what data items editor is. Also those images are very pixelated. Perhaps you could edit your question with an embedded image and someone might be able to help.

            – kabdulla
            Nov 21 '18 at 8:09

















          Hi kabdulla, thanks a lot for your help. I was wondering if x1 and x2 was to now have an index range equal to Arcs set by the Data Items Editor, How would you alter the above code to make it work? See below i.imgur.com/3pRHm4X.png i.imgur.com/6imfPDm.png

          – Filip Jovanovic
          Nov 20 '18 at 23:11







          Hi kabdulla, thanks a lot for your help. I was wondering if x1 and x2 was to now have an index range equal to Arcs set by the Data Items Editor, How would you alter the above code to make it work? See below i.imgur.com/3pRHm4X.png i.imgur.com/6imfPDm.png

          – Filip Jovanovic
          Nov 20 '18 at 23:11















          I've never used solver studio and don't know what data items editor is. Also those images are very pixelated. Perhaps you could edit your question with an embedded image and someone might be able to help.

          – kabdulla
          Nov 21 '18 at 8:09





          I've never used solver studio and don't know what data items editor is. Also those images are very pixelated. Perhaps you could edit your question with an embedded image and someone might be able to help.

          – kabdulla
          Nov 21 '18 at 8:09




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53384895%2fsolverstudio-how-to-reference-1-column-in-a-2d-list-in-a-for-looppulp%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          這個網誌中的熱門文章

          Xamarin.form Move up view when keyboard appear

          Post-Redirect-Get with Spring WebFlux and Thymeleaf

          Anylogic : not able to use stopDelay()