0

このドキュメントのSFSアルゴリズムpages 11-12を実装しようとしています。

私がこれまでに持っているものC++は次のとおりです。

#include "stdafx.h"
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
using namespace std;

struct Features
{
    int m_f1;
    int m_f2;
    int m_f3;
    int m_f4;

    Features(int a, int b, int c, int d) :
        m_f1(a),
        m_f2(b),
        m_f3(c),
        m_f4(d)
    {

    }
};

int criterionFunction(Features const& features)
{
    return -2 * features.m_f1 * features.m_f2 +
            3 * features.m_f3 + 
            5 * features.m_f4 +
           -2 * features.m_f1 * features.m_f2 * features.m_f3 + 
            7 * features.m_f3 +
            4 * features.m_f4 +
           -2 * features.m_f1 * features.m_f2 * features.m_f3 * features.m_f4;
}

int main(){

    Features feature,
    vector<Features> listOfFeatures(4);

    listOfFeatures.push_back(Features(1,0,0,0));
    listOfFeatures.push_back(Features(0,1,0,0));
    listOfFeatures.push_back(Features(0,0,1,0));
    listOfFeatures.push_back(Features(0,0,0,1));

    vector<int> listOfCriterion;

}

私の質問は次のとおりです。

-criterionFunction()渡された機能 (つまり、m_f1) が値を取り、渡されなかった機能が値1を持つように呼び出す方法は何0ですか?

- ここでは、最良の機能の組み合わせを選択 (出力) しthreeます。どうやってやるの?

4

1 に答える 1

3

あなたの質問からあなたの要件が何であるかは完全にはわかりませんが、一般的な答えは、Armadillo などの C++ 線形代数ライブラリを使用することです。

http://arma.sourceforge.net/

これにより、MATLAB と同様のインターフェイスを使用して、行列クラスと関連する操作が提供されます。

于 2012-07-30T14:29:52.253 に答える