High Level Research Paper

I understand a good bit of C++. I am what you will call an Intermediate Learner. For my Internship I was given a Research Paper of the following topic: Cardinality Constraint Portfolio Optimization Problem. Some of you may or may not have heard of it. If anyone wants to go through the paper I have provided a link. I want to discuss this paper with someone on this thread who can clear my doubts about the first Algorithm in the paper. The Algorithm seems to be in C#.

Link for the research paper:

https://www.mediafire.com/?74x0zij923j6l40
It is not C#. It is pseudo code as stated on the bottom of page:
Fig. 2 Two-phase mutation operator (TPMO) pseudo code
But it contains functions like getUpperBound() which is mostly exclusive to C#. I came to know about this after I searched this function on the Internet. I may be wrong though.
Pseudo code is likely to contain lots of things that look like real code from various languages. Don't get stuck on this. Study the pseudo-code and understand the algorithm.
But it contains functions like getUpperBound() which is mostly exclusive to C#
It is not exclusive. You can actually implement it in any language.

GetUpperBound() is defined in the .Net framework (it can be used from different languages). In the context of that paper it has certainly another meaning.
So, do any of you guys know what the GetUpperBound() function is doing?
It is either telling you how big an array of unknown size is or something along those lines.
for example if you have an array of 10 things, but you (for some probably unrealistic reason) did not know that, it would return 10.

I didnt dig into the paper. It may say what it is, did you search the text of the paper for all mentions to see? Does it seem to be doing what I said above? If the answer to both of those is no, you either have to figure it out or find another paper, one that is more carefully written.

Last edited on
Can someone tell me what does the following does:

child_solution_vector = parent_solution_vector.setValue(z , rc);

(both child_solution_vector and parent_solution_vector are arrays of size 10. z goes from 0 to 9 in the loop, rc value is always different in different iteration.)
its not real code. We have to guess. This is gibberish to me... it looks like it is assigning one array from another array via a set a single value function, which is of course nonsense.

It might make sense if setvalue is a "fill" command, in which case it is very poorly named. If it is a filler, then it is filling parent array with either z rc times or rc z times, unclear. Then child is set to that array? that seems idiotic as well though, because in that case, why not fill child directly with the function? It may be "clever" and assign both arrays at once, one with the function and another with the assignment statement, in which case the author should be taken out back and given a stern talking to, possibly involving a baseball bat.

My best guess is that it assigns a single value in parent, then child is assigned all of parent, including the new changed value. What that means to the algorithm is beyond me.
Last edited on
Can you give us the name of the paper please. We cannot trust your download...
I'm not OP, but I downloaded the paper:

Liagkouras, K. & Metaxiotis, K. (2016). A new efficiently encoded multiobjective algorithm for the solution of the cardinality constrained portfolio optimization problem. Annals of Operations Research, pp 1-39.

Here's another link:
https://link.springer.com/article/10.1007/s10479-016-2377-z
Last edited on
It looks like you're talking about the statement at the bottom of Fig 2 on page 13. The details of the algorithm, including an example, are described in the following pages, why not read through that to see if you can figure out what they mean? I agree that it the meaning of the statement isn't very clear, which sort of defeats the purpose of pseudo-code. :(
Topic archived. No new replies allowed.